OSDN Git Service

In gcc/:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2
3         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
4         of c_process_expr_stmt() for the iterating and collection
5         expressions of an Objective-C fast enumeration loop.
6
7 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
8
9         PR debug/45997
10         * dwarf2out.c (modified_type_die): If both is_const_type and
11         is_volatile_type is set, start with DW_TAG_const_type or
12         DW_TAG_volatile_type depending on where we get qualified type
13         in the recursive call.
14
15         PR target/43897
16         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
17         as a store into that register.
18
19         PR tree-optimization/46528
20         PR debug/46338
21         * profile.c (branch_prob): Make sure last is never set to a debug
22         stmt.
23
24         PR debug/46771
25         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
26         on DEBUG_INSNs.
27
28         PR rtl-optimization/46777
29         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
30         also barrier after tablejump.
31
32 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
33             Richard Henderson  <rth@redhat.com>
34
35         PR target/46740
36         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
37
38 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
39
40         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
41         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
42
43 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
44
45         PR target/46735
46         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
47         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
48         (int12_operand, int_2word_operand, uint16_operand): Likewise.
49         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
50         (uint5_operand, uint4_operand): Likewise.
51         * config/frv/frv.h (IN_RANGE_P): Delete.
52         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
53         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
54         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
55         (CONST_OK_FOR_P): Likewise.
56         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
57         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
58         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
59         (*movsicc_internal2_float, casesi): Likewise.
60         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
61         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
62         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
63         (frv_split_cond_move, frv_rtx_costs): Likewise.
64
65         PR target/46739
66         * config/mmix/mmix.c (mmix_intval): Split shift count.
67
68 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
69
70         * config/i386/i386.c (m_COREI7): New.
71         (initial_ix86_tune_features): Turn on
72         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
73         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
74
75 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
76
77         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
78
79         * config/i386/driver-i386.c (host_detect_local_cpu): Support
80         Sandy Bridge.
81
82         * config/i386/i386.c (override_options): Handle "corei7-avx".
83
84         * doc/invoke.texi: Document corei7-avx.
85
86 2010-12-06  Richard Guenther  <rguenther@suse.de>
87
88         PR tree-optimization/46806
89         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
90         coalesce different types.
91
92 2010-12-06  Richard Guenther  <rguenther@suse.de>
93
94         PR tree-optimization/46785
95         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
96         call statements as operand definition.
97
98 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
99
100         * doc/tm.texi.in: Fix typo.
101         * doc/tm.texi: Regenerate.
102
103 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
104
105         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
106         last change.
107
108 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
109
110         * c-family/c-common.h: Removed the declarations of all the objc_
111         callbacks, and moved them into c-objc.h.  Removed
112         objc_ivar_visibility_kind and moved it into c-objc.h.
113         * c-family/c-objc.h: New file.
114         * c-family/c-common.c: Include c-objc.h.
115         * c-family/c-format.c: Same change.
116         * c-family/stub-objc.c: Same change.
117         * c-decl.c: Include c-family/c-objc.h.
118         * c-parser.c: Same change.      
119         * c-typeck.c: Same change.
120         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
121         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
122         (c-parser.o): same change.
123         (c-typeck.o): Same change.
124         (c-family/c-format.o): Same change.
125         (c-family/stub-objc.o): Same change.
126         (c-family/c-common.o): Same change.
127         (PLUGIN_HEADERS): Added c-family/c-objc.h.
128         
129 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
130
131         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
132         --with-dwarf2 option.
133
134 2010-12-03  Jan Hubicka  <jh@suse.cz>
135
136         * lto-streamer-in.c (input_cfg): Fix pasto.
137
138 2010-12-03  Jan Hubicka  <jh@suse.cz>
139
140         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
141         and functions with user asm defined names.
142         (varpool_externally_visible_p): Do not localize vars with user
143         asm defined names.
144
145 2010-12-03  Jan Hubicka  <jh@suse.cz>
146
147         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
148         to prevent mangling with lto frontend.
149
150 2010-12-03  Jan Hubicka  <jh@suse.cz>
151
152         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
153         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
154
155 2010-12-03  Jan Hubicka  <jh@suse.cz>
156
157         PR tree-optimization/46760
158         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
159         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
160         * lto-cgraph.c (lto_output_edge): Fix assert.
161         (lto_output_node): Output count_materialization_scale.
162         (output_profile_summary): Output only runs and sum_max.
163         (input_node): Input count_materialization_scale.
164         (input_profile_summary): Read data into file specific gcov summary.
165         (merge_profile_summaries): New function.
166         (input_cgraph): Update call of input_profile_summary;
167         call merge_profile_summaries.
168         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
169         rescale counts at read in.
170         (intput_bb): Likewise.
171         (input_function): Update call of input_bb.
172         (lto_read_body): Update call of input_cfg.
173         * lto-streamer.h: Inlclude gcov-io.h
174         (lto_file_decl_data): Add gcov_ctr_summary.
175
176 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
177
178         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
179         (Cond Exec Macros): ... to this.
180         * doc/tm.texi: Regenerate.
181
182 2010-12-03  Jason Merrill  <jason@redhat.com>
183
184         PR debug/46123
185         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
186         a declaration DIE.
187
188 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
189
190         * config/arm/arm.c (arm_legitimate_index_p): Split
191         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
192         slightly larger constants in the latter case.
193         (thumb2_legitimate_index_p): Likewise.
194
195 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
196
197         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
198         * gcc.c (cc1_options): Add %{Qy:}.
199
200 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
201
202         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
203         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
204         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
205
206 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
207
208         PR rtl-optimization/45354
209         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
210         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
211         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
212         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
213
214 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
215
216         * basic-block.h (struct edge_prediction): Remove forward
217         declaration.
218         * tree-flow.h (struct edge_prediction): Move from here...
219         * predict.c (struct edge_prediction): ...to here.
220         * cselib.h (struct elt_list): Move from here...
221         * cselib.c (struct elt_list): ...to here.
222
223 2010-12-02  Ian Lance Taylor  <iant@google.com>
224
225         * gcc.c (default_compilers): Add entry for ".go".
226         * common.opt: Add -static-libgo as a driver option.
227         * doc/install.texi (Configuration): Mention libgo as an option for
228         --enable-shared.  Mention go as an option for --enable-languages.
229         * doc/invoke.texi (Overall Options): Mention .go as a file name
230         suffix.  Mention go as a -x option.
231         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
232         language.
233         * doc/sourcebuild.texi (Top Level): Mention libgo.
234         * doc/standards.texi (Standards): Add section on Go language.
235         Move references for other languages into their own section.
236         * doc/contrib.texi (Contributors): Mention that I contributed the
237         Go frontend.
238
239 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
240
241         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
242         (const_call_expr_arg_iterator_d): Likewise.
243         (expanded_location): Likewise.
244         * c-tree.h (struct c_arg_tag_d): Likewise.
245         * dwarf2out.c (struct cfa_loc): Likewise.
246         (struct skeleton_chain_struct): Likewise.
247         * except.c (struct ttypes_filter): Likewise.
248         * cselib.h (struct cselib_val_struct): Likewise.
249         (elt_loc_list): Likewise.
250         (elt_list): Likewise.
251         * varasm.c (struct addr_const): Likewise.
252         * tree-flow.h (struct edge_prediction): Likewise.
253         (struct int_tree_map): Likewise.
254         (struct _edge_var_map): Likewise.
255
256 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
257
258         PR target/46768
259         * config/i386/i386.c (initial_ix86_tune_features): Turn on
260         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
261
262 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
263
264         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
265
266 2010-12-02  Ian Lance Taylor  <iant@google.com>
267
268         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
269         header files unordered_map, tr1/unordered_map, and ext/hash_map.
270         * configure, config.in: Rebuild.
271
272 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
273
274         PR target/46685
275         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
276         (sparc_expand_move): Call it to decide whether to emit the special
277         mov{si,di}_pic_label_ref patterns.
278         (sparc_legitimize_pic_address): Call it to decide whether to emit
279         the regular PIC sequence for labels.  Fix long line.
280         (sparc_file_end): Set is_thunk for the PIC helper.
281
282 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
283
284         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
285         for a non-shared type.
286
287 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
288
289         PR middle-end/45297
290         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
291         with MEM_REFs as POINTER_PLUS_EXPR.
292
293 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
294
295         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
296         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
297         mentioning /lib/elf.
298
299 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
300
301         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
302         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
303         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
304         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
305         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
306         * config/sol2.h (LINK_SPEC): Remove %{b}.
307         * config/svr4.h (LINK_SPEC): Remove %{b}.
308
309 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
310
311         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
312         * config/i386/linux.h (LINK_SPEC): Cut long comment.
313         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
314         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
315         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
316         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
317         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
318         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
319         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
320         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
321         %{v:%{!V:-V}}.
322
323 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
324
325         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
326         -ftraditional.
327
328 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
329
330         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
331         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
332         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
333         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
334         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
335         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
336         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
337         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
338         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
339         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
340         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
341         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
342         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
343         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
344         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
345         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
346         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
347         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
348
349 2010-12-02  Paul Koning  <ni1d@arrl.net>
350
351         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
352         opcodes if CC_NO_OVERFLOW is set.
353         (notice_update_cc_on_set): Correct setting of CC0 as a side
354         effect; set CC_NO_OVERFLOW for cases where C flag is not
355         meaningful.
356
357 2010-12-02  Ian Lance Taylor  <iant@google.com>
358
359         * doc/install.texi (Configuration): Update default for
360         --with-boot-ldflags.
361
362 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
363
364         PR c/45062
365         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
366         !funcdef_flag.
367
368 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
369
370         PR tree-optimization/45199
371         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
372         (stores_zero_from_loop): Call
373         mem_write_stride_of_same_size_as_unit_type_p.
374         * tree-data-ref.h (stride_of_unit_type_p): New.
375         * tree-loop-distribution.c (generate_memset_zero): Simplified.
376         Call stride_of_unit_type_p.
377         (build_rdg_partition_for_component): Do not call
378         rdg_flag_similar_memory_accesses when
379         flag_tree_loop_distribute_patterns is set.
380
381 2010-12-02  Richard Guenther  <rguenther@suse.de>
382
383         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
384         sign-changing conversions for induction detection.
385
386 2010-12-02  Richard Guenther  <rguenther@suse.de>
387
388         PR tree-optimization/46723
389         * tree-vect-loop.c (get_initial_def_for_induction): Strip
390         conversions from the induction evolution and apply it to
391         the result instead.
392         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
393         assigns for induction defs.
394
395 2010-12-02  Richard Guenther  <rguenther@suse.de>
396
397         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
398         the case we need to split the edge and not the block.
399
400 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
401
402         DFA model for Core 2 and Core i7 scheduling.
403
404         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
405         * config/i386/i386.c (ix86_option_override_internal): Update entries
406         for Core 2 and Core i7.
407         (ix86_issue_rate): Set issue rate to 3 [be realistic].
408         * config/i386/i386.md: Include "core2.md".
409         (define_attr cpu): Add "corei7".
410
411 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
412
413         Define tuning for Core 2 and Core i7.
414
415         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
416         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
417         (m_CORE2): Replace with m_CORE2_{32,64}.
418         (m_CORE2I7{,_32,_64}): New macros.
419         (m_GENERIC32, m_GENERIC64): Update.
420         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
421         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
422         set m_CORE2I7_64 iff m_GENERIC64.
423         (processor_target_table): Use generic costs for Core 2 and Core i7.
424         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
425         (ix86_issue_rate): Remove entry for Core 2.
426         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
427         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
428         (TARGET_CORE2): Update.
429         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
430         (PROCESSOR_CORE2): Remove.
431
432 2010-12-02  Richard Guenther  <rguenther@suse.de>
433
434         * lto-streamer.h (LTO_major_version): Bump to 2.
435
436 2010-12-02  Richard Guenther  <rguenther@suse.de>
437
438         PR lto/44871
439         * gimple.c (canonical_type_hash_cache): New hashtable.
440         (gimple_type_hash): Make a wrapper around ...
441         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
442         (gimple_canonical_type_hash): Likewise.
443         (gtc_visit): Take a gtc_mode argument.
444         (gimple_types_compatible_p_1): Likewise. Do not compare struct
445         tag names or field names when computing canonical types.
446         (gimple_types_compatible_p): Adjust.
447         (visit): Take a gtc_mode argument.
448         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
449         names or field names when computing hashes of canonical types.
450         (gimple_register_canonical_type): Use gimple_canonical_type_hash
451         for the hash.
452         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
453         (free_gimple_type_tables): Free canonical_type_hash_cache.
454
455 2010-12-02  Richard Guenther  <rguenther@suse.de>
456             Ira Rosen  <irar@il.ibm.com>
457
458         PR tree-optimization/46663
459         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
460         FUNCTION_DECL exists and that it's a builtin.
461
462 2010-12-02  Jie Zhang  <jie@codesourcery.com>
463
464         PR middle-end/46674
465         * varasm.c (compute_visible_aliases): Handle user set
466         assembler name.
467
468 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
469
470         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
471         thinko regarding setting -mno-<xxx> debug switches.
472         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
473
474 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
475
476         * intl.c: Don't include tm.h.
477         * Makefile.in (intl.o): Don't depend on $(TM_H).
478
479 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
480
481         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
482         unused warning.
483         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
484
485 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
486
487         * graphite-sese-to-poly.c (analyze_drs): Removed.
488         (build_scop_drs): Do not call analyze_drs.
489         (analyze_drs_in_stmts): New.
490         (insert_stmts): New.
491         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
492         (insert_out_of_ssa_copy_on_edge): Same.
493         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
494         (rewrite_phi_out_of_ssa): Same.
495         (rewrite_cross_bb_scalar_dependence): Same.
496         (split_reduction_stmt): Move data references in the new basic blocks.
497         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
498
499 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
500
501         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
502
503 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
504
505         PR middle-end/45297
506         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
507         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
508         * graphite-poly.h (new_poly_bb): Update declaration.
509         (gbb_from_bb): Moved here...
510         (pbb_from_bb): New.
511         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
512         Removed.
513         (graphite_stmt_p): Removed.
514         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
515         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
516         new_poly_bb.
517         (build_scop_bbs_1): Do not pass in sbitmap reductions.
518         (build_scop_bbs): Same.
519         (gbb_from_bb): ... from here.
520         (add_conditions_to_constraints): Moved up.
521         (analyze_drs): New.
522         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
523         not contain data references.
524         (new_pbb_from_pbb): New.
525         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
526         block is split.
527         (rewrite_close_phi_out_of_ssa): Update call to
528         insert_out_of_ssa_copy_on_edge.
529         (rewrite_reductions_out_of_ssa): Now static.
530         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
531         (split_pbb): New.
532         (split_reduction_stmt): Call split_pbb.
533         (translate_scalar_reduction_to_array): Pass in the scop, do not
534         pass in the sbitmap reductions.
535         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
536         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
537         (rewrite_commutative_reductions_out_of_ssa): Same.
538         (build_poly_scop): Call build_scop_bbs,
539         rewrite_commutative_reductions_out_of_ssa,
540         rewrite_reductions_out_of_ssa, and
541         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
542         before scop_to_lst.
543         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
544         Removed declaration.
545         (rewrite_reductions_out_of_ssa): Same.
546         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
547         (build_scop_bbs): Same.
548         * graphite.c (graphite_transform_loops): Do not initialize reductions.
549         Do not call build_scop_bbs,
550         rewrite_commutative_reductions_out_of_ssa,
551         rewrite_reductions_out_of_ssa, and
552         rewrite_cross_bb_scalar_deps_out_of_ssa.
553         * sese.h (struct gimple_bb): Add field pbb.
554         (GBB_PBB): New.
555
556 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
557
558         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
559         New.
560         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
561         handle_scalar_deps_crossing_scop_limits.
562         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
563         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
564
565 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
566
567         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
568         when replacing a constant in an ADDR_EXPR.
569
570 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
571
572         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
573         for the stride.
574         (lst_do_strip_mine): Same.
575         (scop_do_strip_mine): Same.
576         * graphite-poly.c (apply_poly_transforms): Update call to
577         scop_do_strip_mine.
578         * graphite-poly.h (scop_do_strip_mine): Update declaration.
579
580 2010-12-01  Jan Hubicka  <jh@suse.cz>
581
582         * tree.c (build_common_builtin_nodes): Do not initialize
583         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
584         * builtins.c (expand_builtin_profile_func): Remove.
585         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
586         BUILT_IN_PROFILE_FUNC_EXIT.
587         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
588         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
589         * gimplify.c (gimplify_function_tree): Reorganize code calling
590         profiling functions.
591
592 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
593
594         * opts.c: Expand comment on tm.h include.
595
596 2010-12-01  Yao Qi  <yao@codesourcery.com>
597
598         * config/arm/predicates.md ("vfp_register_operand"): Return true for
599         VFP_D0_D7_REGS classes.
600
601 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
602
603         * common.opt (flag_stack_check): New Variable entry.
604         (fcompare-debug-second): Use Var.
605         * flags.h (flag_compare_debug, flag_stack_check): Remove.
606         * opts.c (flag_compare_debug): Remove.
607         (common_handle_option): Don't handle OPT_fcompare_debug_second.
608         Set opts->x_flag_stack_check for OPT_fstack_check_.
609         * toplev.c (flag_stack_check): Remove.
610
611 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
612
613         * common.opt (main_input_filename, main_input_basename,
614         main_input_baselength): New Variable entries.  From toplev.c.
615         * final.c (output_quoted_string): Move from toplev.c.
616         * output.h (output_quoted_string): Move from toplev.h.
617         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
618         access main_input_filename, main_input_baselength and
619         main_input_basename.
620         * targhooks.c: Include intl.h and opts.h.
621         (option_affects_pch_p, default_get_pch_validity): Move from
622         toplev.c.
623         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
624         Move from toplev.h.
625         * toplev.c (main_input_filename, main_input_basename,
626         main_input_baselength): Move to common.opt.
627         (output_quoted_string): Move to final.c.
628         (warn_deprecated_use): Move to tree.c.
629         (option_affects_pch_p, default_get_pch_validity,
630         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
631         * toplev.h (skip_leading_substring): Move to tree-dump.c.
632         (warn_deprecated_use): Move to tree.h.
633         (output_quoted_string): Move to output.h.
634         (main_input_filename, main_input_basename, main_input_baselength):
635         Move to common.opt.
636         (default_get_pch_validity, default_pch_valid_p): Move to
637         targhooks.c.
638         * tree-dump.c (skip_leading_substring): Move from toplev.h.
639         * tree.c (warn_deprecated_use): Move from toplev.c.
640         * tree.h (warn_deprecated_use): Move from toplev.h.
641         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
642         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
643         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
644         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
645         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
646         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
647         config/mcore/mcore.c, config/mep/mep.c,
648         config/microblaze/microblaze.c, config/mips/mips.c,
649         config/mmix/mmix.c, config/mn10300/mn10300.c,
650         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
651         config/picochip/picochip.c, config/s390/s390.c,
652         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
653         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
654         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
655         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
656         varasm.c, xcoffout.c: Don't include toplev.h.
657         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
658         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
659         varasm.o, xcoffout.o): Update dependencies.
660         * config/arm/t-arm (arm.o): Update dependencies.
661         * config/spu/t-spu-elf (spu.o): Update dependencies.
662
663 2010-12-01  Richard Guenther  <rguenther@suse.de>
664
665         PR tree-optimization/46730
666         * value-prof.c (gimple_ic): Always generate a separate merge BB.
667
668 2010-11-30  Ian Lance Taylor  <iant@google.com>
669
670         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
671         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
672         * config/i386/linux64.h (ASM_SPEC): Likewise.
673         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
674         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
675         * config/i386/vxworks.h (ASM_SPEC): Likewise.
676         * config/i386/x86-64.h (ASM_SPEC): Likewise.
677         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
678         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
679
680 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
681
682         * c-decl.c (finish_function): Call objc_finish_function in
683         Objective-C.
684         * c-typeck.c (convert_for_assignment): Do not call
685         objc_type_quals_match().
686
687 2010-11-30  Richard Guenther  <rguenther@suse.de>
688
689         PR tree-optimization/46722
690         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
691         operands as arguments.
692         (execute_optimize_widening_mul): Also handle power of two as
693         multiplication.
694
695 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
696
697         PR middle-end/46709
698         * cgraphunit.c (process_function_and_variable_attributes): Fix
699         cut'n'pasteo.
700
701 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
702
703         * hwint.c:  New.  Extracted from toplev.c.
704         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
705         Move from toplev.h.
706         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
707         Move to hwint.c.
708         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
709         Move to hwint.h.
710         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
711         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
712         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
713         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
714         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
715         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
716         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
717         tree-vrp.c: Don't include toplev.h.
718         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
719         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
720         toplev.h in generated output.
721         * Makefile.in (OBJS-common): Add hwint.o.
722         Dependencies for above files changed to remove toplev.h.
723         (hwint.o): New.
724         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
725         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
726         toplev.h.
727         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
728         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
729
730 2010-11-30  Richard Guenther  <rguenther@suse.de>
731
732         PR tree-optimization/46717
733         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
734         call.  Manually create EH edges for the direct call and update
735         target PHI nodes.
736
737 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
738
739         * diagnostic-core.h: Include bversion.h.
740         * toplev.h: Don't include input.h or bversion.h.
741         (parse_optimize_options): Don't declare here.
742         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
743         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
744         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
745         config/host-darwin.c, config/i386/host-cygwin.c,
746         config/i386/host-mingw32.c, config/i386/msformat-c.c,
747         config/i386/netware.c, config/i386/nwld.c,
748         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
749         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
750         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
751         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
752         config/score/score3.c, config/score/score7.c,
753         config/sh/symbian-base.c, config/sh/symbian-c.c,
754         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
755         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
756         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
757         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
758         graphite-blocking.c, graphite-clast-to-gimple.c,
759         graphite-dependences.c, graphite-flattening.c,
760         graphite-interchange.c, graphite-poly.c,
761         graphite-scop-detection.c, graphite.c, haifa-sched.c,
762         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
763         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
764         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
765         lto-opts.c, lto-section-in.c, lto-section-out.c,
766         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
767         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
768         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
769         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
770         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
771         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
772         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
773         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
774         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
775         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
776         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
777         include toplev.h.
778         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
779         toplev.h.  Dependencies for above files and c-family files changed
780         to remove $(TOPLEV_H) or toplev.h.
781         (C_TREE_H): Don't include $(TOPLEV_H).
782         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
783         bversion.h.
784         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
785         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
786         config/t-darwin, config/t-sol2,
787         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
788         Dependencies for above files changed to remove $(TOPLEV_H) or
789         toplev.h.
790
791 2010-11-30  Richard Guenther  <rguenther@suse.de>
792
793         PR lto/44986
794         * gcc.c (main): Use the first input with a compiler as infile
795         for link spec processing.
796
797 2010-11-30  Richard Guenther  <rguenther@suse.de>
798
799         PR lto/45949
800         * cgraphunit.c (ipa_passes): Stop after errors from
801         small IPA passes.
802
803 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
804
805         * gcc-plugin.h: Include coretypes.h.
806         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
807
808 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
809
810         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
811         * ggc-none.c (ggc_internal_alloc_zone_stat)
812         (ggc_internal_cleared_alloc_zone_stat): New.
813
814 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
815
816         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
817         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
818         (rs6000_emit_prologue): Don't set PIC register if
819         TARGET_SINGLE_PIC_BASE.
820         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
821         * doc/invoke.texi (msingle-pic-base): Document.
822
823 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
824
825         PR driver/46712
826         * exec-tool.in (id): New.
827         Check and export LT_RCU_$id instead of LT_RCU.
828
829 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
830
831         PR tree-optimization/46675
832         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
833         in offset calculation.
834
835 2010-11-29  Jan Hubicka  <jh@suse.cz>
836
837         * collect2.c (main): Do not imply verbose output with
838         LTO and linker plugin.
839
840 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
841
842         * dwarf2out.c (print_die): Print the address of the current DIE or
843         of any DIE referenced by the current one.
844
845 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
846
847         PR debug/46101
848         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
849         function.
850         (scope_die_for, gen_type_die_for_member): Replace uses of
851         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
852
853 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
854
855         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
856         (darwin_asm_declare_object_name): Correct spelling.
857         (darwin_output_aligned_bss): Likewise.
858
859 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
860             Mike Stump  <mrs@gcc.gnu.org>
861
862         PR target/26427
863         PR target/33120
864         PR testsuite/35710
865         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
866         (ASM_OUTPUT_LOCAL): Likewise.
867         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
868         (darwin_output_aligned_bss): Likewise.
869         (darwin_asm_output_aligned_decl_local): Likewise.
870         (darwin_asm_output_aligned_decl_common): Likewise.
871         (darwin_use_anchors_for_symbol_p): Likewise.
872         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
873         (TARGET_ASM_OUTPUT_ANCHOR): Define.
874         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
875         (DARWIN_SECTION_ANCHORS): Set to 1.
876         * config/darwin.c (emit_aligned_common): New var.
877         (darwin_init_sections): Check that the Darwin private zero-size section
878         marker is in range.
879         (darwin_text_section): Check for zero-sized objects.
880         (darwin_mergeable_string_section): Likewise.
881         (darwin_mergeable_constant_section): Likewise.
882         (machopic_select_section): Adjust to check for zero-sized objects.
883         Assert that OBJC meta data are non-zero sized.
884         (darwin_asm_declare_object_name): New.
885         (darwin_asm_declare_constant_name): Adjust for zero-sized
886         object sections.
887         (BYTES_ZFILL): Define.
888         (darwin_emit_weak_or_comdat): New.
889         (darwin_emit_local_bss): New.
890         (darwin_emit_common): New.
891         (darwin_output_aligned_bss): New.
892         (darwin_asm_output_aligned_decl_common): New.
893         (darwin_asm_output_aligned_decl_local): New.
894         (darwin_file_end): Disable subsections_via_symbols when section
895         anchoring is active.
896         (darwin_asm_output_anchor): Re-enable.
897         (darwin_use_anchors_for_symbol_p): New.
898         (darwin_override_options): Check for versions that can emit
899         aligned common.  Update usage of flags to current.
900         * config/darwin-sections.def: Update comments and flags for
901         non-anchor sections.  zobj_const_section, zobj_data_section,
902         zobj_bss_section, zobj_const_data_section: New.
903         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
904         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
905         (L2_MAX_OFILE_ALIGNMENT): Define.
906         (ASM_OUTPUT_ALIGNED_BSS): Define.
907         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
908         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
909         (SECTION_NO_ANCHOR): Define.
910         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
911         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
912
913 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
914
915         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
916         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
917         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
918         Conditionally define.
919         (GET_ENVIRONMENT): Poison.
920         * configure.ac: Don't test for mincore.
921         * configure: Regenerate.
922         * config.in: Regenerate.
923         * collect2-aix.c: Don't include <sys/mman.h>.
924         * collect2.c: Don't include <signal.h>.
925         (SIGCHLD): Don't define.
926         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
927         * config/alpha/alpha.c: Include "splay-tree.h" instead of
928         <splay-tree.h>.
929         * config/arm/arm.c (arm_target_help): Use getenv instead of
930         GET_ENVIRONMENT.
931         * config/avr/driver-avr.c: Don't include <stdlib.h>.
932         * config/frv/frv.c: Don't include <ctype.h>.
933         * config/host-darwin.c: Don't include <sys/mman.h>.
934         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
935         (MAP_FAILED): Don't define.
936         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
937         * config/host-solaris.c: Don't include <sys/mman.h>.
938         * config/i386/cygming.h: Don't include <stdio.h>.
939         * config/i386/driver-i386.c: Don't include <stdlib.h>.
940         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
941         * config/iq2000/iq2000.c: Don't include <signal.h>.
942         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
943         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
944         * config/mep/mep-pragma.c: Don't include <stdio.h>.
945         * config/microblaze/microblaze.c: Don't include <signal.h>.
946         * config/mips/mips.c: Don't include <signal.h>.
947         * config/rs6000/host-darwin.c: Don't include <signal.h>.
948         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
949         * defaults.h (GET_ENVIRONMENT): Don't define.
950         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
951         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
952         (SIGCHLD, MAP_FAILED, kill): Don't define.
953         (process_command): Use getenv instead of GET_ENVIRONMENT.
954         * genhooks.c: Don't include <string.h>.
955         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
956         <sys/types.h>.
957         (MAP_FAILED): Don't define.
958         * ggc-page.c Don't include <sys/mman.h>.
959         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
960         * ggc-zone.c: Don't include <sys/mman.h>.
961         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
962         * graph.c: Include "config.h" instead of <config.h>.
963         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
964         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
965         (SIGCHLD, kill): Don't define.
966         * mips-tfile.c: Don't include <signal.h>.
967         * opts.c: Don't include <signal.h> or <sys/resource.h>.
968         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
969         * passes.c: Don't include <signal.h>, <sys/resource.h> or
970         <sys/times.h>.
971         * sparseset.h: Don't include <assert.h>.
972         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
973         * tlink.c: Don't include "libiberty.h".
974         * toplev.c: Don't include <signal.h> or <sys/times.h>.
975         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
976         * tree-switch-conversion.c: Don't include <signal.h>.
977         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
978
979 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
980
981         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
982         c_parser_objc_try_catch_finally_statement for consistency with the
983         C++ parser.  Parse @catch(...) and pass NULL_TREE to
984         objc_begin_catch_clause() in that case.  Improved error recovery.
985         Reorganized code to be almost identical to
986         cp_parser_objc_try_catch_finally_statement.
987
988 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
989
990         PR tree-optimization/46621
991         * gimple.h: Don't include tm.h or hard-reg-set.h .
992         * Makefile.in (GIMPLE_H): Remove $(TM_H).
993
994         PR bootstrap/44756
995         * cppbuiltin.c: Include target.h .
996         (define_builtin_macros_for_type_sizes):
997         Use targetm.float_words_big_endian.
998
999 2010-11-27  Jan Hubicka  <jh@suse.cz>
1000
1001         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
1002         and output cold_text_section_label.
1003         (dwarf2out_init): Don't do that there.
1004         (dwarf2out_finish): Handle cold section end label only if cold
1005         section was used.
1006
1007 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1008
1009         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
1010         VLA variables.
1011
1012 2010-11-27  Richard Guenther  <rguenther@suse.de>
1013
1014         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
1015         (gimple_assign_ssa_name_copy_p): Likewise.
1016         (gimple_assign_unary_nop_p): Use is_gimple_assign.
1017         (is_gimple_cast): Remove.
1018         (gimple_assign_single_p): Move ...
1019         * gimple.h (gimple_assign_single_p): ... here.
1020         (is_gimple_cast): Remove.
1021         (gimple_assign_rhs_code): Simplify.
1022         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
1023         instead of is_gimple_cast.
1024         * ipa-type-escape.c (look_for_casts): Likewise.
1025
1026 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
1027
1028         * doc/options.texi (Enum, EnumValue): Document new record types.
1029         (Enum): Document new option flag.
1030         * opt-functions.awk
1031         * optc-gen.awk: Handle enumerated option arguments.
1032         * opth-gen.awk: Handle enumerated option arguments.
1033         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
1034         enum_value_to_arg): New.
1035         (decode_cmdline_option): Handle enumerated arguments.
1036         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
1037         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
1038         * opts.c (print_filtered_help, print_specific_help): Take
1039         lang_mask arguments.
1040         (print_filtered_help): Handle printing values of enumerated
1041         options.  Print possible arguments for enumerated options.
1042         (print_specific_help): Update call to print_filtered_help.
1043         (common_handle_option): Update calls to print_specific_help.  Use
1044         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
1045         handle OPT_ffp_contract_, OPT_fexcess_precision_,
1046         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
1047         OPT_fira_region_ here.
1048         * opts.h (enum cl_var_type): Add CLVC_ENUM.
1049         (struct cl_option): Add var_enum.
1050         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
1051         struct cl_enum, cl_enums, cl_enums_count): New.
1052         (CL_ERR_ENUM_ARG): Define.
1053         (CL_ERR_NEGATIVE): Update value.
1054         (enum_value_to_arg): Declare.
1055         * common.opt (flag_ira_algorithm, flag_ira_region,
1056         flag_fp_contract_mode, flag_excess_precision_cmdline,
1057         default_visibility, flag_tls_default): Remove Variable entries.
1058         (help_enum_printed): New Variable.
1059         (fdiagnostics-show-location=): Use Enum.  Add associated
1060         SourceInclude, Enum and EnumValue entries.
1061         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
1062         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
1063         associated Enum and EnumValue entries.
1064
1065 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
1066
1067         PR target/46623
1068         * config/microblaze/microblaze.c (microblaze_block_move_straight):
1069         Use XALLOCAVEC.
1070         (microblaze_option_override): Don't use C++ style comments.
1071         (save_restore_insns): Remove unused variable base_offset.
1072         (microblaze_expand_prologue): Remove unused variable insn.
1073         (microblaze_secondary_reload): Adjust type to match target.h .
1074         (microblaze_elf_in_small_data_p): Move declarations to start of block.
1075         (microblaze_expand_move): Likewise.
1076         * config/microblaze/microblaze.h (LARGE_INT):
1077         Avoid signed / unsigned comparisons.
1078         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1079         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
1080         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
1081
1082 2010-11-26  Michael Matz  <matz@suse.de>
1083
1084         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
1085
1086         * passes.c (init_optimization_passes): Remove superfluous
1087         copy-prop pass.
1088
1089 2010-11-26  Richard Guenther  <rguenther@suse.de>
1090
1091         PR lto/46648
1092         * gimple.c (gtc_visit): Do not return true for members of an
1093         SCC still being processed but the current lattice value of
1094         the member.  Treat SCC members comparison state as lattice,
1095         starting at equal, eventually dropping to unequal.
1096         (gimple_types_compatible_p_1): Likewise.
1097
1098 2010-11-26  Richard Guenther  <rguenther@suse.de>
1099
1100         PR middle-end/46559
1101         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
1102         for location list processing.
1103
1104 2010-11-26  Richard Guenther  <rguenther@suse.de>
1105
1106         PR lto/46560
1107         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
1108         flags manually.
1109
1110 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1111
1112         * config/s390/s390.c (print_operand_address): Replace assert with
1113         error message.
1114         (print_operand): Replace assertions, gcc_unreachable and
1115         fatal_insn with error messages.
1116
1117 2010-11-26  Richard Guenther  <rguenther@suse.de>
1118
1119         PR tree-optimization/46665
1120         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
1121
1122 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
1123
1124         * config/arm/arm.c (arm_option_override): enable loop array
1125         prefetching at -O3 for suitable targets, and configure params.
1126         * config/arm/arm-protos.h (struct tune_params): Add fields for
1127         configuring loop array prefetching.
1128
1129 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
1130
1131         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
1132
1133 2010-11-26  Richard Guenther  <rguenther@suse.de>
1134
1135         PR tree-optimization/46664
1136         * tree-affine.c (aff_combination_to_tree): Add rest last.
1137
1138 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1139
1140         PR target/33637
1141         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
1142         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
1143         * configure: Regenerated.
1144         * exec-tool.in: Not quoting command, may have extra arguments.
1145
1146 2010-11-26  Richard Guenther  <rguenther@suse.de>
1147
1148         PR tree-optimization/46528
1149         PR debug/46338
1150         * profile.c (branch_prob): Do not split blocks based on locations
1151         from debug statements.
1152
1153 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
1154
1155         PR middle-end/46647
1156         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
1157         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
1158
1159         PR bootstrap/45700
1160         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1161         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
1162         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
1163         build6_loc): Define.
1164         * fold-const.c (protected_set_expr_location_unshare): New inline.
1165         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
1166         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
1167         pedantic_omit_one_operand_loc, omit_two_operands_loc,
1168         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
1169         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
1170         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
1171         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
1172         instead of buildN followed by SET_EXPR_LOCATION or
1173         protected_set_expr_location.
1174         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
1175         Use buildN_stat_loc instead of buildN_stat followed by
1176         SET_EXPR_LOCATION.
1177
1178 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
1179
1180         * Makefile.in (s-tm-texi): Remove spurous tab.
1181
1182 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1183
1184         PR debug/46258
1185         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
1186         debug stmts.
1187
1188 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1189
1190         * toplev.c (finalize): Add no_backend parameter.  Don't finish
1191         passes when preprocessing only.  Adjust...
1192         (do_compile): ... caller.
1193
1194 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1195
1196         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
1197         flag_unsafe_math_optimizations.
1198         (negsf2): Likewise.
1199         Move fnegabs related patterns together.  Only use fmpynfadd instruction
1200         to negate a multiply if !flag_signed_zeros is true.
1201
1202 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
1203
1204         * gengtype-state.c (read_state_structures): Initialize "previous".
1205
1206 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
1207             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1208
1209         * gengtype-state.c: Add new file.
1210
1211         * gengtype.c (type count): New variable.
1212         (new_structure, find_param_structure, create_pointer)
1213         (create_array): Use it to set state_number in types.
1214         (dump_everything): Improve comment.
1215         (main): Call read_state and write_state. Print type_count.
1216
1217         * gengtype.h (type_lineloc): New function.
1218         (read_state, write_state): New declarations.
1219
1220         * Makefile.in (GENGTYPE_FLAGS): New variable.
1221         (s-gtype): Run gengtype twice and generate gtype.state.
1222         (build/gengtype-state.o): New rule.
1223         (build/gengtype$(build_exeext)): Link gengtype-state.o.
1224         (mostlyclean): Update comment.  Remove gtype.state.
1225
1226 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
1227
1228         PR middle-end/46637
1229         * combine.c (try_combine): When substing i2dest for i2src, pass
1230         1 as last argument even if
1231         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
1232
1233 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1234
1235         PR middle-end/46647
1236         * builtins.c (target_char_cast): Check INTEGER_CST instead of
1237         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
1238
1239 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
1240
1241         * target.def (supports_split_stack, except_unwind_info): Take
1242         gcc_options parameters.
1243         * targhooks.c (default_except_unwind_info,
1244         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
1245         gcc_options parameters.
1246         * targhooks.h (default_except_unwind_info,
1247         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
1248         prototypes.
1249         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
1250         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
1251         Document that hooks must not be modified.
1252         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
1253         * doc/tm.texi: Regenerate.
1254         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
1255         &global_options to targetm.except_unwind_info.
1256         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1257         dwarf2out_begin_prologue, dwarf2out_frame_init,
1258         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
1259         &global_options to targetm.except_unwind_info.
1260         * except.c (init_eh, finish_eh_generation,
1261         gate_convert_to_eh_region_ranges,
1262         output_one_function_exception_table): Pass &global_options to
1263         targetm.except_unwind_info.
1264         * expr.c (build_personality_function): Pass &global_options to
1265         targetm.except_unwind_info.
1266         * function.c (expand_function_end): Pass &global_options to
1267         targetm.except_unwind_info.
1268         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
1269         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
1270         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
1271         and targetm.supports_split_stack.  Remove assertions about opts
1272         and opts_set.
1273         (common_handle_option): Remove assertions about opts, opts_set and dc.
1274         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
1275         &global_options to targetm.except_unwind_info.
1276         * tree.c (build_common_builtin_nodes: Pass &global_options to
1277         targetm.except_unwind_info.
1278         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
1279         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
1280         thumb1_expand_prologue, thumb1_output_function_prologue,
1281         arm_unwind_emit, arm_output_fn_unwind): Update calls to
1282         arm_except_unwind_info.
1283         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
1284         parameter.
1285         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1286         parameter.
1287         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1288         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1289         ia64_except_unwind_info.
1290         * config/pa/pa.c (pa_option_override): Pass &global_options to
1291         targetm.except_unwind_info.
1292         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1293         Remove prototype.
1294
1295 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1296
1297         * cgraphunit.c (process_function_and_variable_attributes):
1298         Mark dllexport-ed function/variables as needed.
1299         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1300         as externally visible.
1301
1302 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1303
1304         PR rtl-optimization/46585
1305         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1306         (vinsn_init): Skip computation of dependencies for local NOPs.
1307         (vinsn_delete): Don't try to free regsets for local NOPs.
1308         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1309
1310 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1311
1312         PR rtl-optimization/46602
1313         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1314         (tidy_control_flow): Here.
1315
1316 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1317             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1318
1319         PR bootstrap/45888
1320         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1321         Fix target.def pathname in timestamp comparison.
1322
1323 2010-11-24  Richard Henderson  <rth@redhat.com>
1324
1325         * config/ia64/predicates.md (pmpyshr_operand): New.
1326         * config/ia64/ia64.c (ia64_expand_unpack): New.
1327         (ia64_expand_widen_mul_v4hi): New.
1328         (ia64_expand_widen_sum): Update for pattern renames.
1329         (ia64_expand_dot_prod_v8qi): Likewise.
1330         * config/ia64/ia64-protos.h: Update.
1331         * config/ia64/vect.md (vecwider): New mode attribute.
1332         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1333         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1334         (pmpyshr2, pmpyshr2_u): New.
1335         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1336         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1337         (mulv2si3): New.
1338         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1339         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1340         (vec_pack_ssat_v2si): Rename from pack4_sss.
1341         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1342         vec_select operation.
1343         (vec_interleave_highv8qi): Similarly.
1344         (mux1_alt): Rename from *mux1_alt.
1345         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1346         (vec_interleave_lowv4hi): Rename from unpack2_l.
1347         (vec_interleave_highv4hi): Rename from unpack2_h.
1348         (mix2_r): Rename from *mix2_r.
1349         (mix2_l): Similarly.
1350         (vec_extract_evenodd_helper): New.
1351         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1352         (vec_interleave_lowv2si): Rename from *unpack4_l.
1353         (vec_interleave_highv2si): Rename from *unpack4_h.
1354         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1355         (vec_interleave_lowv2sf): Rename from fmix_r.
1356         (vec_interleave_highv2sf): Rename from *fmix_l.
1357         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1358         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1359         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1360         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1361
1362 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1363
1364         * targhooks.c (default_except_unwind_info): Remove
1365         MUST_USE_SJLJ_EXCEPTIONS case.
1366         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1367         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1368         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1369         * doc/tm.texi: Regenerate.
1370         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1371
1372 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1373
1374         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1375         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1376         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1377         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1378         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1379
1380 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1381
1382         PR target/46519
1383         * config/i386/i386.c (ix86_expand_call): Don't check
1384         TREE_THIS_VOLATILE.
1385
1386 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1387
1388         PR target/46519
1389         * config/i386/i386.c (upper_128bits_state): New.
1390         (block_info_def): Remove upper_128bits_set and done.  Add state,
1391         referenced, count, processed and rescanned.
1392         (check_avx256_stores): Updated.
1393         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1394         Call note_stores only if needed.  Set referenced and count.
1395         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1396         (rescan_move_or_delete_vzeroupper): New.
1397         (move_or_delete_vzeroupper):  Process and rescan all all basic
1398         blocks instead of predecessor blocks of all exit points.
1399         (ix86_option_override_internal): Enable vzeroupper optimization
1400         only for -fexpensive-optimizations and not optimizing for size.
1401         (use_avx256_p): Removed.
1402         (init_cumulative_args): Don't set use_avx256_p.
1403         (ix86_function_arg): Likewise.
1404         (ix86_expand_move): Likewise.
1405         (ix86_expand_vector_move_misalign): Likewise.
1406         (ix86_local_alignment): Likewise.
1407         (ix86_minimum_alignment): Likewise.
1408         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1409         vzeroupper.
1410         (ix86_expand_call): Likewise.
1411
1412         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1413         and use_avx256_p.  Add rescan_vzeroupper_p.
1414
1415 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1416
1417         * toplev.c: Include <signal.h>.
1418
1419 2010-11-24  Richard Guenther  <rguenther@suse.de>
1420
1421         PR lto/43218
1422         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1423         conflicting function signatures as non-inlineable.
1424
1425 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1426
1427         PR rtl-optimization/46614
1428         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1429          (deps_analyze_insn): Mark JUMP_INSNs in
1430         last_pending_memory_flush that weren't added through
1431         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1432         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1433         on INSN_LIST instead of JUMP_P check on its operand.
1434         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1435
1436 2010-11-24  Richard Guenther  <rguenther@suse.de>
1437
1438         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1439
1440 2010-11-24  Richard Guenther  <rguenther@suse.de>
1441
1442         PR lto/46606
1443         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1444         a FIELD_DECL that is type correct issue a warning and fixup
1445         with a VIEW_CONVERT_EXPR.
1446
1447 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1448
1449         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1450         Explain static numbering of dump files.
1451
1452 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1453
1454         * common.opt (user_vect_verbosity_level): New Variable entry.
1455         (ftree-vectorizer-verbose=): Mark as UInteger.
1456         * flag-types.h (enum vect_verbosity_levels): Move from enum
1457         verbosity_levels in tree-vectorizer.h.
1458         * opts.c: Don't include tree.h.
1459         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1460         gcc_options parameter; take integer option argument.
1461         (common_handle_option): Update call to vect_set_verbosity_level.
1462         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1463         (vect_set_verbosity_level): Move to opts.c.
1464         (vect_verbosity_level, vect_print_dump_info): Update for change of
1465         enum name.
1466         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1467         (vect_print_dump_info): Update for change of enum name.
1468         * tree.h (vect_set_verbosity_level): Remove.
1469         * Makefile.in (opts.o): Update dependencies.
1470
1471 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1472
1473         PR middle-end/46629
1474         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1475         instead of insn with any_condjump_p.
1476
1477 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1478
1479         * config/mips/loongson.md: Change the description comment of the file
1480         and update the copyright years.
1481         (define_insn "<u>div<mode>3): Add loongson3a support.
1482         (define_insn "<u>mod<mode>3"): Likewise.
1483         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1484         mul<mode>3_mul3_loongson.
1485         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1486         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1487
1488 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1489
1490         * common.opt (initial_max_fld_align, flag_debug_asm,
1491         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1492         flag_print_asm_name, graph_dump_format, help_printed,
1493         help_columns, flag_opts_finished): New Variable entries.
1494         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1495         frandom-seed=): Mark deferred.
1496         (fsched-verbose=): Use UInteger and Var.
1497         * flags.h (set_struct_debug_option, flag_print_asm_name,
1498         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1499         graph_dump_format): Don't declare here.
1500         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1501         * opts-global.c: Include dbgcnt.h and debug.h.
1502         (decode_options): Pass location to finish_options.
1503         (handle_common_deferred_options): Check flag_dump_all_passed.
1504         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1505         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1506         OPT_fstack_limit.
1507         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1508         (set_struct_debug_option): Add location_t parameter.  Update
1509         recursive call.  Use error_at.
1510         (default_options_optimization): Use error_at.
1511         (finish_options): Add location_t parameter.  Use
1512         opts->x_flag_opts_finished instead of first_time_p.  Use
1513         opts->x_optimize instead of optimize.  Use error_at.  Pass
1514         location to inform.
1515         (print_filtered_help): Use opts->x_help_printed to track what
1516         options have been printed.
1517         (print_specific_help): Use opts->x_help_columns to track number of
1518         columns.
1519         (common_handle_option): Pass locations and gcc_options pointers to
1520         more functions.  Use warning_at instead of fnotice and warning.
1521         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1522         OPT_fdebug_prefix_map_.  Use error_at.  Set
1523         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1524         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1525         OPT_fsched_verbose_.
1526         (handle_param): Add location_r parameter.  Use error_at.
1527         (set_debug_level): Add location_r parameter.  Use error_at and
1528         warning_at.
1529         (setup_core_dumping): Add diagnostic_context parameter.
1530         (decode_d_option): Add gcc_options, location_t and
1531         diagnostic_context parameters and use them instead of global
1532         state.  Use warning_at.
1533         (enable_warning_as_error): Use error_at.
1534         * opts.h (finish_options): Update prototype.
1535         (set_struct_debug_option): Declare here.
1536         * rtl.h (fix_sched_param): Remove.
1537         * stor-layout.c (initial_max_fld_align): Remove.
1538         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1539         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1540         (process_options): Set maximum_field_alignment.
1541         * tree.h (initial_max_fld_align) Don't declare here.
1542         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1543
1544 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1545
1546         * flag-types.h (struct visibility_flags): Don't declare here.
1547         * flags.h (strip_off_ending, fast_math_flags_set_p,
1548         fast_math_flags_struct_set_p): Declare here.
1549         (visibility_options): Don't declare here.
1550         * opts-common.c (option_enabled, get_option_state): Move from
1551         opts.c.
1552         * opts-global.c: Include diagnostic.h instead of
1553         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1554         and toplev.h.
1555         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1556         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1557         print_ignored_options, unknown_option_callback,
1558         post_handling_callback, lang_handle_option, add_input_filename,
1559         read_cmdline_options, initial_lang_mask, init_options_once,
1560         decode_cmdline_options_to_array_default_mask,
1561         set_default_handlers, decode_options): Move from opts.c.
1562         (print_ignored_options): Use warning_at instead of saving and
1563         restoring input_location.
1564         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1565         instead of expr.h.  Don't include langhooks.h, except.h or
1566         lto-streamer.h.  Add more comments on includes.
1567         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1568         toplev.c.
1569         (visibility_options): Move to c-family/c-common.c.
1570         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1571         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1572         print_ignored_options, unknown_option_callback,
1573         post_handling_callback, lang_handle_option, add_input_filename,
1574         read_cmdline_options, initial_lang_mask, init_options_once,
1575         decode_cmdline_options_to_array_default_mask,
1576         set_default_handlers, decode_options): Move to opts-global.c.
1577         (target_handle_option, default_options_optimization,
1578         finish_options, common_handle_option): Remove static.
1579         (option_enabled, get_option_state): Move to opts-common.c.
1580         * opts.h (common_handle_option, target_handle_option,
1581         finish_options, default_options_optimization): Declare.
1582         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1583         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1584         opts.c.
1585         * toplev.h (strip_off_ending, decode_d_option,
1586         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1587         declare here.
1588         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1589
1590 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1591
1592         PR driver/42690
1593         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1594         options, replace by call of pass-through-libs spec function to process
1595         link_gcc_c_sequence spec.
1596         (lto_libgcc_spec): Delete variable.
1597         (static_specs[]): Remove related entry.
1598         (static_spec_functions[]): Add new entry for pass-through-libs.
1599         (main): Don't generate deleted lto_libgcc_spec.
1600         (pass_through_libs_spec_func): New function to implement the new
1601         pass-through-libs spec function.
1602         * doc/invoke.texi (pass-through-libs): Document new spec function.
1603
1604 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1605
1606         * doc/options.texi (Warning, Optimization): Document.
1607
1608 2010-11-23  Jan Hubicka  <jh@suse.cz>
1609
1610         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1611         (tree_decl_with_vis): Add implicit_section_name_p.
1612         * targhooks.h (default_function_section): Declare.
1613         * target.def (function_section): New hook.
1614         * defaults.h (HOT_TEXT_SECTION_NAME,
1615         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1616         * predict.c (choose_function_section): Remove.
1617         (estimate_bb_frequencies): Do not use choose_function_section.
1618         * coretypes.h (enum node_frequency): Move here from cgraph.h
1619         * cgraph.h (enum node_frequency): Remove.
1620         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1621         unlikely_text_section_p): Remove.
1622         (named_subsection_entry): New structure.
1623         (get_text_section): New function.
1624         (default_function_section): New function.
1625         (function_section_1): Break out from ...; handle profile info.
1626         (function_section): ... here.
1627         (unlikely_text_section): Remove.
1628         (unlikely_text_section_p): Use function_section_1.
1629         (assemble_start_function): Do not initialize cold section.
1630         (default_section_type_flags): Do not special case cold subsection.
1631         (switch_to_section): Likewise.
1632         * output.h (get_text_section): Define.
1633         * config/i386/winnt.c: Do not special case cold section.
1634         * config/darwin-protos.h (darwin_function_section): Declare.
1635         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1636         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1637         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1638         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1639         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1640         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1641         * config/darwin.c (machopic_select_section): Use
1642         darwin_function_section.
1643         (darwin_function_section): New function.
1644         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1645         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1646         (TARGET_ASM_FUNCTION_SECTION): Define.
1647         * system.h (HOT_TEXT_SECTION_NAME,
1648         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1649
1650 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1651
1652         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1653         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1654
1655 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1656
1657         PR middle-end/46499
1658         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1659         following unconditional jumps.
1660
1661 2010-11-23  Richard Guenther  <rguenther@suse.de>
1662
1663         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1664
1665 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1666             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1667
1668         * gengtype.c (enum typekind, struct options)
1669         (struct nested_ptr_data, struct pair, NUM_PARAM)
1670         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1671         Move to gengtype.h.
1672         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1673         Remove static, add zero state_number.
1674         (typedefs, structures, param_structs, variables): Remove static.
1675         (create_option): Remove.
1676         (create_string_option, create_type_option, create_nested_option):
1677         New functions.
1678         (create_nested_ptr_option): Use create_nested_option.
1679         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1680         new create*option functions.
1681         (process_gc_options): Adjust for discriminated option.
1682         (output_mangled_typename): Handle TYPE_NONE.
1683         (walk_type): Test option kinds.
1684         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1685         (write_func_for_structure, write_type, write_local, write_root)
1686         (write_roots, note_def_vec, dump_options): Adjust for
1687         discriminated option.
1688
1689         * gengtype.h (typedefs, structures, param_structs, variables
1690         enum typekind): Move from gengtype.c
1691         (enum option_kind): New discriminating enumeration.
1692         (struct options): Becomes discriminated.
1693         (struct nested_ptr_data): Nove from gengtype.c
1694         (create_string_option, create_type_option, create_nested_option)
1695         (create_nested_ptr_option): New functions
1696         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1697         (UNION_OR_STRUCT_P): Move from gengtype.c
1698
1699         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1700         discriminated options.
1701
1702 2010-11-23  Richard Guenther  <rguenther@suse.de>
1703
1704         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1705         twice.  Avoid re-allocating the ops vector all the time.
1706
1707 2010-11-23  Richard Guenther  <rguenther@suse.de>
1708
1709         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1710         is_gimple_min_invariant, group tree code checks to allow
1711         combining them.
1712         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1713         of is_gimple_reg.
1714
1715 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1716
1717         * config.gcc (sparc*-*-*): Reorder.
1718
1719 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1720
1721         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1722         Remove ENABLE_CHECKING around DBGPRINTF.
1723
1724 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1725
1726         * common.opt (exit_after_options, write_symbols, debug_info_level,
1727         use_gnu_debug_info_extensions): New Variable entries.
1728         (fprofile-dir=): Use Var.
1729         * flag-types.h (enum debug_info_level): Rename to enum
1730         debug_info_levels.
1731         * flags.h (write_symbols, debug_info_level,
1732         use_gnu_debug_info_extensions): Remove declarations.
1733         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1734         (set_struct_debug_option): Make static variables const.
1735         (use_gnu_debug_info_extensions): Remove.
1736         (set_debug_level, print_filtered_help, print_specific_help,
1737         fast_math_flags_set_p): Take gcc_options parameters and use them
1738         in place of global variables.
1739         (print_filtered_help): Make new_help non-static.
1740         (print_specific_help): Update call to print_filtered_help.
1741         (common_handle_option): Update calls to print_specific_help.  Use
1742         gcc_options structure for more settings.  Make --help table
1743         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1744         set_debug_level.
1745         * toplev.c (profile_data_prefix): Remove.
1746         * toplev.h (profile_data_prefix, exit_after_options): Remove
1747         declarations.
1748         (fast_math_flags_set_p): Update prototype.
1749         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1750         Update call to fast_math_flags_set_p.
1751
1752 2010-11-22  Richard Henderson  <rth@redhat.com>
1753
1754         PR target/46434
1755         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1756         return the address register extracted.
1757         (crx_decompose_address): Update the extracted address register.
1758
1759 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1760
1761         PR driver/43335
1762         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1763
1764 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1765
1766         PR target/46608
1767         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1768         * config/picochip/picochip-protos.h: Don't include "target.h" .
1769         (picochip_secondary_reload): Don't declare.
1770
1771         PR target/46613
1772         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1773         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1774         static.
1775
1776 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1777
1778         PR bootstrap/46609
1779         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1780         (source_dot_c_frul): Likewise.
1781
1782 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1783
1784         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1785
1786 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1787
1788         PR bootstrap/44970
1789         * Makefile.in (fwprop.o) Add sparseset.h.
1790         * fwprop.c: Include sparseset.h
1791         (struct find_occurrence_data, find_occurrence_callback,
1792         find_occurrence): Remove.
1793         (active_defs, active_defs_check, register_active_defs,
1794         update_df_init, update_uses): New.
1795         (update_df): Rewrite.
1796         (try_fwprop_subst, forward_propagate_asm): Add calls to
1797         update_df_init and update_df.
1798         (fwprop_init): Allocate active_defs and active_defs_check.
1799         (fwprop_done): Free them.
1800         (fwprop, fwprop_addr): Adjust comments.
1801         * df.h (df_uses_create): Declare.
1802         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1803         (df_ref_create): Return result of df_ref_create_structure directly.
1804         (df_ref_create_structure): Call df_install_ref_incremental when
1805         no collection_rec is passed.
1806         (df_ref_record): Do not create multiword hard reg info when no
1807         collection_rec is passed.
1808         (df_uses_create): New.
1809
1810 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1811
1812         PR middle-end/43057
1813         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1814         setting location.
1815
1816 2010-11-22  Richard Guenther  <rguenther@suse.de>
1817
1818         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1819         MEM_REFs, preserve volatileness.
1820         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1821         addresses.
1822
1823 2010-11-22  Richard Guenther  <rguenther@suse.de>
1824
1825         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1826
1827 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1828
1829         PR rtl-optimization/45652
1830         * alias.c (get_reg_base_value): New.
1831         * rtl.h (get_reg_base_value): Add prototype.
1832         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1833         non-null REG_BASE_VALUE for renaming.
1834
1835 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1836             Basile Starynkevitch  <basile@starynkevitch.net>
1837
1838         * gengtype.c: Include xregex.h and obstack.h
1839         Added comments about role of get_output_file_with_visibility and
1840         our regexpr machinery.
1841         (frul_actionrout_t, struct file_rule_st): New.
1842         (hader_dot_h_frul, source_dot_c_frul): New functions.
1843         (NULL_REGEX,  NULL_FRULACT): New.
1844         (files_rules): New.
1845         (matching_file_name_substitute): New function.
1846         (get_output_file_with_visibility): Updated comments and rewritten
1847         to use the new files_rules machinery.
1848
1849         * Makefile.in (XREGEX_H): Added variable.
1850         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1851
1852 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1853
1854         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1855
1856 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1857
1858         * target.def (conditional_register_usage): Define.
1859         * reginfo.c (init_reg_sets_1): Call
1860         targetm.conditional_register_usage.
1861         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1862         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1863         for making it a hook.
1864         * doc/tm.texi: Regenerate.
1865         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1866         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1867         New function.
1868         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1869         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1870         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1871         New function.
1872         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1873         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1874         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1875         New function.
1876         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1877         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1878         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1879         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1880         (bfin_conditional_register_usage): ...here.  New function.
1881         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1882         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1883         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1884         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1885         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1886         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1887         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1888         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1889         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1890         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1891         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1892         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1893         New function.
1894         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1895         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1896         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1897         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1898         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1899         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1900         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1901         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1902         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1903         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1904         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1905         New function.
1906         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1907         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1908         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1909         Delete.
1910         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1911         static.
1912         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1913         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1914         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1915         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1916         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1917         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1918         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1919         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1920         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1921         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1922         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1923         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1924         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1925         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1926         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1927         ...here.  New function.
1928         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1929         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1930         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1931         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1932         New function.
1933         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1934         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1935         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1936         New function.
1937         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1938         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1939         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1940         Delete.
1941         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1942         static.
1943         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1944         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1945         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1946         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1947         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1948         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1949         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1950         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1951         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1952         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1953         * config/score/score.c (score_conditional_register_usage): ...here.
1954         New function.
1955         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1956         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1957         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1958         New function.
1959         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1960         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1961         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1962         New function.
1963         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1964         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1965         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1966         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1967         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1968         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1969         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1970         New function.
1971         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1972
1973 2010-11-21  Jan Hubicka  <jh@suse.cz>
1974             Dominique d'Humieres <dominiq@lps.ens.ft>
1975
1976         PR target/46510
1977         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1978         finalize external decls.
1979
1980 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1981
1982         * system.h (strerror): Poison.
1983
1984 2010-11-21  Richard Henderson  <rth@redhat.com>
1985
1986         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1987         for infq/huge_valq.
1988
1989 2010-11-21  Richard Henderson  <rth@redhat.com>
1990
1991         PR rtl-optimization/46571
1992         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1993         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1994
1995 2010-11-21  Paul Koning  <ni1d@arrl.net>
1996
1997         * config/mips/pdp11.md (negsi2): Fix wrong code.
1998
1999 2010-11-21  Paul Koning  <ni1d@arrl.net>
2000
2001         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
2002         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2003
2004 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2005
2006         * config/mips/mips.c (machine_function): Rename load_label_length to
2007         load_label_num_insns.
2008         (mips_load_label_length): Rename to...
2009         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
2010         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
2011
2012 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2013
2014         PR target/46533
2015         * config/alpha/predicates.md (direct_call_operand): Return false
2016         for !TARGET_SMALL_TEXT targets.
2017
2018 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
2019
2020         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
2021         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
2022         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
2023         * doc/tm.texi: Regenerate.
2024         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
2025         HANDLE_PRAGMA_WEAK): Poison.
2026         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2027         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2028         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
2029         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
2030         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2031         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2032         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2033         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
2034         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2035         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
2036         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2037         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
2038         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2039         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2040         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2041         (HANDLE_PRAGMA_WEAK): Don't undefine.
2042         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2043         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
2044         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2045         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
2046         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2047         (HANDLE_PRAGMA_WEAK): Don't undefine.
2048         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2049         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
2050         (HANDLE_PRAGMA_PACK): Don't undefine.
2051         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
2052         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2053         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2054         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2055         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
2056         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2057         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2058         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2059         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
2060         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2061         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
2062         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2063         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2064         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2065         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2066         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
2067         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2068
2069 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
2070
2071         PR target/31100
2072         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
2073         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
2074         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2075
2076 2010-11-20  Jan Hubicka  <jh@suse.cz>
2077
2078         * cgraph.c (ld_plugin_symbol_resolution_names): New.
2079         (dump_cgraph_node): Dump resolution.
2080         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
2081         (cgraph_comdat_can_be_unshared_p): Dclare.
2082         * lto-streamer-out.c (produce_symtab): Use
2083         cgraph_comdat_can_be_unshared_p.
2084         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
2085         (cgraph_comdat_can_be_unshared_p): New function based on logic
2086         in cgraph_externally_visible_p.
2087         (cgraph_externally_visible_p): Use it.
2088         (varpool_externally_visible_p): Virtual tables can be unshared.
2089         * varpool.c (dump_varpool_node): Dump resolution.
2090
2091 2010-11-20  Jan Hubicka  <jh@suse.cz>
2092
2093         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2094
2095 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2096
2097         PR other/46202
2098         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
2099         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
2100         shell quoting.
2101         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
2102         (install-strip): New target.
2103         (STRIPPROG): New variable, exported if STRIP is set.
2104         * doc/install.texi (Final install): Minor markup and code style
2105         fixes.  Document install-strip target.
2106
2107 2010-11-20  Paul Koning  <ni1d@arrl.net>
2108
2109         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
2110         pdp11_regno_reg_class): New functions.
2111         * config/pdp11/pdp11.md (define_constants): Add register numbers.
2112         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
2113         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
2114         functions.
2115         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
2116         frame pointer and argument pointer pseudo-registers.
2117         (ARG_POINTER_REGNUM): Define.
2118         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
2119         argument pointer.
2120         (FIRST_PARM_OFFSET): Update for argument pointer.
2121         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2122         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
2123         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
2124         frame pointer and argument pointer.
2125
2126 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
2127
2128         PR debug/46561
2129         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
2130         when looking for immediate uses.
2131
2132         PR tree-optimization/45830
2133         * stmt.c (expand_switch_using_bit_tests_p): New function.
2134         (expand_case): Use it.
2135         * tree.h (expand_switch_using_bit_tests_p): New prototype.
2136         * tree-switch-conversion.c (struct switch_conv_info): Add
2137         bit_test_uniq, bit_test_count and bit_test_bb fields.
2138         (check_range): Fix a comment.
2139         (check_process_case): Compute bit_test_uniq and bit_test_count.
2140         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
2141         allocation.
2142         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
2143         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
2144         (array_value_type): New function.
2145         (build_one_array): Use it, if it returned different type,
2146         fold_convert all constructor fields and convert back to the
2147         wider type in the generated code.
2148         (process_switch): Initialize bit_test_uniq, bit_test_count and
2149         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
2150         returned true.
2151
2152 2010-11-19  Michael Matz  <matz@suse.de>
2153
2154         PR tree-optimization/46077
2155         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
2156
2157 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
2158
2159         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2160         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
2161         function.
2162         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2163
2164 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2165
2166         * mode-switching.c (optimize_mode_switching): Use
2167         FOR_BB_INSNS instead of open-coded loop.
2168         * cfgrtl.c (redirect_branch_edge): Ditto.
2169
2170 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
2171
2172         PR target/46436
2173         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
2174         to accomodate 32 bit HOST_WIDE_INT.
2175         (m68hc11_emit_logical): Remove unused variable insn.
2176         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
2177         this_insn_uses_iy before use.
2178
2179         PR target/46434
2180         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
2181
2182 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2183
2184         PR c/46547
2185         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
2186         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
2187
2188 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2189
2190         * doc/extend.texi (Function attributes): Document PowerPC target
2191         attributes that are supported.
2192         (Pragmas): Document that PowerPC now supports target pragmas.
2193
2194         * doc/options.texi (TargetVariable): Document TargetVariable,
2195         HeaderInclude, and SourceInclude.
2196
2197         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
2198         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
2199         -ffp-contract=off.
2200
2201         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
2202         SourceInclude directives.  Fix a cut+paste error with target save
2203         enum variables.  Sort enums in the structures after ints and
2204         before shorts.
2205         * opth-gen.awk: Ditto.
2206
2207         * configure.ac: Add support for HeaderInclude and SourceInclude option
2208         directives to add the appropriate files to the dependency lists.
2209         * configure: Regenerate.
2210         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
2211         (OPTIONS_C_EXTRA): New variable for SourceInclude.
2212         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
2213         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
2214         (gcc-options.o): Ditto.
2215         * opt-include.awk: New awk script to handle HeaderInclude and
2216         TargetInclude.
2217
2218         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
2219         gets saved in the target options.
2220         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
2221         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2222         (-mprototype): Ditto.
2223         (-mbit-word): ditto.
2224         (-mregnames): Ditto.
2225         (-msecure-plt): Ditto.
2226         (-mbss-plt): Ditto.
2227         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
2228         (-mpowerpc-gfxopt): Ditto.
2229         (-mmfcrf): Ditto.
2230         (-mpopcntb): Ditto.
2231         (-mfprnd): Ditto.
2232         (-mcmpb): Ditto.
2233         (-mmmfpgpr): Ditto.
2234         (-maltivec): Ditto.
2235         (-mhard-dfp): Ditto.
2236         (-mmulhw): Ditto.
2237         (-mdlmzb): Ditto.
2238         (-mmultiple): Ditto.
2239         (-mstring): Ditto.
2240         (-mpopcntd): Ditto.
2241         (-mfriz): Ditto.
2242         (-mvsx): Ditto.
2243         (-mno-update): Ditto.
2244         (-mavoid-indexed-addresses): Ditto.
2245         (-mtls-markers): Ditto.
2246         (-msched-epilog): Ditto.
2247         (-msched-prolog): Ditto.
2248         (-maix-struct-return): Ditto.
2249         (-msvr4-struct-return): Ditto.
2250         (-mxl-compat): Ditto.
2251         (-mrecip-precision): Ditto.
2252         (-mfp-in-toc): Ditto.
2253         (-msum-in-toc): Ditto.
2254         (-mvrsave): Ditto.
2255         (-mblock-move-inline-limit=): Ditto.
2256         (-misel): Ditto.
2257         (-mpaired): Ditto.
2258         (-mlongcall): Ditto.
2259         (-mgen-cell-microcode): Ditto.
2260         (-mwarn-cell-microcode): Ditto.
2261         (-mwarn-altivec-long): Ditto.
2262         (-mprioritize-restricted-insns=): Ditto.
2263         (-msingle-float): Ditto.
2264         (-mdouble-float): Ditto.
2265         (-msimple-fpu): Ditto.
2266         (-mxilinx-fpu): Ditto.
2267         * config/rs6000/aix64.opt (-mpe): Ditto.
2268
2269         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
2270         (rs6000_cpu): Move variable to be a target variable.  Rename
2271         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
2272         -mdebug=<xxx> variables into a single int.
2273         (rs6000_always_hint): Ditto.
2274         (rs6000_sched_groups): Ditto.
2275         (rs6000_align_branch_targets): Ditto.
2276         (rs6000_sched_costly_dep): Ditto.
2277         (rs6000_sched_insert_nops): Ditto.
2278         (rs6000_long_double_type_size): Ditto.
2279         (rs6000_ieeequad): Ditto.
2280         (rs6000_altivec_abi): Ditto.
2281         (rs6000_spe): Ditto.
2282         (rs6000_spe_abi): Ditto.
2283         (rs6000_float_gprs): Ditto.
2284         (rs6000_darwin64_abi): Ditto.
2285         (can_override_loop_align): Ditto.
2286         (rs6000_sdata): Ditto.
2287         (rs6000_tls_size): Ditto.
2288         (rs6000_current_abi): Ditto.
2289         (rs6000_traceback): Ditto.
2290         (rs6000_alignment_flags): Ditto.
2291         (rs6000_current_cmodel): Ditto.
2292         (rs6000_recip_control): Ditto.
2293         (rs6000_cpu_index): Ditto.
2294         (rs6000_tune_index): Ditto.
2295         (rs6000_debug): Ditto.
2296         (rs6000_target_flags_explict): Ditto.
2297
2298         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2299         declaration.
2300
2301         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2302         cmodel.  Change all uses.
2303
2304         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2305         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2306         Rename cmodel to rs6000_current_cmodel.
2307         (rs6000_sched_groups): Ditto.
2308         (rs6000_align_branch_targets): Ditto.
2309         (rs6000_sched_costly_dep): Ditto.
2310         (rs6000_sched_insert_nops): Ditto.
2311         (rs6000_long_double_type_size): Ditto.
2312         (rs6000_ieeequad): Ditto.
2313         (rs6000_altivec_abi): Ditto.
2314         (rs6000_spe): Ditto.
2315         (rs6000_spe_abi): Ditto.
2316         (rs6000_float_gprs): Ditto.
2317         (rs6000_darwin64_abi): Ditto.
2318         (can_override_loop_align): Ditto.
2319         (rs6000_sdata): Ditto.
2320         (rs6000_tls_size): Ditto.
2321         (rs6000_current_abi): Ditto.
2322         (rs6000_traceback): Ditto.
2323         (rs6000_alignment_flags): Ditto.
2324         (rs6000_current_cmodel): Ditto.
2325         (rs6000_recip_control): Ditto.
2326         (rs6000_cpu_index): Ditto.
2327         (rs6000_tune_index): Ditto.
2328         (rs6000_debug): Ditto.
2329         (rs6000_target_flags_explict): Ditto.
2330         (rs6000_sched_insert_nops_str): Make static.
2331         (rs6000_sched_costly_dep_str): Ditto.
2332         (rs6000_recip_name): Ditto.
2333         (rs6000_abi_name): Ditto.
2334         (rs6000_sdata_name): Ditto.
2335         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2336         (rs6000_parse_tls_size_option): Delete.
2337         (rs6000_valid_attribute_p): New function for target attributes and
2338         pragmas.
2339         (rs6000_function_specific_save): Ditto.
2340         (rs6000_function_specific_restore): Ditto.
2341         (rs6000_function_specific_print): Ditto.
2342         (rs6000_can_inline_p): Ditto.
2343         (rs6000_set_current_function): Ditto.
2344         (rs6000_inner_target_options): Ditto.
2345         (rs6000_debug_target_options): Ditto.
2346         (rs6000_pragma_target_parse): Ditto.
2347         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2348         attributes and pragmas.
2349         (TARGET_OPTION_SAVE): Ditto.
2350         (TARGET_OPTION_RESTORE): Ditto.
2351         (TARGET_OPTION_PRINT): Ditto.
2352         (TARGET_CAN_INLINE_P): Ditto.
2353         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2354         (POWER_MASKS): Move to file level scope from the
2355         rs6000_option_override_internal function.
2356         (POWERPC_MASKS): Ditto.
2357         (ISA_*_MASKS): Ditto.
2358         (struct rs6000_ptt): Ditto.
2359         (processor_target_table): Ditto.
2360         (rs6000_cpu_name_lookup): Map cpu name to an index in
2361         processor_target_table.
2362         (rs6000_debug_reg_global): Print more information on processor
2363         options for -mdebug=reg.
2364         (rs6000_init_hard_regno_mode_ok): Add support for target
2365         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2366         Allow -mdebug=val1,val2.  Rename cmodel variable.
2367         (rs6000_option_override_internal): Ditto.
2368         (rs6000_option_override): Ditto.
2369         (rs6000_handle_option): Ditto.
2370         (rs6000_conditional_register_usage): Add debug trace message.
2371         (struct rs6000_opt_mask): New for target attribute/pragma support.
2372         (rs6000_opt_masks): Ditto.
2373         (struct rs6000_opt_var): Ditto.
2374         (rs6000_opt_vars): Ditto.
2375         (rs6000_previous_function): Ditto.
2376
2377         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2378         wasn't already included.
2379         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2380         (enum processor_type): Ditto.
2381         (rs6000_cpu): Ditto.
2382         (enum fpu_type_t): Ditto.
2383         (fpu_type): Ditto.
2384         (enum rs6000_dependence_cost): Ditto.
2385         (enum rs6000_nop_insertion): Ditto.
2386         (enum group_termination): Ditto.
2387         (rs6000_long_double_type_size): Ditto.
2388         (rs6000_ieeequad): Ditto.
2389         (rs6000_altivec_abi): Ditto.
2390         (rs6000_spe_abi): Ditto.
2391         (rs6000_spe): Ditto.
2392         (rs6000_float_gprs): Ditto.
2393         (rs6000_alignment_flags): Ditto.
2394         (rs6000_sched_insert_nops): Ditto.
2395         (enum rs6000_vector): Ditto.
2396         (enum rs6000_abi): Ditto.
2397         (rs6000_current_opt): Ditto.
2398         (rs6000_debug_*): Delete.
2399         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2400         (TARGET_DEBUG*): Ditto.
2401
2402         * config/rs6000/rs6000-opts.h: New header file to define the enums
2403         that are used in target variables that are now defined in rs6000.opt.
2404
2405         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2406         rs6000-opts.h.
2407         (rs6000_sdata): Ditto.
2408         (rs6000_abi_name): Delete.
2409         (rs6000_sdata_name): Ditto.
2410         (rs6000_tls_size_string): Ditto.
2411
2412 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2413
2414         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2415         Variable entries.
2416         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2417         should_emit_struct_debug): Move from opts.c.
2418         * flag-types.h (enum debug_struct_file): Move from opts.c.
2419         * flags.h (should_emit_struct_debug): Remove.
2420         (base_of_path): Declare.
2421         (set_struct_debug_option): Add gcc_options parameter.
2422         * optc-gen.awk, opth-gen.awk: Handle array variables.
2423         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2424         debug_struct_generic): Remove.
2425         (set_struct_debug_option): Add gcc_options parameter.
2426         (base_of_path): Remove static.
2427         (main_input_basename, main_input_baselength, matches_main_base,
2428         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2429         Remove.
2430         * toplev.c (main_input_basename, main_input_baselength): Define
2431         here.
2432         * toplev.h (main_input_basename, main_input_baselength): Declare
2433         here.
2434
2435 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2436
2437         * common.opt (flag_instrument_functions_exclude_functions,
2438         flag_instrument_functions_exclude_files): New Variable definitions.
2439         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2440         * gimplify.c (char_p): Declare type and vectors.
2441         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2442         * opts.c (flag_instrument_functions_exclude_functions,
2443         flag_instrument_functions_exclude_files): Remove.
2444         (add_comma_separated_to_vector): Take void **.
2445         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2446         (common_handle_option): Use options structure for
2447         -finstrument-functions-exclude- options.
2448
2449 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2450
2451         * doc/options.texi (Var): Document effects of Defer.
2452         (Defer): Document.
2453         * opt-functions.awk (var_type, var_set): Handle deferred options.
2454         * opts-common.c (set_option): Handle CLVC_DEFER.
2455         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2456         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2457         fstack-limit-symbol=): Mark as deferred.
2458         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2459         plugin.h.
2460         (print_filtered_help): Don't report state of CLVC_DEFER options.
2461         (common_handle_option): Move code for OPT_fcall_used_,
2462         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2463         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2464         OPT_fstack_limit_symbol_ to opts-global.c.
2465         (option_enabled, get_option_state): Handle CLVC_DEFER.
2466         * opts.h: Include vec.h.
2467         (enum cl_var_type): Add CLVC_DEFER.
2468         (cl_deferred_option): Define type and vectors.
2469         (handle_common_deferred_options): Declare.
2470         * opts-global.c: New.
2471         * toplev.c (toplev_main): Call handle_common_deferred_options
2472         * Makefile.in (OPTS_H): Include $(VEC_H).
2473         (OBJS-common): Include opts-global.o.
2474         (opts.o): Update dependencies.
2475         (opts-global.o): Add dependencies.
2476
2477 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2478
2479         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2480         to objc_declare_protocols.
2481
2482 2010-11-19  Richard Guenther  <rguenther@suse.de>
2483
2484         PR lto/45789
2485         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2486         IDENTIFIERs do not stream TREE_TYPE.
2487         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2488
2489 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2490
2491         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2492
2493 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2494
2495         PR target/45870
2496         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2497         non-delegitimized TLS UNSPECs.
2498
2499 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2500             Ian Lance Taylor  <iant@google.com>
2501
2502         * config/darwin-c.c (darwin_additional_format_types): Export.
2503
2504 2010-11-18  Paul Koning  <ni1d@arrl.net>
2505
2506         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2507         pointer.
2508
2509 2010-11-18  Paul Koning  <ni1d@arrl.net>
2510
2511         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2512         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2513         * config/pdp11/pdp11.opt (-mabshi): Delete.
2514
2515 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2516
2517         * resource.h (struct resources): Fix typo in the comment.
2518
2519 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2520
2521         PR target/46546
2522         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2523
2524 2010-11-18  Richard Henderson  <rth@redhat.com>
2525
2526         PR middle-end/46515
2527         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2528         maybe_copy_epilogue_insn; handle prologue insns as well.
2529         * rtl.h, cfglayout.c: Update for rename.
2530         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2531         RTX_FRAME_RELATED_P insns.
2532
2533 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2534
2535         PR middle-end/46534
2536         * builtins.c (fold_builtin_printf): Don't copy and modify string
2537         before build_string_literal, instead modify what
2538         build_string_literal returned.
2539
2540 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2541
2542         PR c/33193
2543         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2544         REALPART_EXPR and IMAGPART_EXPR.
2545
2546 2010-11-18  Richard Guenther  <rguenther@suse.de>
2547
2548         PR tree-optimization/46172
2549         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2550         function.
2551         (slpeel_tree_peel_loop_to_edge): Call it.
2552
2553 2010-11-18  Jeff Law  <law@redhat.com>
2554
2555         PR middle-end-optimization/46297
2556         * postreload.c (reload_combine_note_store): Deal with embedded
2557         side effects in MEM expressions.
2558
2559 2010-11-18  Richard Guenther  <rguenther@suse.de>
2560
2561         PR lto/45089
2562         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2563         when checking is not enabled.
2564
2565 2010-11-18  Richard Guenther  <rguenther@suse.de>
2566
2567         PR lto/46525
2568         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2569         type leaders.
2570         (gimple_register_canonical_type): Also cache the canoncial type
2571         for non type leaders.
2572
2573 2010-11-18  Richard Guenther  <rguenther@suse.de>
2574
2575         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2576
2577 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2578
2579         PR middle-end/46518
2580         * sel-sched-ir.c (init_expr): Use the correct type for
2581         target_available.
2582         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2583
2584 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2585
2586         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2587         as well as -mrelocatable at the same time.
2588
2589 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2590
2591         PR target/46422
2592         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2593         Call the clz builtin.
2594
2595 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2596             Steve Ellcey  <sje@cup.hp.com>
2597
2598         PR middle-end/31490
2599         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2600         if section attribute used.
2601
2602 2010-11-17  Jan Hubicka  <jh@suse.cz>
2603
2604         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2605         expand errno setting variant when optimizing for size.
2606
2607 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2608
2609         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2610         Reverse backward loop.  Fix formatting issues.
2611
2612 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2613
2614         * c-parser.c (c_token_is_qualifier,
2615         c_parser_next_token_is_qualifier): New.
2616         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2617         Improve error message on specs->tagdef_seen_p.
2618         (c_parser_struct_or_union_specifier): Improve error recovery.
2619         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2620         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2621         using c_parser_next_token_is_qualifier; extend it to cover
2622         a ctsk_tagdef typespec and !typespec_ok in general.
2623
2624 2010-11-17  Richard Guenther  <rguenther@suse.de>
2625
2626         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2627         (gimple_mod_pow2_value_transform): Likewise.
2628         (gimple_mod_subtract_transform): Likewise.
2629
2630 2010-11-17  Richard Guenther  <rguenther@suse.de>
2631
2632         PR lto/46504
2633         * gimple.c (gimple_register_canonical_type): Make sure to only
2634         make type leaders canonical types.
2635
2636 2010-11-17  Michael Matz  <matz@suse.de>
2637
2638         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2639         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2640         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2641         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2642         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2643         (pass_build_ssa): ... but here.
2644         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2645         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2646         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2647         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2648         * predict.c (rebuild_frequencies): Ditto.
2649         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2650         * emit-rtl.c (verify_rtl_sharing): Ditto.
2651         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2652         * tree-ssa-live.c (remove_unused_locals): Ditto.
2653         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2654         * tree-ssa.c (pass_early_warn_uninitialized,
2655         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2656         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2657         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2658         * passes.c (pass_postreload, execute_todo): Ditto.
2659         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2660
2661 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2662
2663         * doc/invoke.texi (-dy): Remove.
2664         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2665         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2666         * langhooks.c (lhd_do_nothing_i): Remove.
2667         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2668         * toplev.c (set_yydebug): Remove.
2669         (compile_file): Update call to lang_hooks.parse_file.
2670         (decode_d_option): Don't handle -dy.
2671
2672 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2673
2674         PR rtl-optimization/46440
2675         * combine.c (update_cfg_for_uncondjump): When changing
2676         an indirect jump into unconditional jump, remove BARRIERs
2677         from bb's footer.
2678
2679 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2680
2681         * opts.c (target_handle_option): Do not assert that loc ==
2682         UNKNOWN_LOCATION.
2683
2684 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2685             Richard Guenther  <rguenther@suse.de>
2686
2687         PR middle-end/45838
2688         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2689         call_may_clobber_ref_p_1): Return true for __sync_* and some
2690         OpenMP builtins that act as threading barriers.
2691
2692 2010-11-17  Richard Guenther  <rguenther@suse.de>
2693
2694         PR tree-optimization/46498
2695         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2696
2697 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2698
2699         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2700         (xtensa_function_arg_boundary): ...this.
2701         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2702         thinko in declaration.
2703         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2704         number of parameters to picochip_function_arg_boundary.
2705         (picochip_arg_advance): Likewise.
2706
2707 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2708
2709         PR target/46512
2710         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2711         under check for type.
2712
2713 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2714
2715         * ifcvt.c (dead_or_predicable): Fix typo.
2716
2717 2010-11-16  Richard Henderson  <rth@redhat.com>
2718
2719         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2720         * config/s390/s390.opt (mfused-madd): Remove.
2721         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2722         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2723         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2724         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2725
2726 2010-11-16  Richard Henderson  <rth@redhat.com>
2727
2728         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2729         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2730         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2731         (*altivec_vmaddfp_1): Remove.
2732         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2733         (altivec_mulv4sf3): Expand to FMA directly.
2734         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2735         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2736         * config/rs6000/paired.md (paired_madds0): Use FMA.
2737         (paired_madds1): Likewise.
2738         (*paired_madd): Rename from paired_madd; use FMA.
2739         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2740         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2741         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2742         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2743         (rs6000_emit_madd): Use fma_optab.
2744         (rs6000_emit_msub): Use fms_optab.
2745         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2746         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2747         (*fmasf4_fpr): Rename from fmasf4_fpr.
2748         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2749         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2750         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2751         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2752         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2753         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2754         (*fmadf4_fpr): Rename from fmadf4_fpr.
2755         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2756         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2757         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2758         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2759         (fmasf4, fmadf4): Macroize into...
2760         (fma<FMA_F>4): ... here.
2761         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2762         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2763         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2764         TARGET_FUSED_MADD.
2765         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2766         (*vsx_fmadd<mode>4_1): Remove.
2767         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2768         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2769         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2770         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2771         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2772         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2773         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2774
2775 2010-11-16  Richard Henderson  <rth@redhat.com>
2776
2777         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2778         (fmasf4, fnmadf4, fnmasf4): Likewise.
2779         (unnamed plus+mult insns and splitters): Delete.
2780
2781 2010-11-16  Richard Henderson  <rth@redhat.com>
2782
2783         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2784         (fnma<VSF>4): Rename from fnms_<VSF>.
2785         (fms<VSF>4): Rename from fms_<VSF>.
2786         (fma<VDF>4): Rename from fma_<VDF>.
2787         (fms<VDF>4): Rename from fms_<VDF>.
2788         (nfma<VDF>4): Rename from fnma_<VDF>.
2789         (nfms<VDF>4): Rename from fnms_<VDF>.
2790         (fnma<VDF>4, fnms<VDF>4): New expanders.
2791         (floatunsdisf2): Update for the renames.
2792         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2793         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2794
2795 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2796
2797         PR rtl-optimization/46490
2798         * combine.c (expand_compound_operation): Fix thinko.
2799
2800 2010-11-16  Richard Henderson  <rth@redhat.com>
2801
2802         PR target/46470
2803         * recog.c (peep2_attempt): Convert frame-related info when possible.
2804         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2805         (peephole2_optimize): Allow peep2_attempt to fail.
2806
2807 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2808
2809         PR rtl-optimization/46315
2810         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2811         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2812         extracted from...
2813         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2814         (remove_reg_equal_equiv_notes_for_defs): ...this.
2815         (delete_unmarked_insns): Adjust to above renaming.
2816         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2817         referring to registers set in the insns being moved, if any.
2818
2819         * df-core.c (df_ref_dump): New function extracted from...
2820         (df_refs_chain_dump): ...here.  Call it.
2821         (df_regs_chain_dump): Likewise.
2822         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2823         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2824
2825 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2826
2827         PR rtl-optimization/46395
2828         * postreload.c (reload_combine): Invalidate register use
2829         information on all control flow insns.
2830
2831         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2832         LABEL_REF in UNSPEC operand.
2833
2834 2010-11-16  Jan Hubicka  <jh@suse.cz>
2835
2836         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2837         when !flag_toplevel_reorder do not remove unless variable is
2838         COMDAT or ARTIFICIAL.
2839         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2840         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2841         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2842         * varpool.c (decide_is_variable_needed): Do not handle visibility
2843         issues.
2844         (varpool_finalize_decl): Likewise.
2845         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2846         update outdated comment on DECL_RTL_SET_P check.
2847
2848 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2849
2850         * config/sol2.h (NM_FLAGS): Define.
2851         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2852         * doc/tm.texi: Update.
2853
2854 2010-11-16  Nick Clifton  <nickc@redhat.com>
2855
2856         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2857         (msubsf4): Rename to fmssf4, and use fma.
2858         (nmaddsf4): Rename to fnmasf4 and use fma.
2859         (nmsubsf4): Rename to fnmssf4 and use fma.
2860
2861 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2862
2863         PR target/44762
2864         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2865         (score3_in_small_data_p, score3_function_value): Likewise.
2866         (score3_trampoline_init): Use LCT_NORMAL.
2867         (score3_print_operand): Initialize code as UNKNOWN.
2868         * config/score/predicates.md (score_load_multiple_operation):
2869         Remove unused variable.
2870         (score_store_multiple_operation): Likewise.
2871         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2872         (score7_in_small_data_p, score7_function_value): Likewise.
2873         (score7_trampoline_init): Use LCT_NORMAL.
2874         (score7_print_operand): Initialize code as UNKNOWN.
2875         * config/score/score3.h (score3_return_in_memory): Update prototype.
2876         (score3_in_small_data_p, score3_function_value): Likewise.
2877         * config/score/score-protos.h (score_function_value): Likewise.
2878         * config/score/score7.h (score7_return_in_memory): Update prototype.
2879         (score7_in_small_data_p, score7_function_value): Likewise.
2880         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2881         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2882         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2883         (score_function_epilogue, score_in_small_data_p): Likewise.
2884         (score_option_override, score_asm_trampoline_template): Likewise.
2885         (score_trampoline_init, score_print_operand): Likewise.
2886         (score_print_operand_address, score_prologue): Likewise.
2887         (score_epilogue, score_call, score_call_value): Likewise.
2888         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2889         (score_function_arg_advance): Likewise. Make static.
2890         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2891         (score_function_arg, score_legitimate_address_p): Make static.
2892         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2893         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2894         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2895         Allow (W) == HOST_BITS_PER_WIDE_INT.
2896
2897         PR java/46386
2898         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2899         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2900
2901 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2902
2903         * config/arc/arc.c: Delete pasto.
2904         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2905
2906 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2907
2908         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2909         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2910         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2911         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2912         (mn10300_preferred_reload_class,
2913         mn10300_preferred_output_reload_class): New functions.
2914
2915 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2916
2917         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2918         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2919         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2920         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2921
2922 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2923
2924         * builtins.c (std_gimplify_va_arg_expr): Use
2925         targetm.calls.function_arg_boundary.
2926         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2927         * calls.c (struct arg_data): Update comment.
2928         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2929         * target.def (function_arg_boundary): Define.
2930         * targhooks.h (default_function_arg_boundary): Declare.
2931         * targhooks.c (default_function_arg_boundary): Define.
2932         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2933         TARGET_FUNCTION_ARG_BOUNDARY.
2934         (FUNCTION_ARG_BOUNDARY): Delete.
2935         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2936         * doc/tm.texi: Regenerate.
2937         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2938         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2939         * config/arc/arc.c (arc_function_arg_boundary): Define.
2940         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2941         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2942         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2943         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2944         (arm_function_arg_boundary): Define.
2945         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2946         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2947         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2948         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2949         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2950         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2951         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2952         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2953         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2954         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2955         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2956         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2957         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2958         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2959         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2960         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2961         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2962         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2963         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2964         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2965         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2966         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2967         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2968         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2969         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2970         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2971         * config/pa/pa.c (pa_function_arg_boundary): Define.
2972         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2973         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2974         * config/picochip/picochip-protos.h
2975         (picochip_get_function_arg_boundary): Delete.
2976         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2977         Rename to...
2978         (picochip_function_arg_boundary): ...this.  Make static.
2979         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2980         (picochip_arg_advance): Adjust.
2981         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2982         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2983         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2984         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2985         (rs6000_function_arg_boundary): ...this.  Make static.
2986         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2987         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2988         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2989         * config/rx/rx.c (rx_function_arg_boundary): Define.
2990         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2991         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2992         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2993         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2994         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2995         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2996         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2997         (xtensa_function_arg_boundary): ...this.  Make static.
2998         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2999
3000 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3001
3002         * expr.c (alignment_for_piecewise_move): New function.
3003         (widest_int_mode_for_size): New function.
3004         (move_by_pieces, move_by_pieces_ninsns): Call them.
3005         (can_store_by_pieces, store_by_pieces_1): Likewise.
3006
3007 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3008
3009         * gcc.c (char_p): Define.  Define a VEC of it.
3010         (n_linker_options, n_assembler_options, n_preprocessor_options):
3011         Delete.
3012         (linker_options, assembler_options, preprocessor_options): Convert
3013         to a VEC.
3014         (add_preprocessor_option): Adjust.
3015         (add_assembler_option): Adjust.
3016         (add_linker_option): Adjust.
3017         (do_specs_vec): New function.
3018         (do_spec_1): Call it.  Adjust for new types.
3019
3020 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3021
3022         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
3023         (sreal.o, statistics.o, stringpool.o): Likewise.
3024
3025 2010-11-16  Richard Guenther  <rguenther@suse.de>
3026
3027         PR tree-optimization/44545
3028         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
3029         statements are not reassociatable.
3030         (reassociate_bb): Likewise.
3031
3032 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3033
3034         * bitmap.c: Delete unnecessary includes.
3035         * ebitmap.c: Likewise.
3036         * et-forest.c: Likewise.
3037         * sreal.c: Likewise.
3038         * statistics.c: Likewise.
3039         * stringpool.c: Likewise.
3040         * double-int.c: Add comment for inclusion of tm.h.
3041
3042 2010-11-16  Richard Guenther  <rguenther@suse.de>
3043
3044         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
3045         (visit_nary_op): ... this.
3046         (visit_binary_op): Remove.
3047         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
3048
3049 2010-11-16  Richard Guenther  <rguenther@suse.de>
3050
3051         PR middle-end/45172
3052         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
3053
3054 2010-11-16  Nick Clifton  <nickc@redhat.com>
3055
3056         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
3057         record is packed.
3058
3059 2010-11-15  Richard Henderson  <rth@redhat.com>
3060
3061         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
3062         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
3063         DOT_PROD_EXPR.
3064
3065 2010-11-15  Richard Henderson  <rth@redhat.com>
3066
3067         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
3068         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
3069         fma rtx_code.
3070
3071 2010-11-15  Richard Henderson  <rth@redhat.com>
3072
3073         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
3074         and *mulsubsf4 respectively.  Use fma rtx_code.
3075
3076 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
3077
3078         * gcc.c: Include "vec.h".
3079         (argbuf): Make into a VEC.
3080         (argbuf_length, argbuf_index): Remove.
3081         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
3082         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
3083         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
3084         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
3085         (gcc.o): Depend on $(VEC_H).
3086
3087 2010-11-15  Richard Henderson  <rth@redhat.com>
3088
3089         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
3090         via FMA if unsafe math.
3091         (insert_var_expansion_initialization): Handle FMA.
3092         (combine_var_copies_in_loop_exit): Likewise.
3093
3094 2010-11-15  Richard Henderson  <rth@redhat.com>
3095
3096         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
3097         * config/ia64/ia64.opt: Remove mfused-madd.
3098         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
3099         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
3100         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
3101         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
3102         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
3103         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
3104         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
3105         (fmav2sf4): Rename from fpma; use FMA code.
3106         (fmsv2sf4): Rename from fpms; use FMA code.
3107         (fnmav2sf4): Rename from *fpnma; use FMA code.
3108         * config/ia64/ia64.md (MODE_SDF): New iterator.
3109         (suffix): New mode attribute.
3110         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
3111         (fmssf4): Rename from *fmssf4.
3112         (fnmasf4): Rename from *nfmasf4.
3113         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
3114         (*nmadddf4, *nmadddf4_truncsf): Remove.
3115         (fmsdf4): Rename from *fmsdf4.
3116         (fnmadf4): Rename from *nfmadf4.
3117         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
3118         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
3119         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
3120         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
3121         (fmsxf4): Rename from *fmsxf4.
3122         (fnmaxf4): Rename from *nfmaxf4.
3123         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
3124         (*fnmaxf_trunc_<MODE_SDF>): New.
3125
3126 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3127
3128         PR tree-optimization/46461
3129         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
3130         a gimple val.
3131
3132 2010-11-15  Ian Lance Taylor  <iant@google.com>
3133
3134         * godump.c: New file.
3135         * common.opt (fdump-go-spec=): New option.
3136         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
3137         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
3138         (TYPE_SYMTAB_IS_DIE): Define.
3139         (struct tree_type): Change GTY for symtab field to use
3140         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
3141         to pick the union field.
3142         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
3143         (dump_go_spec_init): Declare.
3144         * toplev.c (process_options): Handle flag_dump_go_spec.
3145         * debug.c: Include "tree.h".
3146         (do_nothing_debug_hooks): Set tree_type_symtab_field.
3147         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3148         * dbxout.c (dbx_debug_hooks): Likewise.
3149         (xcoff_debug_hooks): Likewise.
3150         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3151         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
3152         SDB_DEBUGGING_INFO is not defined.
3153         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
3154         (Overall Options): Document -fdump-go-spec.
3155         * Makefile.in (OBJS-common): Add godump.o.
3156         (debug.o): Add dependency on $(TREE_H).
3157         (godump.o): New target.
3158         (GTFILES): Add $(srcdir)/godump.c.
3159
3160 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3161
3162         PR debug/46095
3163         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
3164         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
3165         style < 0, add REG_FRAME_RELATED_EXPR.
3166
3167         PR debug/46387
3168         * rtl.h (vt_equate_reg_base_value): New prototype.
3169         * alias.c (vt_equate_reg_base_value): New function.
3170         * var-tracking.c (vt_init_cfa_base): Use it.
3171
3172 2010-11-15  Jan Hubicka  <jh@suse.cz>
3173             Diego Novillo  <dnovillo@google.com>
3174
3175         PR lto/41528
3176         * doc/lto.texi: Add.
3177         * doc/gccint.texi: Add reference to lto.texi.
3178         * doc/invoke.texi: Update user documentation for LTO.
3179         Move internal flags to lto.texi
3180
3181 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3182
3183         * c-typeck.c (build_unary_op): Use
3184         objc_build_incr_expr_for_property_ref to build the pre/post
3185         increment/decrement of an Objective-C property ref, and skip the
3186         lvalue_or_else check in that case.
3187
3188 2010-11-15  Martin Jambor  <mjambor@suse.cz>
3189
3190         PR tree-optimization/46349
3191         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
3192         (contains_vce_or_bfcref_p): Likewise.
3193         (sra_modify_assign): Use them.
3194
3195 2010-11-15  Richard Guenther  <rguenther@suse.de>
3196
3197         PR tree-optimization/46467
3198         * tree-ssa-structalias.c (do_structure_copy): Properly treat
3199         variables without subvars.
3200
3201 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
3202
3203         * config/picochip/picochip.c (file header): Picochip name change.
3204         * config/picochip/picochip.md (file header): Likewise.
3205         * config/picochip/predicates.md (file header): Likewise.
3206         * config/picochip/dfa_space.md (file header): Likewise.
3207         * config/picochip/dfa_speed.md (file header): Likewise.
3208         * config/picochip/picochip.h(file header): Likewise.
3209         * config/picochip/constraints.md (file header): Likewise.
3210         * config/picochip/picochip-protos.h (file header): Likewise.
3211         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
3212         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
3213         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
3214         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
3215         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
3216         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
3217         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
3218         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
3219         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
3220         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
3221         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
3222         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
3223         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
3224         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
3225
3226 2010-11-15  Richard Guenther  <rguenther@suse.de>
3227
3228         PR bootstrap/46474
3229         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
3230
3231 2010-11-15  Nick Clifton  <nickc@redhat.com>
3232
3233         * config/stormy16/stormy16.c (direct_return): Do not generate a
3234         direct return for interrupt handlers.
3235
3236 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
3237
3238         * Makefile.in (tm.texi): Replace with rule for:
3239         ($(srcdir)/doc/tm.texi).
3240         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
3241         $(srcdir)/doc/tm.texi .
3242         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
3243         tm.texi .
3244
3245         PR target/46427
3246         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
3247
3248         PR bootstrap/45444
3249         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
3250         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
3251
3252         PR target/46432
3253         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3254
3255 2010-11-15  Richard Guenther  <rguenther@suse.de>
3256
3257         PR lto/44150
3258         * lto-opts.c (lto_write_options): Write -fexceptions even if
3259         not set by the user.
3260
3261 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3262
3263         PR c/46462
3264         * c-decl.c (declspecs_add_type): Make variables with error types
3265         integers.
3266         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
3267         do not start a declaration before an Objective-C foreach.
3268         (c_parser_declaration_or_fndef): Improve recovery after unknown
3269         type name.
3270         (c_parser_for_statement): Hoist entrance of "foreach context"
3271         before ifs, add corresponding reset where it was missing.  Do
3272         not set objc_could_be_foreach_context for C.
3273
3274 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3275
3276         PR tree-optimization/45722
3277         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
3278         this is a reference to a component.
3279         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
3280         (ipa_note_param_call): Adjust comment.
3281
3282 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
3283
3284         * config/mips/mips.c (machine_function): Remove
3285         initialized_mips16_gp_pseudo_p.
3286         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
3287         detect whether a pseudo has already been created.  Unconditionally
3288         create a new one if not.
3289         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
3290         expanding to rtl.  Create a new pseudo otherwise, if allowed.
3291
3292 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3293
3294         PR target/43440
3295         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3296         * tm.texi: Regenerated.
3297         * output.h (decode_reg_name_and_count): Declare.
3298         * varasm.c (decode_reg_name_and_count): New function.
3299         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3300         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3301         iterate over all regs used.
3302         * stmt.c (expand_asm_operands): Likewise.
3303         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3304         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3305         multiple machine registers.
3306
3307 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3308
3309         * stor-layout.c (place_union_field): Do not put location information
3310         on offset expressions.
3311         (place_field): Likewise.
3312         (finalize_record_size): Likewise on size expressions.
3313         (finalize_type_size): Likewise.
3314         (layout_type): Likewise.
3315
3316 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3317
3318         PR debug/42889
3319         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3320         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3321         * df.h (df_set_bb_dirty_nonlr): Likewise.
3322
3323 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3324
3325         * config/mips/mips.md (call_internal): Pass curr_insn to
3326         mips_split_call.
3327         (call_internal_direct): Ditto.
3328         (call_value_internal): Ditto.
3329         (call_value_internal_direct): Ditto.
3330         (call_value_multiple_internal): Ditto.
3331         * config/mips/mips.c (mips_split_call): Do not copy
3332         CALL_INSN_FUNCTION_USAGE here.
3333
3334 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3335
3336         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3337         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3338         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3339         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3340         (TUNE_LOONGSON_3A): Define.
3341         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3342         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3343         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3344         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3345         (mips_rtx_cost_data): Add Loongson-3A.
3346
3347 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3348
3349         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3350         switches.
3351
3352 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3353
3354         * dwarf2out.c (macinfo_entry): New struct.
3355         (output_comp_unit): Emit the section start label here and flag that we
3356         will emit an info section.
3357         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3358         emitting directly.
3359         (dwarf2out_end_source_file): Likewise.
3360         (dwarf2out_define): Likewise.
3361         (dwarf2out_undef): Likewise.
3362         (output_macinfo): New.
3363         (dwarf2out_init): Do not emit debug section switches here, allocate a
3364         vec for macinfo, when required.
3365         (dwarf2out_finish): First switch to debug_abbrev_section here.
3366         debug_line_section,  debug_macinfo_section, Likewise.
3367         Check that the pubtypes table has at least one unpruned entry before
3368         trying to emit it.
3369
3370 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3371
3372         PR c/20385
3373         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3374         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3375         token lookahead.
3376         (c_parser_compound_statement_nostart, c_parser_label,
3377         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3378         (c_parser_declaration_or_fndef): Detect the case now matched by
3379         c_parser_next_tokens_start_declaration, give error and correct it.
3380
3381 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3382
3383         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3384         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3385         with typespec_kind.
3386         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3387         (shadow_tag_warned, check_compound_literal_type): Adjust
3388         uses of tag_defined_p.
3389         (declspecs_add_type): Set typespec_kind.
3390         * c-parser.c (c_parser_declaration_or_fndef,
3391         c_parser_declspecs, c_parser_struct_declaration,
3392         c_parser_parameter_declaration, c_parser_type_name,
3393         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3394         of type_seen_p.
3395         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3396         tag_defined_p, pass ctsk_firstref through.
3397
3398 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3399
3400         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3401         (struct format_wanted_type): Replace field "name" with "kind", add
3402         "format_start" and "format_length".
3403         (check_format_info_main): Fill in new fields.  Fill in
3404         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3405         after the final NUL outside the while loop.  Do not include
3406         width and precision modifiers in the format_start/format_length
3407         of the main format.
3408         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3409         arguments.  Compute WANTED_TYPE first so that format_type_warning
3410         can be called for missing arguments.  Adjust calls to
3411         format_type_warning.
3412         (format_type_warning): Fetch as much information as possible
3413         from format_wanted_type.  Adjust printing now that every
3414         warning has a "descr", as well as for missing argument warnings
3415         and to include % sign for format specifiers.
3416
3417 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3418
3419         PR rtl-optimization/46204
3420         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3421         Update all callers.  Do not recompute topological order.  Adjust
3422         fallthrough edges following a degenerate conditional jump.
3423
3424 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3425
3426         * opts-common.c (control_warning_option): New.
3427         * opts.c (set_default_handlers): New.
3428         (decode_options): Use set_default_handlers and
3429         control_warning_option.
3430         (common_handle_option): Update call to enable_warning_as_error.
3431         (enable_warning_as_error): Take gcc_options parameters.  Use
3432         control_warning_option.
3433         * opts.h (set_default_handlers, control_warning_option): Declare.
3434
3435 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3436
3437         * Makefile.in (OPTS_H): Define.
3438         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3439         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3440         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3441         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3442         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3443         * gcc.c (driver_handle_option): Take location_t parameter.
3444         (process_command, do_self_spec): Update calls to
3445         read_cmdline_option.
3446         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3447         * langhooks.c (lhd_handle_option): Take location_t parameter.
3448         * langhooks.h (handle_option): Take location_t parameter.
3449         * lto-opts.c (lto_reissue_options): Update call to set_option.
3450         * opts-common.c (handle_option): Make static.  Take location_t
3451         parameter and pass it to other functions.
3452         (handle_generated_option): Take location_t parameter and pass it
3453         to other functions.
3454         (read_cmdline_option): Take location_t parameter and pass it to
3455         other functions.  Use warning_at and error_at.
3456         (set_option): Take location_t parameter and pass it to other
3457         functions.
3458         * opts.c (common_handle_option): Take location_t parameter and
3459         pass it to other functions.
3460         (enable_warning_as_error): Make static.  Take location_t parameter
3461         and pass it to other functions.
3462         (lang_handle_option): Take location_t parameter and pass it to
3463         other functions.
3464         (target_handle_option): Take location_t parameter.
3465         (read_cmdline_options, maybe_default_option,
3466         maybe_default_options, default_options_optimization,
3467         decode_options): Take location_t parameter and pass it to other
3468         functions.
3469         * opts.h: Include input.h.
3470         (struct cl_option_handler_func, decode_options, set_option,
3471         handle_generated_option, read_cmdline_option): Take location_t
3472         parameters.
3473         (handle_option, enable_warning_as_error): Remove.
3474         * toplev.c (toplev_main): Update call to decode_options.
3475
3476 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3477
3478         * graphite-cloog-util.c (oppose_constraint,
3479         cloog_matrix_to_ppl_constraint,
3480         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3481         CLooG isl uses unsigned integers.  This triggered a warning.
3482
3483 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3484
3485         PR target/46438
3486         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3487         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3488         (xtensa_function_arg_1): De-constify cum.
3489         (xtensa_expand_prologue): Use add_reg_note.
3490
3491         PR target/46435
3492         * config/cris/cris.c (saved_regs_mentioned): Delete.
3493         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3494         Remove unused variable op0p.
3495         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3496         (cris_emit_movem_store): Use add_reg_note.
3497
3498         PR bootstrap/46456
3499         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3500
3501 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3502
3503         * function.c (expand_function_end): Set the locator of the prologue on
3504         the stack checking insns.
3505
3506 2010-11-12  Richard Henderson  <rth@redhat.com>
3507
3508         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3509         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3510         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3511         MASK_FUSED_MADD.
3512         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3513         (fnmasf4): Rename from mulsubsf3; use fma.
3514
3515 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3516             Richard Henderson  <rth@redhat.com>
3517
3518         PR target/46428
3519         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3520         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3521         comparison.
3522
3523 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3524
3525         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3526
3527 2010-11-12  Jan Hubicka  <jh@suse.cz>
3528
3529         * doc/invoke.texi (early-inlining-insns): Update default.
3530         * params.def (early-inlining-insns): Default to 10.
3531
3532 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3533
3534         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3535
3536 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3537
3538         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3539         (SUPPORTS_INIT_PRIORITY): Define.
3540
3541 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3542
3543         PR target/46430
3544         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3545         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3546         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3547         (avr_device_to_devicelib): Likewise.
3548         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3549         into block.
3550         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3551         (zero_extendhidi2, zero_extendsidi2): Likewise.
3552         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3553         (avr_return_addr_rtx): De-constify tem.
3554         (avr_rotate_bytes): Move declarations to start of block.
3555         Don't use variable length array.  Put nested if/else into block.
3556
3557         PR rtl-optimization/46433
3558         * var-tracking.c: Include tm_p.h .
3559
3560         PR bootstrap/44756
3561         PR build/44767
3562         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3563         should be unsigned.
3564         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3565         * doc/tm.texi: Regenerate.
3566
3567         PR target/46412
3568         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3569         * config/bfin/bfin.c: Include sel-sched.h .
3570         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3571         (expand_interrupt_handler_prologue): Remove unused variable insn.
3572         (bfin_load_pic_reg): Likewise.
3573         (bfin_rtx_costs): Make code / outer_code variables of type
3574         enum rtx_code, copied from re-named parameters.
3575         (bfin_local_alignment): Change align argument and return type
3576         to unsigned.
3577         (bfin_adjust_cost): Remove unused variable insn_type.
3578         Declare variables at start of block.
3579         (struct loop_info): Rename to...
3580         (struct loop_info_d).
3581         (workaround_rts_anomaly): Change type of icode to int.
3582         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3583         with int-typed variable.
3584         (note_np_check_stores): Likewise.
3585         (trapping_loads_p): Remove unused variable pat.
3586         (bfin_expand_binop_builtin): Use expand_normal.
3587         (bfin_expand_unop_builtin): Likewise.
3588         (bfin_expand_builtin): Likewise.  Set tmode before use.
3589
3590         PR middle-end/44769
3591         * final.c (split_double): Don't use BITS_PER_WORD directly in
3592         shift count.
3593
3594         PR target/46431
3595         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3596         assignment.
3597
3598         PR target/46450
3599         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3600         Use add_reg_note.
3601         (xstormy16_function_arg): Dereference cum.
3602         (xstormy16_expand_builtin): Use expand_normal.
3603         Change type of omode to enum machine_mode.
3604         (combine_bnp): Rename and to and_insn.
3605
3606         PR target/46437
3607         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3608         localreg.
3609
3610 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3611
3612         PR debug/46375
3613         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3614
3615 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3616
3617         PR lto/46376
3618         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3619
3620 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3621
3622         PR c/44782
3623         * common.opt (fmax-errors=): New option.
3624         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3625         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3626         * diagnostic.c (diagnostic_initialize): Initialize it.
3627         (diagnostic_action_after_output): Exit if more than max_errors
3628         have been output.
3629         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3630         (-fmax-errors): Document.
3631
3632 2010-11-11  Richard Henderson  <rth@redhat.com>
3633
3634         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3635
3636 2010-11-11  Richard Henderson  <rth@redhat.com>
3637
3638         * config/fused-madd.opt: New file.
3639         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3640         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3641         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3642         * config/i386/i386.opt (mfused-madd): Remove.
3643         * config/i386/sse.md (split_fma): Remove.
3644         (split_fms, split_fnma, split_fnms): Remove.
3645
3646 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3647
3648         PR target/46088
3649         * config/i386/i386.md (*ashl<mode>3_cconly,
3650         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3651         change nonimmediate_operand predicate to register_operand.
3652
3653 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3654
3655         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3656
3657 2010-11-11  Jan Hubicka  <jh@suse.cz>
3658
3659         * opts.c (finish_options): Do not error on -flto-partition alone.
3660
3661         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3662         (-flto-partition): Document none.
3663         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3664         * lto-wrapper.c: Update comment.
3665         (run_gcc): Update LTO option parsing.
3666         * opts.c (finish_options): add support -flto-partition=none
3667         (common_handle_option): Remove fwhopr.
3668         * common.opt: Turn fwhopr into flto.
3669         * collect2.c (main): Update option handling.
3670         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3671         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3672         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3673         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3674         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3675
3676 2010-11-11  Jan Hubicka  <jh@suse.cz>
3677
3678         PR tree-optimize/40436
3679         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3680         (eliminated_by_inlining_prob): ... this one; return 50% probability
3681         for SRA.
3682         (estimate_function_body_sizes): Update use of
3683         eliminated_by_inlining_prob; estimate static function size
3684         for 2 instructions.
3685
3686 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3687
3688         PR target/44749
3689         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3690         declare.  Change type of argument four to type int.
3691         (mep_secondary_input_reload_class): Returns enum reg_class.
3692         (mep_secondary_output_reload_class): Likewise.
3693         (mep_function_value): Change types of arguments to cont_tree.
3694         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3695         argument four to type int.
3696         (mep_secondary_input_reload_class): Returns enum reg_class.
3697         (mep_secondary_output_reload_class): Likewise.
3698         (mep_function_value): Change types of arguments to cont_tree.
3699         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3700         mep_regno_reg_class to enum reg_class.
3701
3702 2010-11-11  Richard Henderson  <rth@redhat.com>
3703
3704         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3705         that the target has the exact fma operation that we matched.
3706
3707 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3708
3709         * reginfo.c (fix_register): Avoid inserting English word in
3710         diagnostic sentence.  Use %qs for quoting and %'.
3711
3712 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3713
3714         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3715         Intel processor family 6, model 0x2c.
3716
3717 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3718
3719         * opts.c (warning_as_error_callback,
3720         register_warning_as_error_callback): Remove.
3721         (enable_warning_as_error): Don't use warning_as_error_callback.
3722         * opts.h (register_warning_as_error_callback): Remove.
3723
3724 2010-11-11  Richard Henderson  <rth@redhat.com>
3725
3726         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3727         in between the MULT and the PLUS/MINUS.
3728
3729 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3730
3731         PR middle-end/46388
3732         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3733         BLKmode mode for it.
3734         (expand_expr_real_1): Similarly for op0.
3735
3736 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3737
3738         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3739         Document optional target selector.
3740
3741 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3742
3743         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3744         assembling high and low parts of size if not using 32-bit HWINT; else
3745         use DECL_SIZE_UNITS, not DECL_SIZE.
3746
3747 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3748
3749         PR tree-optimization/46383
3750         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3751         offsets.
3752         (compute_complex_ancestor_jump_func): Likewise.
3753         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3754
3755 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3756
3757         PR debug/46150
3758         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3759         true if expr1->hash != expr2->hash.
3760
3761 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3762
3763         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3764         diagnostics with lowercase letters.
3765         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3766         lowercase letters.
3767         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3768         diagnostic.
3769         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3770         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3771         lowercase letters.
3772         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3773         Remove trailing ' ' from diagnostic.
3774         * config/avr/avr.c (print_operand_address): Start diagnostic with
3775         a lowercase letter and remove trailing '.'.
3776         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3777         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3778         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3779         '.' from diagnostics.
3780         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3781         * config/cris/cris.c (cris_split_movdx,
3782         cris_expand_pic_call_address): Start diagnostics with lowercase
3783         letters.
3784         (cris_asm_output_label_ref): Use %' in diagnostic.
3785         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3786         letter.
3787         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3788         lowercase letter.
3789         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3790         lowercase letter.
3791         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3792         diagnostic.
3793         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3794         diagnostic.
3795         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3796         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3797         diagnostics.
3798         * config/i386/i386.c (ix86_option_override_internal): Write
3799         diagnostic as a single sentence without trailing '.'.  Use %' in
3800         diagnostics.
3801         (ix86_function_sseregparm, classify_argument): Start diagnostics
3802         with lowercase letters.
3803         (ix86_expand_prologue): Use %' in diagnostic.
3804         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3805         diagnostic.
3806         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3807         lowercase letter.
3808         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3809         diagnostic.
3810         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3811         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3812         '`' in help text.
3813         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3814         lowercase letter.
3815         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3816         lowercase letters.
3817         * config/microblaze/microblaze.c (microblaze_handle_option):
3818         Remove trailing '.' from diagnostic.
3819         (print_operand): Start diagnostic with a lowercase letter.
3820         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3821         lowercase letters.  Avoid '`' in diagnostics.
3822         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3823         lowercase letters.  Avoid '`' in diagnostics.
3824         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3825         lowercase letters.  Avoid '`' in diagnostics.
3826         * config/picochip/picochip.c (picochip_option_override,
3827         picochip_emit_save_register, picochip_function_arg,
3828         picochip_output_label, picochip_output_internal_label,
3829         picochip_asm_output_opcode, picochip_output_cbranch,
3830         picochip_output_compare, picochip_output_branch,
3831         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3832         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3833         diagnostics.
3834         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3835         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3836         (rs6000_handle_option): Start diagnostics with lowercase letters.
3837         (def_builtin): Remove trailing '.' from diagnostic.
3838         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3839         letter.
3840         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3841         diagnostic.
3842         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3843         lowercase letter.
3844         * config/s390/s390.c (s390_option_override) Start diagnostics with
3845         lowercase letters.  Use %' in diagnostic.
3846         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3847         lowercase letters.
3848         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3849         diagnostic.
3850         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3851         diagnostic.
3852         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3853         diagnostic.
3854         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3855         * config/spu/spu.c (spu_option_override): Start diagnostics with
3856         lowercase letters.  Use %qs for quoting in diagnostics.
3857         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3858         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3859         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3860         from diagnostic.
3861         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3862         diagnostics.
3863         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3864         letter and use "cannot" spelling.
3865         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3866         lowercase letter and format as a single sentence without '.'.
3867         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3868         Use %' in diagnostics.
3869         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3870         Use %' in diagnostics.
3871         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3872         Use %' in diagnostics.
3873         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3874         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3875         with lowercase letters and remove tailing '.' and '\n'.
3876         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3877         lowercase letter and remove trailing '.'.
3878         (input_cgraph): Start diagnostics with lowercase letters and
3879         remove trailing '\n'.
3880         * opts.c (finish_options, common_handle_option): Start diagnostics
3881         with lowercase letters and remove trailing '.'.  Fix typo in
3882         diagnostic.
3883         * passes.c (position_pass): Start diagnostic with lowercase letter.
3884         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3885         register_callback, try_init_one_plugin): Start diagnostics with
3886         lowercase letters.
3887         * reload1.c (spill_failure): Use %' in diagnostic.
3888         (gen_reload): Start diagnostic with a lowercase letter.
3889         * stor-layout.c (place_field): Start diagnostic with a lowercase
3890         letter.
3891         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3892         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3893         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3894         Start diagnostics with lowercase letters, remove trailing '.' and
3895         use %' in diagnostics.
3896         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3897         (verify_ssa): Don't split diagnostic across two error calls.
3898         Spell out "number" and use %' in diagnostic.
3899         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3900         lowercase letters.
3901
3902 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3903
3904         PR middle-end/46419
3905         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3906         (_mm_cvtpu16_ps): Ditto.
3907
3908 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3909
3910         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3911         warn_larger_than, larger_than_size, warn_frame_larger_than,
3912         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3913         default_visibility, flag_tls_default): New Variable declarations.
3914         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3915         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3916         (v): Declare as Common and document here.
3917         * flags.h (default_visibility, flag_generate_lto,
3918         warn_larger_than, larger_than_size, warn_frame_larger_than,
3919         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3920         flag_shlib, flag_excess_precision_cmdline): Remove.
3921         (set_Wstrict_aliasing): Update prototype.
3922         * gcc.c (verbose_flag): Remove.
3923         (driver_handle_option): Add diagnostic_context parameter.  Don't
3924         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3925         incrementing it.
3926         * opts-common.c (handle_option): Pass dc to handler.
3927         * opts.c (warn_larger_than, larger_than_size,
3928         warn_frame_larger_than, frame_larger_than_size,
3929         default_visibility): Remove.
3930         (common_handle_option): Add diagnostic_context parameter.
3931         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3932         gcc_options parameters.
3933         (lang_handle_option, target_handle_option, read_cmdline_options,
3934         decode_options): Add diagnostic_context parameters.
3935         (finish_options): Access option state through opts pointer where
3936         possible.
3937         (common_handle_option): Access option state through opts pointer
3938         where possible.  Do not set local static variable verbose.  Do not
3939         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3940         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3941         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3942         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3943         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3944         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3945         (set_Wstrict_aliasing): Add gcc_options parameter.
3946         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3947         parameter to handler.
3948         (decode_options): Add diagnostic_context parameter.
3949         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3950         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3951         aux_info_file_name, flag_shlib, flag_tls_default,
3952         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3953         (toplev_main): Pass global_dc to decode_options.
3954         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3955         aux_info_file_name, asm_file_name): Remove.
3956         * tree.h (flag_tls_default): Remove.
3957
3958 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3959
3960         PR target/45986
3961         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3962         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3963
3964 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3965
3966         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3967         (x86_64-*-*): Likewise.
3968         * config/i386/cpuid.h: Define TBM bit.
3969         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3970         and set has_tbm.
3971         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3972         isa_flag for TBM.
3973         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3974         (OPTION_MASK_ISA_TBM_UNSET): New.
3975         (ix86_handle_option): Handle -mtbm.
3976         (isa_opts): Add -mtbm.
3977         (enum pta_flags): Add PTA_TBM.
3978         (ix86_option_override_internal): Add TBM support.
3979         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3980         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3981         (IX86_BUILTIN_BEXTRI64): Likewise.
3982         (bdesc_args): Add TBM intrinsics.
3983         (ix86_expand_builtin): Add TBM specific case.
3984         * config/i386/i386.h (TARGET_TBM): New for TBM.
3985         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3986         (tbm_bextri_<mode>): Likewise.
3987         (*tbm_blcfill_<mode>): Likewise.
3988         (*tbm_blci_<mode>): Likewise.
3989         (*tbm_blcic_<mode>): Likewise.
3990         (*tbm_blcmsk_<mode>): Likewise.
3991         (*tbm_blcs_<mode>): Likewise.
3992         (*tbm_blsfill_<mode>): Likewise.
3993         (*tbm_blsic_<mode>): Likewise.
3994         (*tbm_t1mskc_<mode>): Likewise.
3995         (*tbm_tzmsk_<mode>): Likewise.
3996         * config/i386/i386.opt: Add -mtbm.
3997         * config/i386/tbmintrin.h (__bextri_u32): New.
3998         (__blcfill_u32): Likewise.
3999         (__blci_u32): Likewise.
4000         (__blcic_u32): Likewise.
4001         (__blcmsk_u32): Likewise.
4002         (__blcs_u32): Likewise.
4003         (__blsfill_u32): Likewise.
4004         (__blsic_u32): Likewise.
4005         (__t1mskc_u32): Likewise.
4006         (__tzmsk_u32): Likewise.
4007         (__bextri_u64): Likewise.
4008         (__blcfill_u64): Likewise.
4009         (__blci_u64): Likewise.
4010         (__blcic_u64): Likewise.
4011         (__blcmsk_u64): Likewise.
4012         (__blcs_u64): Likewise.
4013         (__blsfill_u64): Likewise.
4014         (__blsic_u64): Likewise.
4015         (__t1mskc_u64): Likewise.
4016         (__tzmsk_u64): Likewise.
4017         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
4018         * doc/invoke.texi: Document -mtbm.
4019         * doc/extend.texi: Document TBM built-in functions.
4020
4021 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4022
4023         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
4024         (x86_64-*-*): Likewise.
4025         * config/i386/cpuid.h: Define BMI bit.
4026         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4027         and set has_bmi.
4028         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4029         isa_flag for BMI.
4030         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
4031         (OPTION_MASK_ISA_BMI_UNSET): New.
4032         (ix86_handle_option): Handle -mbmi.
4033         (isa_opts): Add -mbmi.
4034         (enum pta_flags): Add PTA_BMI.
4035         (ix86_option_override_internal): Add BMI support.
4036         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
4037         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
4038         (IX86_BUILTIN_BEXTR64): Likewise.
4039         (IX86_BUILTIN_CTZS): Likewise.
4040         (bdesc_args): Add BMI intrinsics.
4041         (ix86_expand_args_builtin): Add BMI specific cases.
4042         * config/i386/i386.h (TARGET_BMI): New for BMI.
4043         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
4044         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
4045         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
4046         (UNSPEC_TZCNT): Likewise.
4047         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
4048         (bmi_andn_<mode>): New for BMI.
4049         (bmi_bextr_<mode>): Likewise.
4050         (bmi_blsi_<mode>): Likewise.
4051         (bmi_blsmsk_<mode>): Likewise.
4052         (bmi_blsr_<mode>): Likewise.
4053         * config/i386/i386.opt: Add -mbmi.
4054         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
4055         * config/i386/bmiintrin.h (__lzcnt_u16): New.
4056         (__tzcnt_u16): Likewise.
4057         (__andn_u32): Likewise.
4058         (__bextr_u32): Likewise.
4059         (__blsi_u32): Likewise.
4060         (__blsmsk_u32): Likewise.
4061         (__blsr_u32): Likewise.
4062         (__lzcnt_u32): Likewise.
4063         (__tzcnt_u32): Likewise.
4064         (__andn_u64): Likewise.
4065         (__bextr_u64): Likewise.
4066         (__blsi_u64): Likewise.
4067         (__blsmsk_u64): Likewise.
4068         (__blsr_u64): Likewise.
4069         (__lzcnt_u64): Likewise.
4070         (__tzcnt_u64): Likewise.
4071         * doc/invoke.texi: Document -mbmi and -mno-bmi.
4072         * doc/extend.texi: Document BMI built-in functions.
4073
4074 2010-11-10  Jan Hubicka  <jh@suse.cz>
4075
4076         PR tree-optimize/46228
4077         * doc/invoke.texi (comdat-sharing-probability): Document.
4078         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
4079         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
4080
4081 2010-11-10  Jan Hubicka  <jh@suse.cz>
4082
4083         PR tree-optimize/46228
4084         * cgraph.c (cgraph_propagate_frequency): Fix typo.
4085
4086 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
4087
4088         PR tree-optimization/46414
4089         * tree-inline.c (estimate_move_cost): Check preferred vector
4090         mode for vector type.
4091
4092 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4093
4094         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
4095
4096 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
4097
4098         PR tree-optimization/45971
4099         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
4100         for phi nodes analyzable by scev.
4101
4102 2010-11-10  Richard Guenther  <rguenther@suse.de>
4103
4104         PR tree-optimization/44964
4105         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
4106
4107 2010-11-10  Martin Jambor  <mjambor@suse.cz>
4108
4109         PR tree-optimization/46351
4110         PR tree-optimization/46377
4111         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
4112         aggregate bit-fields.
4113
4114 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4115
4116         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4117         * doc/tm.texi: Regenerate.
4118         * opts-common.c (tm.h): Don't include.
4119         (target_option_translations): Remove.
4120         (decode_cmdline_options_to_array): Don't handle translating options.
4121         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
4122         * config/darwin-driver.c: Don't condition includes on
4123         CROSS_DIRECTORY_STRUCTURE.
4124         (darwin_default_min_version): Make static.
4125         (darwin_driver_init): New.  Call darwin_default_min_version if not
4126         CROSS_DIRECTORY_STRUCTURE.
4127         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4128         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
4129         (ASM_SPEC): Add %{static}.
4130         (darwin_default_min_version): Don't declare.
4131         (darwin_driver_init): Declare.
4132         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
4133         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
4134         * config/darwin.opt (all_load, allowable_client,
4135         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
4136         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
4137         exported_symbols_list, filelist, findirect-virtual-calls,
4138         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
4139         framework, fterminated-vtables, gfull, gused, image_base, init,
4140         install_name, multi_module, multiply_defined,
4141         multiply_defined_unused, no_dead_strip_inits_and_terms,
4142         seg_addr_table, seg_addr_table_filename, segaddr,
4143         segs_read_only_addr, segs_read_write_addr, single_module,
4144         umbrella, unexported_symbols_list, weak_reference_mismatches,
4145         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
4146         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
4147         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
4148         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
4149         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
4150         (ASM_SPEC): Add %{static}.
4151         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4152         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4153         (DRIVER_SELF_SPECS): Handle options formerly in
4154         TARGET_OPTION_TRANSLATE_TABLE.
4155         * config/mep/mep.opt (mfar): New.
4156         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4157         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
4158         TARGET_OPTION_TRANSLATE_TABLE.
4159         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
4160         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4161         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
4162         ffix-and-continue, findirect-data): New.
4163         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4164         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
4165         (mnofpu): Define mask and use Report here.
4166
4167 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4168
4169         * config/s390/s390.c (s390_emit_prologue): Report the stack
4170         size if -fstack-usage is used.
4171
4172 2010-11-10  Richard Guenther  <rguenther@suse.de>
4173
4174         PR tree-optimization/46398
4175         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
4176
4177 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
4178
4179         PR target/44760
4180         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
4181         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
4182         GP_REG_OR_PSEUDO_STRICT_P.
4183         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
4184         unexpected alternative.
4185         (*movsf_internal): Likewise.
4186         (indirect_jump): Replace call to non-existant function with call to
4187         internal_error.
4188         (tablejump): Likewise.
4189         * config/iq2000/iq2000.c: Include df.h .
4190         (iq2000_function_arg_advance): Use CONST_CAST2.
4191         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
4192         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
4193         a non-zero function address.
4194         (iq2000_initial_elimination_offset): Add gcc_unreachable for
4195         unexpected value of FROM.
4196         (symbolic_expression_p): Delete.
4197         (iq2000_function_value): Constify func.
4198         (expand_one_builtin): Use expand_normal.
4199         (iq2000_print_operand): Don't print VALUE if calculating it failed.
4200
4201         PR rtl-optimization/44764
4202         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
4203
4204         PR target/46407
4205         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
4206         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
4207         with ATTRIBUTE_UNUSED.
4208         (valid_psw_flag): Constify parameter which.
4209         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
4210
4211         PR target/46415
4212         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
4213         (mmix_dbx_register_number): Likewise.
4214         * config/mmix/mmix.c: Include df.h .
4215         (mmix_local_alignment): Change argument basic_align and return type
4216         to unsigned.
4217         (mmix_dbx_register_number): Change argument and return type to
4218         unsigned.
4219         (mmix_expand_prologue): Use add_reg_note.
4220
4221         PR target/46417
4222         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
4223         (spu_split_store): Use aform.
4224         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
4225
4226 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4227
4228         PR/46268
4229         * doc/gty.texi (GTY Options): Clarify that variable_size produces
4230         allocators taking size in bytes, compare with length option.  Add
4231         size calculation example.
4232         (Invoking the garbage collector): Ensure that sentences are
4233         followed by two spaces.  Describe that pointer fields must be
4234         initialized at ggc_collect call.
4235         (Troubleshooting): New section.
4236
4237 2010-11-09  Jan Hubicka  <jh@suse.cz>
4238
4239         PR tree-optimization/40436
4240         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
4241         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
4242         normal instructions; be sure bultin is not implemented in this file;
4243         compute non-zero return cost.
4244         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
4245         * tree-inline.h (eni_weights_d): Add return cost.
4246
4247 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
4248
4249         * c-parser.c (c_parser_struct_declaration): Handle declaration
4250         specifiers followed by CPP_CLOSE_BRACE.
4251
4252 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4253
4254         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
4255         split occurs before reload, and we allocate memory at the time of
4256         the split, not during expansion.  Add attributes.
4257         (floatsi<mode>2_lfiwax_mem): Ditto.
4258         (floatunssi<mode>2_lfiwzx): Ditto.
4259         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4260         (floatsidf2): Ditto.
4261         (floatunssisf2): Ditto.
4262         (floatunssidf2): Ditto.
4263         (fix_trunc<mode>si2): Ditto.
4264         (fix_trunc<mode>si2_stfiwx): Ditto.
4265         (fix_trunc<mode>si2_internal): Ditto.
4266         (fix_trunc<mode>si2): Ditto.
4267         (fix_trunc<mode>di2): Ditto.
4268         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4269         (floatsisf2): Ditto.
4270         (floatdidf2_mem): Ditto.
4271         (floatunsdidf2_mem): Ditto.
4272         (floatunsdidf2): Ditto.
4273         (floatdisf2_internal1): Ditto.
4274         (floatdisf2_mem): Ditto.
4275         (floatunsdisf2_mem): Ditto.
4276         (floatsi<mode>2_lfiwax_mem2): Delete.
4277         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4278         (fix_trunc<mode>si2_mem): Ditto.
4279         (fixuns_trunc<mode>si2_mem): Ditto.
4280         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
4281         type operations to reduce copying the values to multiple memory slots.
4282         (roundu32<mode>2_fprs): Ditto.
4283
4284         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
4285         PRE_INC, PRE_DEC, PRE_MODIFY.
4286         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
4287
4288         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
4289         Delete prototype.
4290
4291 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4292
4293         PR target/43808
4294         * cfgexpand.c (partition_stack_vars): Call
4295         update_alias_info_with_stack_vars unconditionally.
4296         (update_alias_info_with_stack_vars): Allow unused
4297         unreferenced vars when not optimizing.
4298
4299 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4300
4301         PR tree-optimization/46036
4302         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4303         add_to_dst_predicate_list.
4304
4305 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4306
4307         PR debug/46171
4308         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4309         earlier.
4310         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4311         argument, call dead_debug_reset when adding REG_UNUSED note.
4312         (dead_debug_reset): New function.
4313         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4314         df_create_unused_note callers.
4315
4316 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4317
4318         * config/fr30/fr30.c: Include "df.h".
4319
4320 2010-11-09  Richard Guenther  <rguenther@suse.de>
4321
4322         PR tree-optimization/46355
4323         * tree-loop-distribution.c (tree_loop_distribution): Do not
4324         distribute loops without a single exit.
4325
4326 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4327
4328         PR rtl-optimization/46237
4329         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4330         saved hard regs if they might get partially clobbered.
4331
4332 2010-11-09  Paul Koning  <ni1d@arrl.net>
4333
4334         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4335
4336 2010-11-09  Richard Guenther  <rguenther@suse.de>
4337
4338         PR tree-optimization/46177
4339         * tree-loop-distribution.c (prop_phis): Remove.
4340         (generate_builtin): Re-use the old loop exit edge to avoid
4341         needing to update PHI nodes.
4342
4343 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4344
4345         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4346         type of args_size to unsigned HOST_WIDE_INT.
4347
4348         PR target/44755
4349         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4350         * config/t-pnt16-warn: New file.
4351         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4352         Use add_reg_note.
4353         (picochip_emit_save_register): Likewise.
4354         (picochip_emit_restore_register): Remove variable insn.
4355         (picochip_legitimize_address): Don't use C++ style comments.
4356         (picochip_legitimize_reload_address): Likewise.
4357         (reorder_var_tracking_notes): Remove variable vliw_start.
4358         (picochip_reorg): Cast first arguemnt to emit_note_after to
4359         enum insn_note.
4360         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4361         (picochip_expand_builtin_3op): Likewise.
4362         (picochip_expand_builtin_2opvoid): Likewise.
4363         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4364         (picochip_expand_array_testport): Likewise.
4365         (picochip_init_builtins): Remove unused variables.
4366         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4367         to unsigned long, and output it as such.
4368         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4369         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4370         (schedType): Cast result of picochip_schedule_type to
4371         enum attr_schedType.
4372
4373         PR target/44759
4374         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4375         conditional to type of S.
4376         (mn10300_function_arg): Remove unused variable align.
4377         (mn10300_arg_partial_bytes): Likewise.
4378         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4379         enum attr_cpu.
4380
4381 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4382
4383         PR bootstrap/46392
4384         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4385
4386 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4387
4388         * tree.h (contains_placeholder_p): Fix comment.
4389         (type_contains_placeholder_p): Adjust comment.
4390         * tree.c (contains_placeholder_p): Fix comment.
4391         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4392         adjust comment.
4393         (type_contains_placeholder_p): Add comment.
4394
4395 2010-11-09  Paul Koning  <ni1d@arrl.net>
4396
4397         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4398         output of byte values.
4399
4400 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4401
4402         PR middle-end/46360
4403         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4404         not in SSA mode.
4405
4406 2010-11-09  Richard Guenther  <rguenther@suse.de>
4407
4408         PR middle-end/46221
4409         * varasm.c (compute_visible_aliases): New function.
4410         (remove_unreachable_alias_pairs): Aliases make a target available
4411         even though we reclaimed the cgraph node.
4412         (finish_aliases_1): Likewise.
4413         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4414
4415 2010-11-09  Nick Clifton  <nickc@redhat.com>
4416
4417         * config/mn10300/mn10300-modes.def: New file.
4418
4419 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4420             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4421
4422         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4423         (plugin_files, get_file_basename, get_file_realbasename)
4424         (get_file_langdir, error_at_line, gt_files, this_file)
4425         (system_h_file, read_input_list, create_field_all)
4426         (get_file_srcdir_relative_path, get_file_basename)
4427         (get_file_langdir, get_file_gtfilename)
4428         (get_output_file_with_visibility, get_output_file_name)
4429         (struct flist, put_mangled_filename, walk_type)
4430         (put_mangled_filename, finish_root_table, write_roots): Use
4431         input_file-s.
4432         (lang_dir_names, num_lang_dirs): Remove static.
4433         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4434         (main): Use input_file-s.
4435
4436         * gengtype.h: (struct input_file_st, input_file): New type.
4437         (struct fileloc): Use it.
4438         (gt_files, num_gt_files, this_file, system_h_file)
4439         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4440         (get_input_file_name): New function.
4441         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4442         use input_file.
4443         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4444         (get_output_file_name): Ditto.
4445
4446         * gengtype-lex.l (yybegin): Use input_file.
4447
4448         * gengtype-parse.c (parse_error): Use input_file.
4449
4450 2010-11-08  Xinliang David Li  <davidxl@google.com>
4451
4452         PR tree-optimization/46316
4453         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4454         * double-int.h (double_int_mul_with_sign): New function.
4455         * double-int.c (double_int_mul_with_sign): New function.
4456
4457 2010-11-08  Paul Koning  <ni1d@arrl.net>
4458
4459         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4460
4461 2010-11-08  Paul Koning  <ni1d@arrl.net>
4462
4463         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4464
4465 2010-11-08  Paul Koning  <ni1d@arrl.net>
4466
4467         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4468         to 8 bits.
4469
4470 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4471
4472         PR target/46378
4473         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4474         turn on ISA 2.04 rounding instructions for power5.
4475
4476         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4477         not ISA 2.02.
4478
4479         PR target/45585
4480         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4481         in FPR registers.
4482         (movdi_low_st): Ditto.
4483
4484 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4485             Richard Henderson  <rth@redhat.com>
4486
4487         PR target/44758
4488         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4489         (attribute acc_group): Cast value to enum attr_acc_group.
4490         (*movdi_nodouble+6): Use gen_int_mode.
4491         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4492         if RTX_CODE is defined or not.
4493         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4494         struct frv_io.
4495         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4496         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4497         (frv_expand_block_clear): Likewise.
4498         (frv_trampoline_init): Use LCT_NORMAL.
4499         (struct frv_packet_group): New struct, broken out of type of
4500         frv_packet.
4501         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4502         use cast in loop counter increment.
4503         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4504         assigning to io->type.
4505         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4506         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4507         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4508         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4509         (frv_read_argument): Use expand_normal.
4510
4511         PR target/44757
4512         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4513         lm32_legitimate_constant_p.
4514         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4515         * config/lm32/lm32.c (gen_int_relational): Make new block for
4516         LE / LT / LEU / LTU case.  Declare variables at start of block.
4517         (lm32_block_move_inline): Use XALLOCAVEC.
4518
4519 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4520
4521         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4522
4523 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4524
4525         * gengtype (get_output_file_for_structure): Ensure type is union
4526         or struct.
4527         (write_splay_tree_allocator_def): Use
4528         get_output_file_with_visibility.
4529
4530 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4531
4532         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4533         to defined values in case of an error.
4534         (s390_option_override): Skip further processing if the -march
4535         parameter wasn't recognized.
4536
4537 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4538
4539         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4540         assert that REG is a hard register number before using it as an index.
4541
4542         PR bootstrap/46358
4543         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4544         Avoid warnings when HOST_WIDE_INT is 32 bit.
4545
4546 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4547
4548         PR target/46208
4549         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4550         (sparc_promote_prototypes): Likewise.
4551         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4552         (sparc_return_in_memory): Remove superfluous parentheses.
4553         (sparc_struct_value_rtx): Fix long lines.
4554         (sparc_function_value_1): Promote in 32-bit mode as well.
4555
4556 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4557
4558         PR rtl-optimization/45352
4559         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4560         the variable_issue hook is not implemented.
4561         (fill_insns): Remove dead variable stall_iterations.
4562         (init_seqno_1): Force EBB start for resetting sched cycles on any
4563         successor blocks of the rescheduled region.
4564         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4565         (reset_sched_cycles_in_current_ebb): Add debug printing.
4566         New variable issued_insns.  Advance state when we have issued
4567         issue_rate insns.
4568
4569 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4570
4571         * gengtype (main): Get here's position using POS_HERE macro for
4572         do*typedef calls.
4573
4574 2010-11-07  Ian Lance Taylor  <iant@google.com>
4575
4576         PR target/46089
4577         * config/i386/i386.c (split_stack_fn_large): New static variable.
4578         (ix86_expand_split_stack_prologue): Handle large model.
4579
4580 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4581
4582         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4583         all possible addressing modes.
4584
4585 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4586
4587         PR tree-optimization/46346
4588         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4589
4590 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4591
4592         * config/mips/mips.c: Revert previous patch.
4593         * config/mips/mips.md: Likewise.
4594
4595 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4596
4597         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4598         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4599         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4600         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4601         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4602         to use FMA.
4603         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4604         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4605         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4606         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4607
4608 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4609
4610         PR c/43384
4611         * c-decl.c (lookup_label): Labels can only be referenced in a
4612         function's scope.
4613         (store_parm_decls_oldstyle): Skip erroneous parameters.
4614
4615 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4616
4617         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4618         LIBCALL_VALUE): Remove macros.
4619         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4620         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4621         (fr30_function_value_regno_p, fr30_function_value,
4622         fr30_libcall_value): New functions.
4623
4624 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4625
4626         PR middle-end/46314
4627         * target.def (generate_internal_label): New asm_out hook.
4628         * output.h (default_generate_internal_label): Declare.
4629         * varasm.c (default_generate_internal_label): Define.
4630
4631 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4632
4633         PR target/44981
4634         * doc/extend.tex (format): Document NSString extension.
4635         (format_arg): Likewise.
4636         (Darwin Format Checks): New section.
4637         * doc/tm.texi: Document string object hooks (generated).
4638         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4639         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4640         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4641         * target.def (objc_construct_string_object): Rename, amend
4642         documentation.
4643         (string_object_ref_type_p): New hook.
4644         (check_string_object_format_arg): New hook.
4645         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4646         attribute identifiers.
4647         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4648         (darwin_check_cfstring_format_arg): New.
4649         (darwin_additional_format_types): New.
4650         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4651         (darwin_check_cfstring_format_arg): New.
4652         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4653         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4654         (TARGET_N_FORMAT_TYPES): New.
4655         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4656
4657 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4658             Pascal Obry  <obry@adacore.com>
4659
4660         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4661         in 64-bit mode and 17 otherwise.
4662
4663 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4664
4665         PR debug/45939
4666         * var-tracking.c (emit_note_insn_var_location): Make sure that
4667         call related var location notes come before the normal ones.
4668
4669 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4670
4671         PR target/46326
4672         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4673         in the last change.
4674
4675 2010-11-05  Ian Lance Taylor  <iant@google.com>
4676
4677         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4678
4679 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4680
4681         PR c/44772
4682         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4683         pointer_set_contains if DECL_NAME is NULL.
4684
4685 2010-11-05  Ian Lance Taylor  <iant@google.com>
4686
4687         PR target/46084
4688         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4689         request enough additional space for alignment, and force alignment.
4690
4691 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4692
4693         * config/i386/i386.c (legitimate_pic_address_disp_p):
4694         Handle UNSPEC_PCREL.
4695         (ix86_legitimate_address_p): Likewise.
4696         (legitimize_pic_address): Likewise.
4697         (output_pic_addr_const): Likewise.
4698         (ix86_delegitimize_address): Likewise.
4699         (ix86_find_base_term): Likewise.
4700         (memory_address_length): Likewise.
4701         (x86_output_mi_thunk): Handle special case x64
4702         for non local binding.
4703         * config/i386/i386.md (UNSPEC_PCREL): New.
4704         * config/i386/winnt.c (i386_pe_binds_local_p):
4705         Allow weak symbol for x64 windows with non-local binding.
4706
4707 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4708
4709         PR target/45670
4710         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4711         instead of EXPAND_NORMAL for base expansion.
4712
4713 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4714
4715         * config.gcc: Support --with-fpmath=avx for x86.
4716         * config/i386/avxmath.h: New.
4717         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4718
4719 2010-11-05  Ian Lance Taylor  <iant@google.com>
4720
4721         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4722         * gengtype.c (walk_type): Don't recognize descbits option.
4723
4724 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4725
4726         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4727         WORD_SWITCH_TAKES_ARG): Remove.
4728         * doc/options.texi (Args): Document.
4729         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4730         * doc/tm.texi: Regenerate.
4731         * opt-functions.awk (switch_flags): Handle Args.
4732         * opts-common.c: Update comment on tm.h include.
4733         (decode_cmdline_option): Handle options with multiple arguments.
4734         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4735         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4736         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4737         CL_COMMON): Update values.
4738         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4739         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4740         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4741         sectobjectsymbols, sectorder, segcreate, segprot): New.
4742
4743 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4744             Uros Bizjak  <ubizjak@gmail.com>
4745
4746         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4747         256bit AVX register is used.
4748         (ix86_expand_vector_move_misalign): Likewise.
4749         (ix86_expand_vector_move): Replace use_avx256_p with
4750         VALID_AVX256_REG_MODE.
4751
4752 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4753
4754          PR target/44750
4755         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4756         change.  Set $@-warn.o to -Wno-error.
4757
4758         PR bootstrap/44756
4759         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4760         comparing it to a signed value.
4761
4762         PR middle-end/44766
4763         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4764         PR bootstrap/44770
4765         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4766         to i.
4767
4768         PR target/44754
4769         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4770         (m32c_function_arg).  Add comma between arguments two and three.
4771         (m32c_promote_prototypes): Remove declaration.
4772         (current_function_special_page_vector): Likewise.
4773         (m32c_regno_reg_class): Change return type to enum reg_class.
4774         (m32c_pushm_popm): Use add_reg_note.
4775         (m32c_push_rounding): Change return type to unsigned int.
4776         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4777         enum reload_type.
4778         (m32c_insert_attributes): Constify variable name.
4779         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4780         (m32c_prepare_shift): Remove variable lref.
4781         (m32c_expand_movcc): Remove variable cmp.
4782         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4783         (m32c_compare_redundant): Remove variable op2.
4784         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4785         (m32c_pragma_memregs): Assign the number to target_memregs.
4786         (m32c_pragma_address): Remove variable var_str.
4787         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4788         enum reg_class.
4789         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4790         * config/m32c/bitops.md (andsi3): Add default case to switch.
4791         (iorsi3, xorsi3): Likewise.
4792         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4793         * config/m32c/jump.md (call, call_value): Likewise.
4794         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4795         (m32c_regno_reg_class): Likewise.
4796         (current_function_special_page_vector): Declare.
4797
4798 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4799
4800         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4801
4802         PR tree-optimization/46099
4803         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4804         if it is NULL and uid wasn't found in the hash table.  Just fold the
4805         result if it is NULL otherwise.  Insert other potentially needed
4806         stmts right before current stmt instead of on the entry edge.
4807         (struct elv_data): Add gsi and reset fields.
4808         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4809         failed for debug stmt, set dta->reset and return.
4810         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4811         pass GSI through to the callback, handle resetting of debug stmts.
4812         (eliminate_local_variables): Adjust caller.  Process debug stmts
4813         in second phase.
4814
4815         PR middle-end/43690
4816         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4817         {pre,post}{in,de}crement, fail.
4818
4819         PR debug/46307
4820         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4821         * tree-pretty-print.c (dump_generic_node): Likewise.
4822         (op_code_prio): Likewise.
4823         * cfgexpand.c (expand_debug_expr): Likewise.
4824
4825 2010-11-04  Paul Koning  <ni1d@arrl.net>
4826
4827         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4828         constraints.
4829
4830 2010-11-04  Chao-ying Fu  <fu@mips.com>
4831
4832         * configure.ac: Test assembler support for DSP Rev1 mult.
4833         * configure: Regenerate.
4834         * config.in: Regenerate.
4835         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4836         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4837         (CODE_FOR_mips_multu): New define.
4838         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4839         dspr2_32 to dsp_32.
4840         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4841         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4842         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4843         New define_expand patterns.
4844         * config/mips/constraints.md (ka): Update the constraint to test
4845         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4846         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4847         mips_multu): Delete.
4848         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4849         Change target constraint to "ka".
4850         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4851         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4852         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4853         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4854         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4855         (<u>maddsidi4): Likewise.
4856         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4857         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4858
4859 2010-11-04  Paul Koning  <ni1d@arrl.net>
4860
4861         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4862
4863 2010-11-04  Paul Koning  <ni1d@arrl.net>
4864
4865         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4866
4867 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4868
4869         Fixed using the Objective-C 2.0 dot-syntax with class names.
4870         * c-parser.c (c_parser_next_token_starts_declspecs): In
4871         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4872         (c_parser_next_token_starts_declaration): Same.
4873         (c_parser_postfix_expression): Parse the Objective-C 2.0
4874         dot-syntax with a class name.
4875
4876 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4877
4878         * final.c (compute_alignments): Compute/free loop info all the time.
4879         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4880         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4881         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4882         * config/rs6000/rs6000.c (cfgloop.h): Include.
4883         (can_override_loop_align): New.
4884         (rs6000_option_override_internal): Set it.
4885         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4886         (rs6000_loop_align): New function.
4887         (rs6000_loop_align_max_skip): Likewise.
4888
4889 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4890
4891         PR driver/45703
4892         * collect2.c (main): Print --help output to stdout.  Do not
4893         exit right away, so ld --help is appended.  Add empty lines
4894         to separate output suitably.
4895
4896 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4897
4898         PR tree-optimization/46233
4899         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4900         after calling analyze_function, not before.
4901
4902         PR target/46234
4903         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4904         instead of build_va_arg_indirect_ref.
4905         * config/spu/spu.c (spu_va_start): Likewise.
4906         * config/s390/s390.c (s390_va_start): Likewise.
4907
4908 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4909
4910         PR middle-end/46292
4911         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4912         if the innermode is not vector mode, determine the mode of a subreg
4913         by using mode_for_size of inner_size.
4914
4915 2010-11-04  Richard Guenther  <rguenther@suse.de>
4916
4917         PR rtl-optimization/46183
4918         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4919         (execute_rtl_pre): Likewise.
4920         (execute_rtl_hoist): Likewise.
4921
4922 2010-11-04  Richard Guenther  <rguenther@suse.de>
4923
4924         PR tree-optimization/46068
4925         * ipa-split.c (consider_split): Remove gcc_unreachable.
4926
4927 2010-11-04  Richard Guenther  <rguenther@suse.de>
4928
4929         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4930
4931 2010-11-04  Richard Guenther  <rguenther@suse.de>
4932
4933         PR tree-optimization/45991
4934         * gimplify.c (force_gimple_operand_1): Use the provded test
4935         function in the initial test.
4936
4937 2010-11-04  Jeff Law  <law@redhat.com>
4938
4939         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4940         of readonly memory equivalances for const/pure calls.
4941
4942 2010-11-04  Richard Guenther  <rguenther@suse.de>
4943
4944         PR tree-optimization/45733
4945         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4946         permute builtins function return type.
4947
4948 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4949
4950         PR middle-end/44765
4951         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4952         as an index, check it is not INVALID_REGNUM.
4953
4954         PR bootstrap/44756
4955         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4956         unsignedp.
4957         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4958
4959         PR bootstrap/44756
4960         * function.c (thread_prologue_and_epilogue_insns): Add
4961         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4962
4963         PR bootstrap/44756
4964         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4965
4966         PR target/44750
4967         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4968         (pdp11_preferred_reload_class): Rename class to rclass.
4969         (pdp11_preferred_output_reload_class): Likewise.
4970         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4971         ALL_COMPILERFLAGS .
4972         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4973
4974         PR bootstrap/44756
4975         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4976         iteration variables to enum machine_mode.
4977
4978         PR target/44751
4979         * config/h8300/h8300.c: Include df.h.
4980         (push, pop): Use add_reg_note.
4981         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4982         (compute_a_shift_cc): Likewise.
4983         (expand_a_shift): Argument code has type enum rtx_code.
4984         (struct shift_insn): Member cc_valid has type enum attr_cc.
4985         (struct shift_info) <cc_inline, cc_special>: Likewise.
4986         enum attr_cc.
4987         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4988         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4989
4990 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4991
4992         PR tree-optimization/46213
4993         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4994         MINUS_EXPR only if the first operand is reduction operand.
4995
4996 2010-11-04  Richard Guenther  <rguenther@suse.de>
4997             Richard Henderson  <rth@redhat.com>
4998
4999         * tree.def (FMA_EXPR): New tree code.
5000         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
5001         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
5002         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
5003         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
5004         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5005         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
5006         (execute_optimize_widening_mul): Call it.  Reorganize to allow
5007         dead stmt removal.  Move TODO flags ...
5008         (pass_optimize_widening_mul): ... here.
5009         * flag-types.h (enum fp_contract_mode): New enum.
5010         * common.opt (flag_fp_contract_mode): New variable.
5011         (-ffp-contract): New option.
5012         * opts.c (common_handle_option): Handle it.
5013         * doc/invoke.texi (-ffp-contract): Document.
5014         * tree.h (fold_fma): Declare.
5015         * builtins.c (fold_fma): New function.
5016         (fold_builtin_fma): Likewise.
5017         (fold_builtin_3): Call it for fma.
5018         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
5019         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
5020         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
5021         New expanders.
5022         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
5023         named patterns.
5024         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
5025         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
5026         (fms_optab, fnma_optab, fnms_optab): New defines.
5027         * gimplify.c (gimplify_expr): Handle binary truth expressions
5028         explicitly.  Handle FMA_EXPR.
5029         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
5030         operations.
5031
5032 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5033             Richard Guenther  <rguenther@suse.de>
5034
5035         * passes.c (init_optimization_passes): Move veclower after SSA.
5036         * tree-vect-generic.c (uniform_vector_p): New function.
5037         (expand_vector_operations_1): Handle conversion.
5038         (pass_lower_vector): Update SSA form.
5039
5040 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
5041
5042         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
5043         plugin capabilities.
5044         * configure: Regenerate.
5045
5046 2010-11-03  Xinliang David Li  <davidxl@google.com>
5047
5048         PR target/46200
5049         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
5050         Adjust cbase if the use stmt is after iv update.
5051
5052 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5053
5054         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
5055
5056 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5057
5058         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
5059         comment.  Pass true to the last argument of output_stack_adjust.
5060
5061 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5062
5063         PR target/46295
5064         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
5065         if 256bit AVX register is used.
5066
5067 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5068
5069         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
5070         xsmindp/xsmaxdp on VSX for single precision min/max.
5071         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
5072         (vsx_sminsf3): Ditto.
5073
5074 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5075
5076         * combine.c (try_combine): Fix formatting issues, improve comments and
5077         fix a pasto.
5078
5079 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5080
5081         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
5082         of the result before building binary expressions.
5083
5084 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5085
5086         PR rtl-optimization/45865
5087         * Makefile.in (df-problems.o): Revert revision 164552.
5088         * basic-block.h (enum bb_flags): Likewise.
5089         * cfgcleanup.c (block_was_dirty): Likewise.
5090         (try_forward_edges): Likewise.
5091         (try_crossjump_bb): Likewise.
5092         (try_head_merge_bb): Likewise.
5093         (try_optimize_cfg): Likewise.
5094         (cleanup_cfg): Likewise.
5095         * df-core.c (df_set_bb_dirty): Likewise.
5096         * df-problems.c: Likewise.
5097         (df_simulate_find_uses): Likewise.
5098         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
5099         (find_memory, find_memory_store): Likewise.
5100         (can_move_insns_across): Likewise.
5101         * df.h (can_move_insns_across): Likewise.
5102         * ifcvt.c (find_memory): Likewise.
5103         (dead_or_predicable): Likewise.
5104
5105 2010-11-03  Richard Guenther  <rguenther@suse.de>
5106
5107         PR middle-end/46288
5108         * predict.c (strip_predict_hints): Simply DCE builtin expect if
5109         the result is unused.
5110
5111 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5112
5113         PR tree-optimization/46009
5114         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
5115         cond_if_else_store_replacement if bb1 and bb2 have the same
5116         single successor.
5117         (cond_store_replacement): Use gimple_assign_single_p, don't
5118         check if rhs is SSA_NAME or invariant.  Call release_defs for
5119         assign.
5120         (cond_if_else_store_replacement): New function.
5121
5122 2010-11-03  Richard Guenther  <rguenther@suse.de>
5123
5124         * opts.c (finish_options): Properly check for all WHOPR
5125         flags before complaining about -flto-partition.
5126
5127 2010-11-04  Alan Modra  <amodra@gmail.com>
5128
5129         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
5130         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
5131         TARGET_SECURE_PLT.
5132         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
5133         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
5134         on input, "r" on output.
5135
5136 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
5137
5138         Implemented -fobjc-std=objc1 flag.
5139         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
5140         option.
5141         * doc/standards.texi (Standards): Updated the section on
5142         Objective-C; mention support for Objective-C 2.0 features and the
5143         new -fstd-objc=objc1 flag to disable them.
5144
5145 2010-11-03  Richard Guenther  <rguenther@suse.de>
5146
5147         PR middle-end/46241
5148         * dwarf2out.c (scope_die_for): Properly detect global scope.
5149
5150 2010-11-03  Richard Guenther  <rguenther@suse.de>
5151
5152         PR tree-optimization/46190
5153         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5154         Properly compute peel iterations.
5155
5156 2010-11-03  Richard Guenther  <rguenther@suse.de>
5157
5158         PR tree-optimization/46286
5159         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
5160         re-allocated vector data.
5161
5162 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5163
5164         PR target/46285
5165         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
5166         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
5167         is completed.
5168
5169 2010-11-03  Richard Guenther  <rguenther@suse.de>
5170
5171         PR tree-optimization/46217
5172         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
5173         flag matches.
5174         (execute_update_addresses_taken): Likewise.
5175
5176 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5177
5178         PR bootstrap/44335
5179         * targhooks.c (targhook_words_big_endian): New function.
5180         (targhook_float_words_big_endian): Likewise.
5181         * targhooks.h (targhook_words_big_endian): Declare.
5182         (targhook_float_words_big_endian): Likewise.
5183         * target.def (words_big_endian, float_words_big_endian): New hooks.
5184
5185 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5186
5187         PR tree-optimization/46165
5188         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
5189         a normal call into noreturn call.
5190
5191 2010-11-03  Richard Guenther  <rguenther@suse.de>
5192
5193         PR middle-end/46251
5194         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
5195         not INDIRECT_REFs.
5196
5197 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5198
5199         PR tree-optimization/46107
5200         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
5201         if cfg_hook_duplicate_loop_to_header_edge failed.
5202
5203 2010-11-03  Ian Lance Taylor  <iant@google.com>
5204
5205         PR lto/46273
5206         * config.gcc: Don't set lto_binary_reader.
5207         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5208         (Configuration): Mention --disable-lto.  Remove --with-libelf
5209         paragraph.
5210
5211 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5212
5213         PR debug/46252
5214         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
5215         prev_real_insn.
5216         * gcse.c (insert_insn_end_basic_block): Likewise.
5217
5218         PR rtl-optimization/46034
5219         PR rtl-optimization/46212
5220         PR rtl-optimization/46248
5221         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
5222         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
5223         before i0dest -> i0src substitution and pass 1 instead of 0 as last
5224         argument to subst on i2pat.
5225
5226 2010-11-02  Ian Lance Taylor  <iant@google.com>
5227
5228         * configure.ac: Use AC_SYS_LARGEFILE.
5229         * configure: Rebuild.
5230         * config.in: Rebuild.
5231
5232 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5233
5234         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
5235         fold_convert.
5236         * c-typeck.c (build_function_call_vec): Likewise.
5237         * cfgexpand.c (expand_debug_expr): Likewise.
5238         * cgraphunit.c (assemble_thunk): Likewise.
5239         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
5240         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
5241         (fold_binary_loc, fold_ternary_loc): Likewise.
5242         * gimple-fold.c (get_symbol_constant_value): Likewise.
5243         * gimple-low.c (lower_builtin_setjmp): Likewise.
5244         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
5245         * gimplify.c (gimplify_init_constructor): Likewise.
5246         * lambda.h (build_linear_expr): Likewise.
5247         * omp-low.c (omp_reduction_init): Likewise.
5248         * tree-inline.c (remap_ssa_name): Likewise.
5249         * tree-object-size.c (compute_object_sizes): Likewise.
5250         * tree-sra.c (init_subtree_with_zero): Likewise.
5251         (sra_ipa_modify_assign): Likewise.
5252         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
5253         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
5254         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
5255         (undistribute_ops_list): Likewise.
5256         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
5257         * tree-vect-stmts.c (vectorizable_call): Likewise.
5258         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
5259         (build_zero_cst): Handle more cases directly.  Update comment.
5260
5261 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5262
5263         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
5264         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
5265
5266         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
5267         and call ix86_split_call_vzeroupper instead of
5268         ix86_split_call_pop_vzeroupper.
5269         (*call_pop_1_vzeroupper): Likewise.
5270         (*sibcall_pop_1_vzeroupper): Likewise.
5271         (*call_value_pop_0_vzeroupper): Likewise.
5272         (*call_value_pop_1_vzeroupper): Likewise.
5273         (*sibcall_value_pop_1_vzeroupper): Likewise.
5274
5275 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5276
5277         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
5278
5279 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
5280
5281         * basic-block.h (insert_insn_end_bb_new): Delete.
5282         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
5283
5284 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
5285             H.J. Lu  <hongjiu.lu@intel.com>
5286
5287         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
5288         (ix86_split_call_pop_vzeroupper): Likewise.
5289
5290         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
5291         (ix86_expand_call): Conditionally decorate calls with
5292         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5293         (ix86_split_call_vzeroupper): New.
5294         (ix86_split_call_pop_vzeroupper): Likewise.
5295
5296         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5297         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5298         (*call_pop_1_vzeroupper): Likewise.
5299         (*sibcall_pop_1_vzeroupper): Likewise.
5300         (*call_0_vzeroupper): Likewise.
5301         (*call_1_vzeroupper): Likewise.
5302         (*sibcall_1_vzeroupper): Likewise.
5303         (*call_1_rex64_vzeroupper): Likewise.
5304         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5305         (*call_1_rex64_large_vzeroupper): Likewise.
5306         (*sibcall_1_rex64_vzeroupper): Likewise.
5307         (*call_value_pop_0_vzeroupper): Likewise.
5308         (*call_value_pop_1_vzeroupper): Likewise.
5309         (*sibcall_value_pop_1_vzeroupper): Likewise.
5310         (*call_value_0_vzeroupper): Likewise.
5311         (*call_value_0_rex64_vzeroupper): Likewise.
5312         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5313         (*call_value_1_vzeroupper): Likewise.
5314         (*sibcall_value_1_vzeroupper): Likewise.
5315         (*call_value_1_rex64_vzeroupper): Likewise.
5316         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5317         (*call_value_1_rex64_large_vzeroupper): Likewise.
5318         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5319
5320 2010-11-02  Ian Lance Taylor  <iant@google.com>
5321
5322         PR lto/46273
5323         * config.gcc: Revert last patch: set lto_binary_reader.
5324
5325 2010-11-02  Richard Guenther  <rguenther@suse.de>
5326
5327         PR tree-optimization/46149
5328         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
5329         non-indirect MEM_REF variants.
5330
5331 2010-11-02  Richard Guenther  <rguenther@suse.de>
5332
5333         PR tree-optimization/46216
5334         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5335         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5336
5337 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5338
5339         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5340         (*-*-osf*): Likewise.
5341         * configure: Regenerate.
5342
5343 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5344
5345         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5346         for Intel Core 2 and Core i7.
5347
5348 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5349
5350         Model decoder of Core 2/i7 for multipass scheduling.
5351
5352         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5353         New type to hold target-specific data for multipass scheduling.
5354         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5355         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5356         Core 2/i7.
5357         (core2i7_secondary_decoder_max_insn_size,)
5358         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5359         New static variables.
5360         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5361         ([_]ix86_first_cycle_multipass_data): New static variable.
5362         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5363         Implement targetm.sched hooks.
5364         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5365         of ...
5366         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5367         Implement new targetm.sched hooks.
5368         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5369         targetm.sched hook to install multipass scheduling hooks on demand.
5370
5371         * doc/tm.texi.in: Document new targetm.sched hooks.
5372         * doc/tm.texi: Regenerate.
5373
5374         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5375         (first_cycle_multipass_data_t): New typedef.
5376         (struct choice_entry: target_data): New field.
5377         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5378         to allow target model restrictions not represented in DFA.
5379         (choose_ready, schedule_block): Update.
5380         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5381         hooks to initialize target-specific data for multipass scheduling.
5382         * sched-int.h (max_issue): Update declaration.
5383         * sel-sched.c (choose_best_insn): Update.
5384         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5385         (first_cycle_multipass_{init, fini}): Define and document new
5386         targetm.sched hooks.
5387
5388 2010-11-02  Richard Guenther  <rguenther@suse.de>
5389
5390         PR tree-optimization/46184
5391         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5392         input vector type from the reduction operand as well.
5393
5394 2010-11-02  Richard Guenther  <rguenther@suse.de>
5395
5396         PR tree-optimization/46177
5397         * tree-loop-distribution.c (prop_phis): Use
5398         mark_virtual_phi_result_for_renaming.
5399
5400 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5401
5402         PR middle-end/46120
5403         * tree.c (get_binfo_at_offset): Bail out on artificial
5404         fields.  Identify primary bases according to their offsets.
5405
5406 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5407
5408         PR tree-optimization/45875
5409         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5410         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5411         their field offset.
5412
5413 2010-11-02  Ian Lance Taylor  <iant@google.com>
5414
5415         * doc/install.texi (Configuration): Note in two places that Java
5416         is not enabled by default.
5417
5418 2010-11-02  Ian Lance Taylor  <iant@google.com>
5419
5420         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5421         (Configuration): Mention --disable-lto.  Remove --with-libelf
5422         paragraph.
5423
5424 2010-11-02  Ian Lance Taylor  <iant@google.com>
5425
5426         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5427         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5428         LIBELFINC.  Remove HAVE_libelf.
5429         * config.gcc: Don't set lto_binary_reader.
5430         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5431         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5432         (LIBS): Remove $(LIBELFLIBS).
5433         (INCLUDES): Remove $(LIBELFINC).
5434         * configure: Rebuild.
5435         * config.in: Rebuild.
5436
5437 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5438
5439         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5440         (function_arg_advance): Delete.
5441         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5442         (FUNCTION_ARG): Delete.
5443         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5444         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5445         const_tree and a bool.
5446         (function-arg): Rename to...
5447         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5448         and a bool.
5449         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5450         targetm.calls.function_arg_advance.
5451         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5452
5453 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5454
5455         Merge from FSF "apple/trunk" branch.
5456
5457         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5458         * config/darwin.opt: .. to here.
5459         (matt-stubs): New option.
5460         * config/i386/darwin.opt: Delete.
5461         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5462         (MACHO_DYNAMIC_NO_PIC_P): New.
5463         (MACHOPIC_INDIRECT): New.
5464         (MACHOPIC_PURE): New.
5465         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5466         (MACHOPIC_ATT_STUB): New.
5467         (CC1_SPEC): Do not remove mdynamic-no-pic.
5468         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5469         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5470         (FUNCTION_PROFILER): Correct over-length line.
5471         (SUBTARGET_OVERRIDE_OPTIONS): New.
5472         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5473         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5474         (legitimate_constant_p): Handle mdynamic-no-pic.
5475         (ix86_legitimate_address_p): Likewise.
5476         (ix86_legitimize_address): Likewise.
5477         (ix86_expand_move): Likewise.
5478         (machopic_output_stub): Update for ATT-style stubs and
5479         mdynamic-no-pic.
5480         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5481         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5482         TARGET_DYNAMIC_NO_PIC: Remove.
5483         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5484         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5485         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5486         Remove handling of mdynamic-no-pic.
5487         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5488         Define if required.
5489         (machopic_symbol_defined_p): Do not try to use current_function_decl
5490         when generating _get_pc thunks within stubs.
5491         (machopic_indirect_data_reference): Rework for direct conditionals
5492         rather than #ifdefs, add x86 mdynamic-no-pic
5493         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5494         defined value.
5495         (darwin_override_options): Handle mdynamic-no-pic here.
5496         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5497         (machopic_lazy_symbol_ptr3_section): New.
5498         (machopic_picsymbol_stub2_section): New.
5499         (machopic_picsymbol_stub3_section): New.
5500         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5501         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5502         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5503         Moved common definition from x86 and rs6000.
5504         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5505         (MACHOPIC_INDIRECT): Likewise.
5506         (MACHOPIC_PURE): Likewise.
5507         * config.gcc (x86-darwin-*): Remove darwin.opt.
5508
5509 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5510
5511         PR debug/46255
5512         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5513         instead of gsi_last_bb.
5514
5515 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5516             Maxim Kuvyrkov  <maxim@codesourcery.com>
5517
5518         * config/i386/i386.c (cpu_names): Add "corei7".
5519         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5520
5521 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5522             Maxim Kuvyrkov  <maxim@codesourcery.com>
5523
5524         Tune alignment for Intel Core i7
5525
5526         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5527         (enum processor_type): Update comment.  Add entries for Core i7.
5528         * config/i386-c.c (ix86_target_macros_internal): Update.
5529         * config/i386.c (m_COREI7{_32,_64}): New macros.
5530         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5531         (processor_target_table): Tune alignment for Core i7.
5532         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5533
5534         * doc/invoke.texi: Document "corei7" option value.
5535
5536 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5537             Maxim Kuvyrkov  <maxim@codesourcery.com>
5538             H.J. Lu  <hjl.tools@gmail.com>
5539
5540         Basic support for Intel Core i7
5541
5542         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5543         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5544
5545 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5546
5547         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5548         sections and call darwin_asm_dwarf_section() to handle them.
5549         (darwin_asm_dwarf_section): New.
5550         (darwin_file_start): Remove code emitting dwarf section symbols.
5551
5552 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5553
5554         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5555         explicitly disable stack protection when building libgcc.
5556         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5557
5558 2010-11-01  Jason Merrill  <jason@redhat.com>
5559
5560         * fold-const.c (fold_indirect_ref_1): Handle folding
5561         POINTER_PLUS_EXPR to ARRAY_REF.
5562
5563 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5564
5565         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5566         (sh_delegitimize_address): New function.
5567
5568 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5569
5570         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5571         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5572         (CC1_SPEC): Don't handle -target.
5573         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5574         options.
5575         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5576         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5577         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5578         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5579         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5580         Zweak_reference_mismatches, client_name, compatibility_version,
5581         current_version, dylinker_install_name, pagezero_size,
5582         read_only_relocs, seg1addr, segs_read_only_addr,
5583         segs_read_write_addr, sub_library, sub_umbrella): New.
5584         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5585         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5586         * config/freebsd.opt: New.
5587         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5588         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5589         * config/rpath.opt: New.
5590         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5591         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5592         Use rpath.opt.
5593
5594 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5595
5596         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5597         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5598         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5599         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5600         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5601         Document that options in .opt files do not need to be included.
5602         * doc/tm.texi: Regenerate.
5603         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5604         * opts-common.c: Update comment on tm.h include.
5605         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5606         * system.h (SWITCH_TAKES_ARG): Poison.
5607         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5608         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5609         in darwin.opt.
5610         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5611         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5612         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5613         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5614         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5615         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5616         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5617         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5618         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5619         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5620         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5621         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5622         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5623         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5624         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5625         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5626         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5627         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5628         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5629         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5630         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5631         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5632         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5633         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5634
5635 2010-11-01  Paul Koning  <ni1d@arrl.net>
5636
5637         * config/pdp11/pdp11.md: Use iterators.
5638         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5639
5640 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5641
5642         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5643         GCC_INSN_FLAGS_H.
5644         * libgcov.c (__gcov_indirect_call_profiler): Set
5645         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5646         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5647
5648 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5649
5650         PR tree-optimization/46259
5651
5652         Revert:
5653         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5654         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5655         build_vector_from_val.
5656
5657 2010-11-01  DJ Delorie  <dj@redhat.com>
5658
5659         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5660         as well as an assertion.
5661
5662 2010-11-01  Paul Koning  <ni1d@arrl.net>
5663
5664         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5665         complex modes in memory.
5666
5667 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5668
5669         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5670
5671 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5672
5673         PR target/45250
5674         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5675         (cfa_base_offset): New variable.
5676         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5677         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5678         is NULL.
5679         (vt_init_cfa_base): Initialize cfa_base_offset.
5680
5681 2010-11-01  Alan Modra  <amodra@gmail.com>
5682
5683         PR target/46030
5684         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5685         and savres_strategy.
5686         (stack_info): New file scope var.
5687         (rs6000_init_machine_status): Init stack_info.
5688         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5689         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5690         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5691         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5692         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5693         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5694         (rs6000_savres_strategy): Rewrite.
5695         (rs6000_stack_info): Use "stack_info" in place of local "info".
5696         Return cached stack info when reload_completed unless ENABLE_CHECKING
5697         in which case confirm newly calculated stack info matches old info.
5698         Delay calculation of lr_save_p, set it for out of line gp save/restore
5699         as well as fp.  Call rs6000_savres_strategy from here..
5700         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5701         (rs6000_output_function_prologue): Use info->savres_strategy to
5702         determine whether fp save/restore externs need to be emitted.
5703
5704 2010-10-31  Jason Merrill  <jason@redhat.com>
5705
5706         * tree.h (EXPR_LOC_OR_HERE): New macro.
5707         * builtins.c (c_strlen): Use it.
5708         * c-decl.c (build_enumerator): Likewise.
5709         * gimplify.c (internal_get_tmp_var): Likewise.
5710         (shortcut_cond_expr): Likewise.
5711         (gimplify_one_sizepos): Likewise.
5712
5713 2010-10-31  Richard Henderson  <rth@redhat.com>
5714
5715         * config/i386/cygming.h (TARGET_SEH): New.
5716         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5717         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5718         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5719         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5720         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5721         (ASM_DECLARE_FUNCTION_SIZE): New.
5722         * config/i386/i386-protos.h: Update.
5723         * config/i386/i386.c (ix86_option_override_internal): Enable
5724         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5725         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5726         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5727         (ix86_compute_frame_layout): For SEH, disable
5728         use_fast_prologue_epilogue, move frame pointer to the end of
5729         the frame.  Initialize hfp_save_offset.
5730         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5731         at end of prologue for SEH.
5732         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5733         emit blockage at beginning of epilogue.
5734         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5735         (ix86_output_call_insn): New.
5736         * config/i386/i386.h (TARGET_SEH): New.
5737         (struct machine_function): Add member seh.
5738         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5739         * config/i386/winnt.c (struct seh_frame_state): New.
5740         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5741         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5742         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5743         i386_pe_start_function, i386_pe_end_function): New.
5744
5745         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5746         as CFA_STORE in rules 12 and 13.
5747
5748 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5749
5750         PR tree-optimization/46142
5751         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5752         accommodate third function argument.
5753
5754 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5755
5756         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5757
5758 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5759
5760         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5761         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5762         (get_initial_def_for_reduction): Likewise.
5763         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5764         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5765         * tree.c (build_one_cst): Likewise.
5766         (build_vector_from_val): Use types_compatible_p for assert.
5767
5768 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5769
5770         * emit-rtl.c (mark_used_flags): New function.
5771         (set_used_flags, reset_used_flags): Call it.
5772
5773 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5774
5775         PR middle-end/44569
5776         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5777         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5778
5779 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5780
5781         PR target/46195
5782         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5783         (ix86_compat_aligned_value_p): This.
5784         (ix86_old_function_arg_boundary): Renamed to ...
5785         (ix86_compat_function_arg_boundary): This.  Updated.
5786         (ix86_contains_aligned_value_p): New.
5787         (ix86_function_arg_boundary): Align long double parameters on
5788         stack to 4byte in 32bit.
5789
5790 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5791
5792         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5793         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5794         parsing of RID_COPIES and RID_IVAR.  Updated call to
5795         objc_add_property_declaration.
5796         * c-typecheck.c (build_component_ref): Call
5797         objc_maybe_build_component_ref instead of objc_build_setter_call.
5798         Use objc_is_property_ref to improve Objective-C checks.
5799         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5800         of objc_build_getter_call.
5801
5802 2010-10-29  Paul Koning  <ni1d@arrl.net>
5803
5804         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5805         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5806         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5807         (REG_OK_STRICT): Move description.
5808
5809 2010-10-29  Paul Koning  <ni1d@arrl.net>
5810
5811         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5812
5813 2010-10-29  Paul Koning  <ni1d@arrl.net>
5814
5815         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5816
5817 2010-10-29  Paul Koning  <ni1d@arrl.net>
5818
5819         PR/41822
5820         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5821
5822 2010-10-29  Richard Henderson  <rth@redhat.com>
5823
5824         PR rtl-opt/46226
5825         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5826         for asm goto.
5827
5828 2010-10-29  Paul Koning  <ni1d@arrl.net>
5829
5830         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5831         register to register move.
5832
5833 2010-10-29  Paul Koning  <ni1d@arrl.net>
5834
5835         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5836         of integer constant addresses, delete vax-only logic.
5837
5838 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5839
5840         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5841         a conditional expression.
5842
5843 2010-10-29  Paul Koning  <ni1d@arrl.net>
5844
5845         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5846         instruction encoding.
5847
5848 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5849             Andrew Pinski  <pinskia@gmail.com>
5850
5851         * tree.h (build_vector_from_val): Declare.
5852         * tree.c (build_vector_from_val): New function.
5853         * c-typeck.c (build_binary_op): Handle vector shifting.
5854         * doc/extend.texi: Description of the vector shifting operation.
5855
5856 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5857
5858         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5859         pdp11_secondary_memory_needed): Declare.
5860         * config/pdp11/predicates.md (float_operand): New predicate.
5861         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5862         (cbranchdf4, movdf): Change predicate.
5863         (movsf): Handle FPU register case.
5864         (truncdfsf2, extendsfdf2): Add FPU register case.
5865         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5866         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5867         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5868         (pdp11_register_move_cost): Update cost matrix.
5869         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5870         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5871         pdp11_secondary_memory_needed): New function.
5872         (pdp11_return_in_memory): Add other float types.
5873         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5874         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5875         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5876         REGISTER_MOVE_COST): Delete.
5877         (BASE_RETURN_VALUE_REG): Add other float types.
5878
5879 2010-10-29  Nick Clifton  <nickc@redhat.com>
5880
5881         * doc/invoke.texi: Document -mam34 and -mtune options.
5882         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5883         (mn10300_tune_cpu): New variable.
5884         (mn10300_handle_option): Handle -mam34 and -mtune options.
5885         (mn10300_option_override): Convert tune string into tune cpu variable.
5886         (mn10300_legitimate_constant_p): Delete unused local variable.
5887         (is_load_insn): New function.
5888         (is_store_insn): New function.
5889         (mn10300_adjust_schedule_cost): New function.
5890         (TARGET_SCHED_ADJUST_COST): Define.
5891         * config/mn10300/mn10300.opt (mam34): New option.
5892         (mtune): New option.
5893         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5894         (enum processor_type): Add AM34.
5895         (TARGET_AM34): Define.
5896         * config/mn10300/mn10300.md (attr cpu): Add am34.
5897         Add pipeline description.
5898         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5899         Remove unneeded alternatives.  Add timing attribute.
5900         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5901         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5902         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5903         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5904         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5905         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5906         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5907         float_conditional_branch, jump, indirect_jump, tablejump,
5908         call_internal, call_value_internal, zero_extendqisi2_am33,
5909         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5910         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5911         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5912         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5913         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5914         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5915         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5916         return_internal_regs, store_movm, return, call_next_insn):
5917         Add timing attribute.
5918         (am33_subsi3): Add missing clobber of CC_REG.
5919         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5920         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5921         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5922         extendqisi2): Fix predicates.
5923         (call_internal, call_internal_value): Separate alternatives.
5924         * config/mn10300/t-mn10300: Add AM34 multilib.
5925
5926 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5927
5928         * config/sh/sh.c (sh_promote_function_mode): Use
5929         default_promote_function_mode if !sh_promote_prototypes.
5930
5931 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5932
5933         * recog.c (split_all_insns): Remove dead code.
5934
5935 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5936
5937         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5938
5939 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5940
5941         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5942         (FUNCTION_ARG_ADVANCE): Delete.
5943         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5944         functions.
5945         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5946         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5947         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5948
5949 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5950
5951         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5952         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5953         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5954         Take a const_tree and a bool.
5955         (mcore_function_arg_advance): New function.
5956         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5957
5958 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5959
5960         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5961         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5962         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5963         Take a const_tree and a bool.
5964         (mcore_function_arg_advance): New function.
5965         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5966
5967 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5968
5969         * config/h8300/h8300-protos.h (function_arg): Delete.
5970         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5971         * config/h8300/h8300.c (function_arg): Rename to...
5972         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5973         a bool.
5974         (h8300_function_arg_advance): New function.
5975         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5976
5977 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5978
5979         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5980         to...
5981         * config/arc/arc.c (arc_function_arg): ...here and...
5982         (arc_function_arg_advance): ...here.  New functions.
5983         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5984
5985 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5986
5987         * config/crx/crx-protos.h (crx_function_arg): Delete.
5988         (crx_function_arg_advance): Delete.
5989         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5990         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5991         const_tree and a bool.
5992         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5993         (enough_regs_for_param): Take a const_tree.
5994         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5995
5996 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5997
5998         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5999         (m68hc11_function_arg_advance): Delete.
6000         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
6001         (FUNCTION_ARG_ADVANCE): Delete.
6002         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
6003         Take a const_tree and a bool.
6004         (m68hc11_function_arg_advance): Likewise.
6005         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6006
6007 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6008
6009         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
6010         (xstormy16_function_arg_advance): Delete.
6011         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
6012         (FUNCTION_ARG_ADVANCE): Delete.
6013         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
6014         Take a const_tree and a bool.
6015         (xstormy16_function_arg_advance): Likewise.  Return void, updating
6016         the CUM parameter instead.
6017         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6018
6019 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6020
6021         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
6022         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6023         (MOXIE_FUNCTION_ARG_SIZE): Move to...
6024         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
6025         (moxie_function_arg): Make static.  Take a const_tree and a bool.
6026         (moxie_function_arg_advance): New function.
6027         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6028
6029 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6030
6031         * config/mn10300/mn10300-protos.h (function_arg): Delete.
6032         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
6033         (FUNCTION_ARG_ADVANCE): Delete.
6034         * config/mn10300/mn10300.c (function_arg): Rename to...
6035         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
6036         and a bool.
6037         (mn10300_function_arg_advance): New function.
6038         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6039
6040 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6041
6042         * config/iq2000/iq2000-protos.h (function_arg): Delete.
6043         (function_arg_advance): Delete.
6044         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6045         * config/iq2000/iq2000.c (function_arg): Rename to...
6046         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
6047         a bool.
6048         (function_arg_advance): Rename to...
6049         (iq2000_function_arg_advance): ...this.  Make static.  Take a
6050         const_tree and a bool.
6051         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
6052         iq2000_function_arg.
6053         (iq2000_pass_by_reference): Call iq2000_function_arg).
6054         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6055
6056 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6057
6058         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
6059         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6060         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
6061         const_tree.
6062         (fr30_function_arg): New function.
6063         (fr30_function_arg_advance): New function.
6064         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6065
6066 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6067
6068         * config/frv/frv-protos.h (frv_function_arg): Delete.
6069         (frv_function_arg_advance): Delete.
6070         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6071         * config/frv/frv.c (frv_function_arg): Rename to...
6072         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
6073         (frv_function_arg, frv_function_incoming_arg): New functions.
6074         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
6075         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6076         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6077
6078 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
6079
6080         PR target/46153
6081         * config/i386/sse.md (sse_movhlps_exp): Use destination
6082         returned from ix86_fixup_binary_operands to expand insn.
6083         (sse_movlhps_exp): Ditto.
6084         (sse_loadhps_exp): Ditto.
6085         (sse_loadlps_exp): Ditto.
6086         (sse2_loadhpd_exp): Ditto.
6087         (sse2_loadlpd_exp): Ditto.
6088
6089 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
6090
6091         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
6092         constants in thumb2.
6093
6094 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
6095
6096         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
6097         arithmetics in masking operations.
6098         (contains_muldiv): Likewise.
6099         (try_combine): Likewise.
6100         (find_split_point): Likewise.
6101         (combine_simplify_rtx): Likewise.
6102         (simplify_if_then_else): Likewise.
6103         (simplify_set): Likewise.
6104         (expand_compound_operation): Likewise.
6105         (expand_field_assignment): Likewise.
6106         (make_extraction): Likewise.
6107         (extract_left_shift): Likewise.
6108         (make_compound_operation): Likewise.
6109         (force_to_mode): Likewise.
6110         (make_field_assignment): Likewise.
6111         (reg_nonzero_bits_for_combine): Likewise.
6112         (simplify_shift_const_1): Likewise.
6113         (simplify_comparison): Likewise.
6114
6115 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
6116
6117         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
6118         (ia64_function_arg_advance): Delete.
6119         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6120         (FUNCTION_ARG_ADVANCE): Delete.
6121         * config/ia64/ia64.c (ia64_function_arg): Rename to...
6122         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
6123         bool arguments.
6124         (ia64_function_arg, ia64_function_incoming_arg): New functions.
6125         (ia64_function_arg_advance): Make static.  Take a const_tree and
6126         a bool.
6127         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6128         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6129
6130 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
6131
6132         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
6133         (TARGET_GET_RAW_ARG_MODE): New.
6134         * doc/tm.texi: Regenerate.
6135         * target.def (get_raw_result_mode): New.
6136         (get_raw_arg_mode): New.
6137         * targhooks.c (default_get_reg_raw_mode): New.
6138         * targhooks.h (default_get_reg_raw_mode): New.
6139         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
6140         (apply_result_size): Ditto.
6141         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
6142         (TARGET_GET_RAW_RESULT_MODE): Define.
6143         (TARGET_GET_RAW_ARG_MODE): Ditto.
6144
6145 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6146
6147         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
6148         for newer Solaris 10 release.
6149         (sparc_fallback_frame_state): Likewise.
6150
6151 2010-10-27  Jason Merrill  <jason@redhat.com>
6152
6153         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
6154         variables sooner.
6155
6156 2010-10-27  Jie Zhang  <jie@codesourcery.com>
6157             Maxim Kuvyrkov  <maxim@codesourcery.com>
6158
6159         * haifa-sched.c (ISSUE_POINTS): Remove.
6160         (max_issue): Don't issue more than issue_rate instructions.
6161
6162 2010-10-27  Ian Lance Taylor  <iant@google.com>
6163
6164         PR target/46197
6165         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
6166         (split_stack_return): Replace UNSPEC_STACK_CHECK with
6167         UNSPECV_SPLIT_STACK_RETURN.
6168
6169 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
6170
6171         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
6172
6173         * config/i386/i386.c (block_info): New.
6174         (BLOCK_INFO): Likewise.
6175         (call_avx256_state): Likewise.
6176         (check_avx256_stores): Likewise.
6177         (move_or_delete_vzeroupper_2): Likewise.
6178         (move_or_delete_vzeroupper_1): Likewise.
6179         (move_or_delete_vzeroupper): Likewise.
6180         (use_avx256_p): Likewise.
6181         (function_pass_avx256_p): Likewise.
6182         (flag_opts): Add -mvzeroupper.
6183         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
6184         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
6185         is disabled.
6186         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
6187         generate vzeroupper.
6188         (init_cumulative_args): Add an int to indicate caller.  Set
6189         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
6190         based on return type.
6191         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
6192         caller_pass_avx256_p based on argument type.
6193         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
6194         is used, but not returned by caller.
6195         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
6196         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
6197         is used.
6198         (ix86_minimum_alignment): Likewise.
6199         (ix86_expand_special_args_builtin): Set target to
6200         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
6201         (ix86_reorg): Run the vzeroupper optimization if needed.
6202
6203         * config/i386/i386.h (ix86_args): Add caller.
6204         (INIT_CUMULATIVE_ARGS): Updated.
6205         (machine_function): Add use_vzeroupper_p, use_avx256_p,
6206         caller_pass_avx256_p, caller_return_avx256_p,
6207         callee_pass_avx256_p and callee_return_avx256_p.
6208
6209         * config/i386/i386.opt (-mvzeroupper): New.
6210
6211         * config/i386/predicates.md (vzeroupper_operation): Removed.
6212
6213         * config/i386/sse.md (avx_vzeroupper): Removed.
6214         (*avx_vzeroupper): Removed.
6215         (avx_vzeroupper): New.
6216
6217         * doc/invoke.texi: Document -mvzeroupper.
6218
6219 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6220
6221         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
6222         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
6223         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
6224
6225 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6226             Olivier Hainque  <hainque@adacore.com>
6227
6228         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
6229         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
6230         fs->signal_frame instead.
6231
6232 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6233
6234         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
6235         parsing of RID_COPIES and RID_IVAR.
6236
6237 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6238
6239         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
6240         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
6241         Do not use objc_set_property_attr, but use local variables
6242         instead.  Detect repeated usage of setter, getter and ivar
6243         attributes.  Improved error processing when a setter name does not
6244         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
6245         that the token is a keyword.  Updated call to
6246         objc_add_property_declaration.
6247
6248 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6249
6250         * c-parser.c (c_parser_objc_at_property): Renamed to
6251         c_parser_objc_at_property_declaration.  Updated calls to
6252         objc_add_property_variable, now objc_add_property_declaration.
6253         Code rewritten to be much more robust in recovering from syntax
6254         errors.  Added comments.
6255         (c_parser_objc_property_attrlist): Removed.
6256         (c_parser_external_declaration): Updated calls to
6257         c_parser_objc_at_property, now
6258         c_parser_objc_at_property_declaration.
6259         (c_parser_objc_methodprotolist): Same change.
6260
6261 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6262
6263         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
6264
6265 2010-10-26  Jan Hubicka  <jh@suse.cz>
6266
6267         * ipa.c (process_references): Enqueue all referenced nodes;
6268         mark as reachable only non-external nodes.
6269         (cgraph_remove_unreachable_nodes): All referenced nodes should
6270         be enqueued; remove bogues node->needed check.
6271
6272 2010-10-26  Jan Hubicka  <jh@suse.cz>
6273
6274         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
6275         to represent OMP.
6276
6277 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6278
6279         * config/i386/i386.md (split_stack_return): Replace
6280         unspec_volatile with unspec.
6281
6282 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
6283
6284         * doc/install.texi: Fix typo in --with-sysroot description.
6285
6286 2010-10-26  Jan Hubicka  <jh@suse.cz>
6287
6288         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6289         Use info provided by linker plugin.
6290
6291 2010-10-26  Jason Merrill  <jason@redhat.com>
6292
6293         * varasm.c (constructor_static_from_elts_p): Don't require a
6294         CONSTRUCTOR to have elements to be suitable for static
6295         initialization.  Allow ARRAY_TYPE as well.
6296
6297 2010-10-26  Jan Hubicka  <jh@suse.cz>
6298
6299         PR middle-end/45736
6300         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6301         (cgraph_set_const_flags) ... this one; get also looping argument;
6302         clear constructor/destructor flags.
6303         (cgraph_set_pure_flag): Likewise.
6304         (cgraph_set_looping_const_or_pure_flag): Remove.
6305         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6306         to optimize away static ctors/dtors; it does not work on inline clones;
6307         external functions can always be rmeoved.
6308         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6309         inline clones; in LTO external functions always can go.
6310         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6311         (cgraph_mark_address_taken_node): Assert that we are not taking
6312         address of inline clone.
6313         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6314         external functions.
6315         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6316         address taken.
6317         (ipcp_initialize_node_lattices): Only local functions can be
6318         handled without cloning.
6319         * cgraph.h (cgraph_set_readonly_flag,
6320         cgraph_set_looping_const_or_pure_flag): Remove.
6321         (cgraph_set_const_flag): Declare.
6322         (cgraph_set_pure_flag): Update.
6323         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6324         flags setting code.
6325         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6326         look at inline clones; fix handling of external definitions.
6327         (cgraph_postorder): Do not look at inline clones in the first pass.
6328         (function_and_variable_visibility): Drop constructors/destructor
6329         flags at pure and const functions.
6330         * tree-profile.c (tree_profiling): Update.
6331         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6332         address taken; external functions do not account to whole program size.
6333         (cgraph_decide_inlining): Likewise; do not try to inline
6334         functions already inlined.
6335
6336 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6337
6338         * doc/invoke.texi: Improve documentation of
6339         -fstrict-volatile-bitfields.
6340
6341 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6342
6343         PR tree-optimization/46167
6344         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6345         is basic block for the statement.
6346
6347 2010-10-26  Paul Koning  <ni1d@arrl.net>
6348
6349         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6350         current definition of struct_real_format.
6351
6352 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6353
6354         PR target/44948
6355         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6356         (ix86_function_arg_boundary): Always align parameters on stack
6357         in 64bit and align parameters with alignment >= 16byte on stack
6358         in 32bit.  Warn alignment change.
6359
6360 2010-10-26  Ian Lance Taylor  <iant@google.com>
6361
6362         PR middle-end/45687
6363         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6364         offset.
6365
6366 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6367
6368         Implement opaque-enum-specifiesr for C++0x
6369         * tree.h (ENUM_IS_OPAQUE): New.
6370         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6371
6372 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6373
6374         * stor-layout.c (layout_decl): Use the field's type to
6375         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6376         * config/arm/arm.c (arm_override_options): Default to
6377         -fstrict-volatile-bitfields.
6378
6379 2010-10-25  Paul Koning  <ni1d@arrl.net>
6380
6381         * config/pdp11/pdp11.md: Add define_constants for register
6382         numbers, branch offset limits.
6383         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6384         * config/pdp11.pdp11.h: Ditto.
6385
6386 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6387
6388         * configure.ac: Use $cpu_type instead of $target to define the nop.
6389         * configure: Regenerate.
6390
6391 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6392
6393         * combine.c (try_combine): If insns need to be kept around, check that
6394         they can be copied in the merged instruction.
6395
6396 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6397
6398         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6399         has been modified.
6400         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6401         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6402         it has been modified.
6403
6404 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6405
6406         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6407
6408 2010-10-24  Paul Koning  <ni1d@arrl.net>
6409
6410         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6411         * config/pdp11/pdp11.c (output_jump): Ditto.
6412
6413 2010-10-24  Ian Lance Taylor  <iant@google.com>
6414
6415         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6416
6417 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6418
6419         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6420         least one insn with a locus corresponding to an edge's goto_locus,
6421         disregard non-fallthru edges to the exit block and merge the blocks
6422         created for the same goto_locus.
6423
6424 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6425
6426         * gcc.c (n_switches_alloc_debug_check): New.
6427         (set_option_handlers): New.
6428         (process_command): Use set_option_handlers.
6429         (do_self_spec): Pass spec-generated options through option handlers.
6430         (main): Also save and restore n_switches_alloc when swapping
6431         switch arrays.
6432
6433 2010-10-23  Richard Henderson  <rth@redhat.com>
6434
6435         PR target/46144
6436         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6437         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6438         Honor matching operands when splitting to XOR.
6439
6440 2010-10-23  Ian Lance Taylor  <iant@google.com>
6441
6442         * tree-vrp.c (extract_range_from_binary_expr): If
6443         flag_non_call_exceptions don't eliminate division by zero.
6444         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6445
6446 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6447
6448         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6449         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6450         __ORDER_PDP_ENDIAN__.
6451         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6452         (struct DWstruct): Define based on __BYTE_ORDER__.
6453         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6454         (struct INTstruct): Define based on __BYTE_ORDER__.
6455         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6456         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6457         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6458         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6459         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6460         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6461         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6462         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6463         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6464         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6465         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6466         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6467         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6468         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6469         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6470         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6471         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6472         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6473         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6474         * doc/tm.texi: Regenerate.
6475         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6476         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6477
6478 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6479
6480         PR rtl-optimization/37360
6481         * config/mips/mips.c (cached_can_issue_more): New local variable.
6482         (mips_sched_reorder_1): New.
6483         (mips_sched_reorder): Use mips_sched_reorder_1.
6484         (mips_sched_reorder2): New.
6485         (mips_variable_issue): Set cached_can_issue_more.
6486         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6487         instead of mips_sched_reorder.
6488
6489         Revert:
6490         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6491         PR rtl-optimization/37360
6492         * haifa-sched.c (max_issue): Do not assert that we never issue more
6493         insns than issue_rate.  Add comment.
6494
6495 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6496
6497         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6498         location info of the expression.
6499
6500 2010-10-22  DJ Delorie  <dj@redhat.com>
6501
6502         * doc/extend.texi (Named Address Spaces): Document the M32C named
6503         address space.
6504
6505         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6506         __far address space.
6507         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6508         "__far" address space for R8C and M16C processor variants.
6509         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6510         (far_addr_space_p): New.
6511         (encode_pattern_1): Add sign and zero extend support.
6512         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6513         (m32c_extra_constraint_p2): Add SF constraint.
6514         (m32c_legitimate_address_p): Support __far addresses.
6515         (m32c_addr_space_pointer_mode): New.
6516         (m32c_addr_space_address_mode): New.
6517         (m32c_addr_space_legitimate_address_p): New.
6518         (m32c_addr_space_legitimize_address): New.
6519         (m32c_addr_space_subset_p): New.
6520         (m32c_addr_space_convert): New.
6521         (conversions): Add __far operand patterns.
6522         (m32c_prepare_move): Force constants into registers for __far moves.
6523         (m32c_split_move): __far moves are always split.
6524         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6525         * config/m32c/mov.md (mov<mode>_far_op1): New.
6526         (mov<mode>_far_op2): New.
6527         (movqi_op): Add __far (SF) support.
6528         (movhi_op): Likewise.
6529         (movsi_splittable): Split A1A0 also.
6530
6531 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6532             Andrew Pinski  <pinskia@gmail.com>
6533
6534         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6535         * doc/extend.texi: New paragraph
6536
6537 2010-10-22  Paul Koning  <ni1d@arrl.net>
6538
6539         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6540
6541 2010-10-22  DJ Delorie  <dj@redhat.com>
6542
6543         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6544
6545 2010-10-22  Paul Koning  <ni1d@arrl.net>
6546
6547         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6548
6549 2010-10-22  Richard Henderson  <rth@redhat.com>
6550
6551         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6552         cases for __builtin_fma and __builtin_fmaf.
6553
6554 2010-10-22  Richard Henderson  <rth@redhat.com>
6555
6556         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6557         NEG+USE for vectors as well.
6558         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6559         and splitter.
6560
6561 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6562
6563         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6564         SWITCH_CURTAILS_COMPILATION): Remove.
6565         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6566         * doc/tm.texi: Regenerate.
6567         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6568
6569 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6570
6571         * config/i386/bdver1.md: New file.
6572         * config/i386/i386.md (include "bdver1.md"): Invoke the
6573         pipeline description for bdver1.
6574         (x86_sahf_1): Add "bdver1_decode" attribute.
6575         (*cmpfp_i_mixed): Likewise.
6576         (*cmpfp_i_sse): Likewise.
6577         (*cmpfp_i_i387): Likewise.
6578         (*cmpfp_iu_mixed): Likewise.
6579         (*cmpfp_iu_sse): Likewise.
6580         (*cmpfp_iu_387): Likewise.
6581         (*swap<mode>,*swap<mode>_1): Likewise.
6582         (fixuns_trunc<mode>hi2): Likewise.
6583         (fix_trunc<mode>si_sse): Likewise.
6584         (x86_fnstcw_1): Likewise.
6585         (x86_fldcw_1): Likewise.
6586         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6587         (*floatsi<mode>2_vector_mixed): Likewise.
6588         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6589         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6590         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6591         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6592         (*floatsi<mode>2_vector_sse): Likewise.
6593         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6594         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6595         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6596         (*mul<mode>3_1): Likewise.
6597         (*mulsi3_1_zext): Likewise.
6598         (*mulhi3_1): Likewise.
6599         (*mulqi3_1): Likewise.
6600         (*<u>mul<mode><dwi>3_1): Likewise.
6601         (*<u>mulqihi3_1): Likewise.
6602         (*<s>muldi3_highpart_1): Likewise.
6603         (*<s>mulsi3_highpart_1): Likewise.
6604         (*<s>mulsi3_highpart_zext): Likewise.
6605         (x86_64_shld): Likewise.
6606         (x86_shld): Likewise.
6607         (x86_64_shrd): Likewise.
6608         (x86_shrd): Likewise.
6609         (sqrtxf2): Likewise.
6610         (sqrt_extend<mode>xf2_i387): Likewise.
6611         (*sqrt<mode>2_sse): Likewise.
6612         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6613         (sse_cvtsi2ssq): Likewise.
6614         (sse_cvtss2si): Likewise.
6615         (sse_cvtss2si_2): Likewise.
6616         (sse_cvtss2siq): Likewise.
6617         (sse_cvtss2siq_2): Likewise.
6618         (sse_cvttss2si): Likewise.
6619         (sse_cvttss2siq): Likewise.
6620         (sse2_cvtpi2pd): Likewise.
6621         (sse2_cvttpd2pi): Likewise.
6622         (sse2_cvtsi2sd): Likewise.
6623         (sse2_cvtsi2sdq): Likewise.
6624         (sse2_cvtsd2si): Likewise.
6625         (sse2_cvtsd2si_2): Likewise.
6626         (sse2_cvtsd2siq): Likewise.
6627         (sse2_cvtsd2siq_2): Likewise.
6628         (sse2_cvttsd2si): Likewise.
6629         (sse2_cvttsd2siq): Likewise.
6630         (*sse2_cvtpd2dq): Likewise.
6631         (*sse2_cvttpd2dq): Likewise.
6632         (sse2_cvtsd2ss): Likewise.
6633         (sse2_cvtss2sd): Likewise.
6634         (*sse2_cvtpd2ps): Likewise.
6635         (sse2_cvtps2pd): Likewise.
6636
6637 2010-10-22  Richard Guenther  <rguenther@suse.de>
6638
6639         PR middle-end/46137
6640         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6641         remove the virtual operands if they are not needed.
6642
6643 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6644
6645         * config/i386/i386.c (processor_costs bdver1_cost): Update
6646         insn costs and architectural parameters for bdver1.
6647
6648 2010-10-22  Richard Guenther  <rguenther@suse.de>
6649
6650         * gimple.h (gimple_register_canonical_type): Declare.
6651         * gimple.c (gimple_canonical_types): New global hashtable.
6652         (struct gimple_type_leader_entry_s): New type.
6653         (gimple_type_leader): New global cache.
6654         (gimple_lookup_type_leader): New function.
6655         (gtc_visit): Query the proper cache.
6656         (gimple_types_compatible_p): Likewise.
6657         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6658         (gimple_canonical_type_eq): New function.
6659         (gimple_register_canonical_type): Likewise.
6660         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6661         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6662         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6663         gimple_types_compatible_p for LTO.
6664
6665 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6666
6667         PR target/46098
6668         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6669         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6670         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6671         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6672         (<sse>_movu<ssemodesuffix>): New expander.
6673         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6674         (avx_movdqu<avxmodesuffix>): New expander.
6675         (*sse2_movdqu): Rename from sse2_movdqu.
6676         (sse2_movdqu): New expander.
6677
6678 2010-10-22  Richard Guenther  <rguenther@suse.de>
6679
6680         PR tree-optimization/45720
6681         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6682         Handle negative step.
6683         (vect_enhance_data_refs_alignment): Likewise.
6684         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6685         (vect_create_cond_for_align_checks): Likewise.
6686         (vect_create_cond_for_alias_checks): Likewise.
6687
6688 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6689
6690         PR tree-optimization/46126
6691         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6692         vectorizable_shift in case of basic block vectorization.
6693
6694 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6695
6696         * target.h (enum opt_levels, struct default_options): New.
6697         * target.def (handle_ofast): Remove hook.
6698         (target_option.optimization): Change to
6699         target_option.optimization_table.
6700         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6701         TARGET_OPTION_OPTIMIZATION_TABLE.
6702         (CAN_DEBUG_WITHOUT_FP): Remove.
6703         * doc/tm.texi: Regenerate.
6704         * opts.c (maybe_default_option, maybe_default_options,
6705         default_options_table): New.
6706         (default_options_optimization): Take extra parameters.  Don't
6707         assert that global_options and global_options_set are in use.  Use
6708         maybe_default_options.
6709         (decode_options): Pass extra parameters to
6710         default_options_optimization.
6711         * common.opt (falign-loops): Use value 0 with Var.
6712         (frerun-cse-after-loop, ftree-ter): Remove Init.
6713         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6714         TARGET_OPTION_OPTIMIZATION): Remove.
6715         * targhooks.c (empty_optimization_table): New.
6716         * targhooks.h (empty_optimization_table): Declare.
6717         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6718         * config/alpha/alpha.c (alpha_option_optimization_table,
6719         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6720         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6721         * config/arm/arm.c (arm_option_optimization: Change to
6722         arm_option_optimization_table.
6723         (TARGET_OPTION_OPTIMIZATION): Change to
6724         TARGET_OPTION_OPTIMIZATION_TABLE.
6725         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6726         * config/avr/avr.c (avr_option_optimization_table,
6727         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6728         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6729         * config/cris/cris.c (cris_option_optimization): Change to
6730         cris_option_optimization_table.
6731         (TARGET_OPTION_OPTIMIZATION): Change to
6732         TARGET_OPTION_OPTIMIZATION_TABLE.
6733         * config/crx/crx.c (crx_option_optimization): Change to
6734         crx_option_optimization_table.
6735         (TARGET_OPTION_OPTIMIZATION): Change to
6736         TARGET_OPTION_OPTIMIZATION_TABLE.
6737         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6738         * config/fr30/fr30.c (fr30_option_optimization_table,
6739         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6740         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6741         * config/frv/frv.c (frv_option_optimization_table,
6742         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6743         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6744         * config/h8300/h8300.c (h8300_option_optimization): Change to
6745         h8300_option_optimization_table.
6746         (TARGET_OPTION_OPTIMIZATION): Change to
6747         TARGET_OPTION_OPTIMIZATION_TABLE.
6748         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6749         * config/i386/i386.c (ix86_option_optimization): Change to
6750         ix86_option_optimization_table.
6751         (TARGET_OPTION_OPTIMIZATION): Change to
6752         TARGET_OPTION_OPTIMIZATION_TABLE.
6753         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6754         as initializer.
6755         * config/ia64/ia64.c (ia64_option_optimization): Change to
6756         ia64_option_optimization_table.
6757         (TARGET_OPTION_OPTIMIZATION): Change to
6758         TARGET_OPTION_OPTIMIZATION_TABLE.
6759         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6760         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6761         initializer.
6762         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6763         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6764         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6765         * config/lm32/lm32.c (lm32_option_optimization_table,
6766         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6767         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6768         * config/m32r/m32r.c (m32r_option_optimization): Change to
6769         m32r_option_optimization_table.
6770         (TARGET_OPTION_OPTIMIZATION): Change to
6771         TARGET_OPTION_OPTIMIZATION_TABLE.
6772         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6773         CAN_DEBUG_WITHOUT_FP): Remove.
6774         * config/mcore/mcore.c (mcore_option_optimization): Change to
6775         mcore_option_optimization_table.
6776         (TARGET_OPTION_OPTIMIZATION): Change to
6777         TARGET_OPTION_OPTIMIZATION_TABLE.
6778         * config/mep/mep.c (mep_option_optimization): Change to
6779         mep_option_optimization_table.
6780         (TARGET_OPTION_OPTIMIZATION): Change to
6781         TARGET_OPTION_OPTIMIZATION_TABLE.
6782         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6783         * config/microblaze/microblaze.c
6784         (microblaze_option_optimization_table,
6785         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6786         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6787         * config/mips/mips.c (mips_option_optimization_table,
6788         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6789         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6790         * config/mmix/mmix.c (mmix_option_optimization): Change to
6791         mmix_option_optimization_table.
6792         (TARGET_OPTION_OPTIMIZATION): Change to
6793         TARGET_OPTION_OPTIMIZATION_TABLE.
6794         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6795         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6796         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6797         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6798         * config/pa/pa.c (pa_option_optimization_table,
6799         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6800         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6801         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6802         pdp11_option_optimization_table.
6803         (TARGET_OPTION_OPTIMIZATION): Change to
6804         TARGET_OPTION_OPTIMIZATION_TABLE.
6805         * config/picochip/picochip.c (picochip_option_optimization_table,
6806         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6807         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6808         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6809         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6810         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6811         * config/rx/rx.c (rx_option_optimization_table,
6812         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6813         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6814         * config/s390/s390.c (s390_option_optimization): Change to
6815         s390_option_optimization_table.
6816         (s390_option_override): Update comment.
6817         (TARGET_OPTION_OPTIMIZATION): Change to
6818         TARGET_OPTION_OPTIMIZATION_TABLE.
6819         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6820         * config/score/score.c (score_option_optimization_table,
6821         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6822         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6823         * config/sh/sh.c (sh_option_optimization): Change to
6824         sh_option_optimization_table.
6825         (TARGET_OPTION_OPTIMIZATION): Change to
6826         TARGET_OPTION_OPTIMIZATION_TABLE.
6827         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6828         (sh_option_override, expand_block_move, multcosts, find_barrier,
6829         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6830         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6831         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6832         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6833         instead of TARGET_SMALLCODE.
6834         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6835         * config/sparc/sparc.c (sparc_option_optimization_table,
6836         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6837         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6838         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6839         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6840         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6841         * config/v850/v850.c (v850_option_optimization): Change to
6842         v850_option_optimization_table.
6843         (TARGET_OPTION_OPTIMIZATION): Change to
6844         TARGET_OPTION_OPTIMIZATION_TABLE.
6845         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6846         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6847         xtensa_option_optimization_table.
6848         (TARGET_OPTION_OPTIMIZATION): Change to
6849         TARGET_OPTION_OPTIMIZATION_TABLE.
6850         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6851
6852 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6853
6854         Based on the CFString implementation in FSF apple/trunk branch.
6855
6856         * target.def (objc_construct_string): New Hook.
6857         * doc/tm.texi (objc_construct_string): Document.
6858         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6859         * config/t-darwin: Amend build rules for darwin.o.
6860         * config/darwin.opt: Add cfstrings flags.
6861         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6862         (darwin_objc_construct_string): New.
6863         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6864         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6865         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6866         (darwin_fold_builtin): Likewise.
6867         (darwin_build_constant_cfstring): Likewise.
6868         (darwin_objc_construct_string): Likewise.
6869         (darwin_cfstring_p): Likewise.
6870         (darwin_enter_string_into_cfstring_table): Likewise.
6871         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6872         * config/darwin.c (darwin_running_cxx): New var.
6873         (machopic_select_section): Return cfstring_constant_object_section.
6874         (darwin_override_options): Set darwin_running_cxx.
6875         (add_builtin_field_decl): New.
6876         (darwin_init_cfstring_builtins): New.
6877         (darwin_build_constant_cfstring): New.
6878         (darwin_fold_builtin): New.
6879         (cfstring_hash): New.
6880         (cfstring_eq): New.
6881         (darwin_enter_string_into_cfstring_table): New.
6882         * config/darwin-sections.def (cfstring_constant_object_section): New.
6883         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6884         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6885
6886 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6887
6888         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6889         TYPE_STUB_DECL instead of TREE_CHAIN.
6890         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6891         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6892         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6893         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6894         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6895         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6896         Likewise.
6897         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6898
6899 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6900
6901         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6902         (copy_blkmode_from_reg): Likewise.
6903         (read_complex_part): Likewise.
6904         (expand_expr_real_1): Calculate packedp and pass it to
6905         extract_bit_field.
6906         * expr.h (extract_bit_field): Update declaration.
6907         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6908         to extract_bit_field.
6909         * expmed.c (extract_fixed_bit_field): Update calls to
6910         extract_fixed_bit_field.
6911         (store_split_bit_field): Likewise.
6912         (extract_bit_field_1): Add new argument packedp.
6913         (extract_bit_field): Add new argument packedp.
6914         (extract_fixed_bit_field): Add new argument packedp and let
6915         packed attribute override volatile.
6916         * stmt.c (expand_return): Update call to extract_bit_field.
6917
6918 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6919
6920         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6921
6922 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6923
6924         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6925         of gcc_checking_assert.
6926         * sel-sched.c (code_motion_process_successors): Likewise.
6927
6928 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6929
6930         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6931         when stopping because of a different locus on edge or insn.
6932         (try_optimize_cfg): Add comment.
6933         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6934         block is a forwarder block, propagate locus on the edge.
6935         (cfg_layout_merge_blocks): Likewise.
6936
6937 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6938
6939         PR target/45946
6940         * config/i386/i386.md (*pushti2): New insn pattern.
6941         (pushti2 splitter): New insn splitter.
6942         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6943         DWI mode iterator.
6944
6945 2010-10-21  Paul Koning  <ni1d@arrl.net>
6946
6947         * config/pdp11/pdp11-protos.md (arith_operand,
6948         const_immediate_operand, expand_shift_operand,
6949         immediate15_operand): Delete
6950         * config/pdp11/pdp11.c: Ditto.
6951         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6952         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6953         EXTRA_CONSTRAINT): Delete.
6954         * config/pdp11/pdp11.md (various): Use standard constraints
6955         instead of removed ones.
6956         * config/pdp11/constraints.md: New file.
6957         * config/pdp11/predicates.md: New file.
6958
6959 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6960
6961         PR c/45834
6962         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6963         (may_alias_p): Ditto.
6964
6965 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6966
6967         PR tree-optimization/45875
6968         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6969
6970 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6971
6972         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6973         variables.
6974         (create_new_def_for): Likewise.
6975
6976 2010-10-21  Nick Clifton  <nickc@redhat.com>
6977
6978         * config/mn10300/mn10300.c: Fold code to 80-character width.
6979         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6980         MEM, CONST_INT and CONST_DOUBLE.
6981         (targetm): Move initialization to end of file.
6982         (print_operand): Rename to mn10300_print_operand.
6983         (print_operand_address): Rename to mn10300_print_operand_address.
6984         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6985         (expand_prologue): Rename to mn10300_expand_prologue.
6986         (expand_epilogue): Rename to mn10300_expand_epilogue.
6987         (initial_offset): Rename to mn10300_initial_offset.
6988         (function_arg): Rename to mn10300_function_arg.
6989         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6990         (symbolic_operand): Rename to mn10300_symbolic_operand.
6991         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6992         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6993         * config/mn10300/mn10300-protos.h: Update prototypes.
6994         * config/mn10300/mn10300.h: Fold code to 80-character width.
6995         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6996         MEM, CONST_INT and CONST_DOUBLE.
6997         (CPP_SPEC): Move to...
6998         (TARGET_CPU_CPP_BUILTINS): ... here.
6999         * config/mn10300/mn10300.md: Fold code to 80-character width.
7000         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7001         MEM, CONST_INT and CONST_DOUBLE.
7002
7003 2010-10-21  Ira Rosen  <irar@il.ibm.com>
7004
7005         PR tree-optimization/46049
7006         PR tree-optimization/46052
7007         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
7008         (vect_get_slp_defs): Add arguments.
7009         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
7010         operands to vect_get_slp_defs.
7011         (vectorizable_reduction): Fix comment, pass scalar operands to
7012         vect_get_slp_defs.
7013         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
7014         type to determine number of units in the created vector.
7015         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
7016         (vectorizable_conversion): Fix comment.
7017         (vectorizable_shift): New function.
7018         (vectorizable_operation): Move code that handles shifts to
7019         vectorizable_shift.
7020         (vectorizable_type_demotion): Fix comment, pass scalar operands to
7021         vect_get_slp_defs.
7022         (vectorizable_type_promotion, vectorizable_store): Likewise.
7023         (vectorizable_condition): Fix comment.
7024         (vect_analyze_stmt): Call vectorizable_shift.
7025         (vect_transform_stmt): Likewise.
7026         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
7027         Use it as the operand to create vectors for, except reduction
7028         initial definition and store.  Use operands type.
7029         (vect_get_slp_defs): Add new arguments.  Pass them to
7030          vect_get_constant_vectors.
7031
7032 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7033
7034         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
7035         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
7036         * cfghooks.c (fixup_reorder_chain): Likewise.
7037         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
7038         * cgraph.c (cgraph_add_thunk): Likewise.
7039         (cgraph_create_edge_1): Likewise.
7040         (cgraph_create_virtual_clone): Likewise.
7041         * ddg.c (add_cross_iteration_register_deps): Likewise.
7042         * dwarf2out.c (modified_type_die): Likewise.
7043         * emit-rtl.c (set_mem_alias_set): Likewise.
7044         * ggc-zone.c (zone_allocate_marks): Likewise.
7045         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
7046         * gimple.c (iterative_hash_gimple_type): Likewise.
7047         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
7048         (create_single_exit_edge): Likewise.
7049         * haifa-sched.c (choose_ready): Likewise.
7050         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7051         * passes.c (execute_todo): Likewise.
7052         * sched-ebb.c (begin_schedule_ready): Likewise.
7053         * sel-sched.c (code_motion_process_successors): Likewise.
7054         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
7055         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
7056         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
7057         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
7058         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
7059         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
7060         (ssa_conflicts_add): Likewise.
7061         * tree-ssa-copy.c (replace_exp): Likewise.
7062         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
7063         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
7064         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7065         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
7066         (compute_antic): Likewise.
7067         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
7068         (add_dependence): Likewise.
7069         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
7070         * tree-vrp.c (supports_overflow_infinity): Likewise.
7071         (make_overflow_infinity, negative_overflow_infinity): Likewise.
7072         (avoid_overflow_infinity, register_new_assert_for): Likewise.
7073         (process_assert_insertions_for): Likewise.
7074         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
7075         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
7076         (intersect_loc_chains, variable_merge_over_cur): Likewise.
7077
7078 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7079
7080         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
7081         * reload1.c (has_nonexceptional_receiver): Likewise.
7082         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
7083         (create_new_def_for): Likewise.
7084         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7085         (merge_phi_nodes): Likewise.
7086         (has_abnormal_incoming_edge_p): Delete.
7087
7088 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7089
7090         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
7091
7092 2010-10-21  Richard Guenther  <rguenther@suse.de>
7093             Michael Matz  <matz@suse.de>
7094
7095         PR tree-optimization/45764
7096         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7097         Adjust initial misalignment for negative DR_STEP.
7098         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
7099         do not have the same alignment over the whole iteration domain.
7100
7101 2010-10-21  Richard Guenther  <rguenther@suse.de>
7102
7103         PR tree-optimization/46111
7104         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
7105
7106 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7107
7108         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
7109
7110 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7111
7112         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
7113         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
7114
7115 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7116
7117         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
7118         signal_frame.
7119         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
7120
7121 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7122
7123         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
7124         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
7125
7126 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7127
7128         * basic-block.h (find_fallthru_edge): Define.
7129         * cfgcleanup.c (merge_blocks_move): Use it.
7130         (try_crossjump_bb): Likewise.
7131         * cfglayout.c (fixup_reorder_chains): Likewise.
7132         (fixup_fallthru_exit_predecessor): Likewise.
7133         * cfgrtl.c (rtl_split_edge): Likewise.
7134         (rtl_verify_flow_info): Likewise.
7135         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7136         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
7137         * ifcvt.c (block_fallthru): Likewise.
7138         * reload1.c (fixup_abnormal_edges): Likewise.
7139         * sched-ebb.c (being_schedule_ready): Likewise.
7140         (schedule_ebb): Likwise.
7141         * sched-rgn.c (find_single_block_region): Likewise.
7142         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
7143         * tree-complex.c (expand_complex_move): Likewise.
7144         * sched-int.h (find_fallthru_edge): Rename to...
7145         (find_fallthru_edge_from): ...this.
7146         * haifa-sched.c (find_fallthru_edge): Rename to...
7147         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
7148         (init_before_recovery): Call find_fallthru_edge_from.
7149         * sel-sched-ir.c (merge_fences): Likewise.
7150         * sel-sched.c (in_fallthru_bb_p): Likewise.
7151         (move_cond_jump): Likewise.
7152
7153 2010-10-20  Paul Koning  <ni1d@arrl.net>
7154
7155         * config/pdp11/pdp11.md (various): Fix conditions on a number of
7156         insn to check for target 11/40 or higher.
7157
7158 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7159
7160         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
7161         bool instead of a tree.
7162         (c_parser_objc_method_decl): Added bool argument.  Updated call to
7163         objc_build_method_signature.
7164         (c_parser_objc_method_definition): Do not call
7165         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
7166         c_parser_objc_method_decl and objc_start_method_definition.
7167         (c_parser_objc_methodproto): Do not call objc_set_method_type.
7168         Updated calls to c_parser_objc_method_type,
7169         c_parser_objc_method_decl and objc_add_method_declaration.
7170
7171 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
7172
7173         PR tree-optimization/45919
7174         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
7175         array members.
7176
7177         PR tree-optimization/46066
7178         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
7179         instead of gsi_last_bb.
7180
7181 2010-10-20  DJ Delorie  <dj@redhat.com>
7182
7183         * config/m32c/m32c.c (m32c_option_override): Always disable
7184         function-cse in 16-bit mode.  Indirect calls are always worse than
7185         direct calls as there is no 16-bit indirect call opcode.
7186         (m32c_override_options_after_change): New, likewise.
7187
7188 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7189
7190         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
7191         emitting the conditional move in the inner mode of the SUBREG.
7192
7193 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
7194
7195         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
7196         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
7197         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7198         (ia64_preferred_reload_class): Make static.  Change rclass argument
7199         and result types from enum reg_class to reg_class_t.
7200
7201 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
7202
7203         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
7204         call for single operand expression.
7205
7206 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7207
7208         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
7209         if there is a call statement to pure or const function in the block.
7210
7211 2010-10-20  Paul Koning  <pkoning@equallogic.com>
7212
7213         Fix several build errors for pdp11 target.
7214         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
7215         (cbranchdf4): Conditional on TARGET_FPU.
7216         (movdf): Ditto; correct alternatives check.
7217         (movmemhi): Fix predicate and constraint.
7218         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
7219
7220 2010-10-20  Richard Guenther  <rguenther@suse.de>
7221
7222         PR lto/45667
7223         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
7224         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
7225         (verify_gimple_assign_single): Disable ADDR_EXPR type check
7226         when in LTO.
7227
7228 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
7229
7230         PR fortran/42169
7231         * ira-emit.c (store_can_be_removed_p): Return false instead of
7232         gcc_unreachable.
7233
7234 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
7235
7236         * fold-const.c (fold_binary_loc): New transformation.
7237
7238 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7239
7240         PR target/46085
7241         * config/i386/sse.md (reduc_splus_v8sf): Updated.
7242         (reduc_splus_v4df): Likewise.
7243
7244 2010-10-20  Richard Guenther  <rguenther@suse.de>
7245
7246         PR tree-optimization/45860
7247         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
7248         conditional store replacement for non-register type stores.
7249
7250 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7251
7252         * stor-layout.c (skip_simple_constant_arithmetic): New function.
7253         (self_referential_size): Use it instead of skip_simple_arithmetic.
7254
7255 2010-10-20  Olivier Hainque  <hainque@adacore.com>
7256
7257         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
7258         If the current function calls eh_return, claim live all registers
7259         that we need to check for liveness otherwise.
7260
7261 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7262
7263         * c-decl.c (c_write_global_declarations): Call
7264         objc_write_global_declarations when compiling Objective-C.
7265         * c-lang.c (finish_file): Removed.
7266
7267 2010-10-19  DJ Delorie  <dj@redhat.com>
7268
7269         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
7270         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
7271         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
7272         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
7273         * doc/tm.texi: Regenerate.
7274         * targhooks.h (default_label_align_after_barrier_max_skip,
7275         default_loop_align_max_skip, default_label_align_max_skip,
7276         default_jump_align_max_skip): Declare.
7277         * target.def (label_align_after_barrier_max_skip): New.
7278         (loop_align_max_skip): New.
7279         (label_align_max_skip): New.
7280         (jump_align_max_skip): New.
7281         * system.h (poison): Add those macros to the list.
7282         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
7283         (LOOP_ALIGN_MAX_SKIP): Remove.
7284         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
7285         (JUMP_ALIGN_MAX_SKIP): Remove.
7286         (default_label_align_after_barrier_max_skip): New.
7287         (default_loop_align_max_skip): New.
7288         (default_label_align_max_skip): New.
7289         (default_jump_align_max_skip): New.
7290         (compute_alignments): Use the new hooks.
7291         (shorten_branches): Likewise.
7292
7293 2010-10-19  Richard Henderson  <rth@redhat.com>
7294
7295         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7296         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7297         (fma4i_fmadd_<mode>): New.
7298         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7299         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7300         standard fma patterns.
7301         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7302         enable for FMA.
7303         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7304         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7305         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7306
7307 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7308
7309         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7310         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7311
7312 2010-10-19  Richard Henderson  <rth@redhat.com>
7313
7314         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7315         (fmadf4, *fmsdf4, *nfmadf4): New.
7316         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7317
7318 2010-10-19  Michael Eager  <eager@eagercon.com>
7319
7320         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7321         Use sjlj unwind info for exceptions.
7322
7323 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7324
7325         PR fortran/43414
7326         * dwarf2out.c (add_calling_convention_attribute): Flag main
7327         Fortran subroutine with DW_AT_main_subprogram.
7328
7329 2010-10-19  Nick Clifton  <nickc@redhat.com>
7330
7331         * config/rx/rx.c (rx_function_value): Small integer types are
7332         promoted to SImode.
7333         (rx_promote_function_mode): New function.
7334         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7335
7336 2010-10-19  Nick Clifton  <nickc@redhat.com>
7337
7338         * config/mep/mep.c (mep_print_operand): Use
7339         targetm.strip_name_encoding.
7340         (mep_output_aligned_common): Likewise.
7341
7342 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7343
7344         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7345
7346 2010-10-18  Richard Henderson  <rth@redhat.com>
7347
7348         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7349         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7350
7351 2010-10-18  Richard Henderson  <rth@redhat.com>
7352
7353         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7354         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7355         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7356         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7357         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7358         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7359         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7360         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7361         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7362         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7363         (bdesc_multi_arg): Remove the corresponding builtins.
7364         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7365         (UNSPEC_FMA4_FMSUBADD): Remove.
7366         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7367         * config/i386/sse.md (FMA4MODEF4): Remove.
7368         (FMAMODE): Add.
7369         (fma<mode>4): New expander.
7370         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7371         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7372         (*fma4i_fmsub_<mode>): Similarly.
7373         (*fma4i_fnmadd_<mode>): Similarly.
7374         (*fma4i_fnmsub_<mode>): Similarly.
7375         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7376         with the first operand.
7377         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7378         of explicit arithmetic.  Macroize with AVXMODEF2P.
7379         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7380         (xop_frcz<mode>2): Macroize with FMAMODE.
7381         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7382         the first operand.
7383         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7384         extra negations.
7385         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7386         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7387         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7388         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7389         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7390         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7391         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7392         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7393
7394 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7395
7396         PR rtl-optimization/45966
7397         * combine.c (try_combine): If added_sets_2, deal with the case
7398         where i0 feeds i1 and i1 feeds i2.
7399
7400 2010-10-18  Jan Hubicka  <jh@suse.cz>
7401
7402         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7403         preserve flags before trying to guess on visibility.
7404         (varpool_externally_visible_p): New function.
7405         (function_and_variable_visibility): Use it.
7406
7407 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7408
7409         Implemented parsing @synthesize and @dynamic for Objective-C.
7410         * c-parser.c (c_parser_external_declaration): Recognize
7411         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7412         (c_parser_objc_at_synthesize_declaration): New.
7413         (c_parser_objc_at_dynamic_declaration): New.
7414
7415 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7416
7417         * c-parser.c (c_parser_objc_class_declaration): After finding an
7418         error, parse the whole declaration then reset parser->error.
7419
7420 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7421
7422         PR target/46041
7423         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7424         * builtins.c (mode_has_fma): Ditto.
7425
7426 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7427
7428         PR target/36898
7429         PR middle-end/43760
7430         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7431
7432 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7433
7434         * config/i386/i386.c (ix86_option_override_internal): Define and
7435         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7436         default.
7437         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7438         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7439
7440 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7441
7442         Merge from 'apple/trunk' branch on FSF servers.
7443         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7444         following Objective-C change:
7445
7446         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7447
7448         Radar 4301047
7449         * c-parse.in (objc_quals): Build objc qualifier list same way
7450         as gcc-3.3
7451
7452 2010-10-18  Jan Hubicka  <jh@suse.cz>
7453
7454         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7455         function_and_variable_visibility): Revert accidental commit.
7456
7457 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7458
7459         Merge from 'apple/trunk' branch on FSF servers.
7460         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7461         the following Objective-C change:
7462
7463         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7464
7465         Radar 4204796
7466         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7467         'volatilized' type used in a typeof operator.
7468
7469 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7470
7471         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7472         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7473         rewrite modelled on gimple_purge_dead_eh_edges.
7474         (gimple_purge_all_dead_abnormal_call_edges): New function.
7475         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7476         directly instead of through gimple_purge_dead_abnormal_call_edges.
7477         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7478         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7479         removed AB side-effects from one of its statements.
7480         (init_pre): Initialize need_ab_cleanup.
7481         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7482         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7483
7484 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7485
7486         PR c/46015
7487         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7488         on computed goto argument.
7489
7490 2010-10-18  Richard Guenther  <rguenther@suse.de>
7491
7492         PR tree-optimization/45967
7493         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7494         (could_have_pointers): Likewise.
7495         (handle_rhs_call, handle_const_call, handle_pure_call,
7496         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7497         (struct fieldoff): Add must_have_pointers field.
7498         (type_must_have_pointers): New function.
7499         (field_must_have_pointers): Likewise.
7500         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7501         Adjust field merging.
7502         (create_function_info_for): May-have-pointers of varinfo is
7503         almost always true.
7504         (create_variable_info_for_1): Likewise.
7505
7506 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7507
7508         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7509         of operands to vec_concat.
7510
7511 2010-10-18  Richard Guenther  <rguenther@suse.de>
7512
7513         PR lto/44950
7514         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7515         also clear references to entries of it.
7516
7517 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7518
7519         PR other/43448
7520         * gccbug.in: Remove.
7521         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7522         (doc, distclean, install-common): Remove reference to gccbug.
7523         * configure: Regenerate.
7524         * configure.ac (all_outputs): Remove gccbug.
7525         * doc/configfiles.texi: Remove references to gccbug.
7526         * doc/sourcebuild.texi: Dito.
7527
7528 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7529
7530         PR middle-end/46019
7531         * fold-const.c (fold_binary_loc): If integer_pow2p has
7532         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7533
7534 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7535             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7536
7537         * gengtype.c (verbosity_level): Add variable.
7538         (set_gc_used): Count variables for verbosity.
7539         (close_output_files): Backing up files, counting written ones
7540         verbosily.
7541         (write_types): Count emitted functions for verbosity. Added
7542         debug messages.
7543         (write_enum_defn): Count structures for verbosity. Added debug
7544         messages.
7545         (gengtype_long_options): Add "verbose" & "backupdir".
7546         (print_usage): Ditto.
7547         (main): Verbose display of parsed files.
7548
7549         * gengtype.h (verbosity_level): Add declaration.
7550
7551 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7552
7553         * gengtype.c (parse_program_options): Add allocation of
7554         plugin_files, and correct test on nb_plugin_files.
7555
7556 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7557
7558         Merge from 'apple/trunk' branch on FSF servers.
7559
7560         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7561
7562         Radar 4133425
7563         * c-decl.c (undeclared_variable): Issue diagnostic on
7564         private 'ivar' access.
7565
7566 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7567
7568         PR target/46051
7569         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7570         generated sequence to match *avx_vperm2f128<mode>_nozero.
7571         (vec_interleave_lowv4df): Ditto.
7572         (vec_interleave_highv8sf): Ditto.
7573         (vec_interleave_lowv8sf): Ditto.
7574
7575 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7576
7577         * libgcov.c (create_file_directory): Enable it for win32 case.
7578         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7579         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7580         (GCOV_PREFIX_SKIP): Likewise.
7581
7582 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7583
7584         * doc/objc.texi (GNU Objective-C runtime API): New section.
7585         (Modern GNU Objective-C runtime API): New section.
7586         (Traditional GNU Objective-C runtime API): New section.
7587         (Executing code before main): Mention that this section is
7588         specific to the GNU Objective-C runtime.
7589         (Garbage Collection): Same.
7590
7591 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7592
7593         * c-parser.c (c_parser_for_statement): Move initialization of
7594         cond and incr before if.
7595
7596 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7597
7598         * target.def (preferred_output_reload_class): New hook.
7599         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7600         * doc/tm.texi: Regenerate.
7601         * targhooks.c (default_preferred_output_reload_class): New function.
7602         * targhooks.h (default_preferred_output_reload_class): Declare.
7603         * reload.c (find_dummy_reload): Change rclass argument type from
7604         enum reg_class to reg_class_t. Change this_alternative array type
7605         from enum reg_class to reg_class_t.
7606         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7607         (push_reload): Change preferred_class variable type to reg_class_t.
7608         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7609         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7610         argument type from enum reg_class to reg_class_t. Use
7611         HARD_REGISTER_NUM_P predicate.
7612         * recog.h (reg_fits_class_p): Update prototype.
7613
7614         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7615         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7616         Remove.
7617         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7618         static. Change regclass argument and result types from enum reg_class
7619         to reg_class_t.
7620         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7621
7622 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7623
7624         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7625         visibility enum, and handle @package.
7626
7627 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7628
7629         * doc/objc.texi (What you can and what you cannot do in +load):
7630         Document that sending messages to constant string objects in +load
7631         is not guaranteed to work.
7632
7633 2010-10-16  Jan Hubicka  <jh@suse.cz>
7634
7635         PR middle-end/44206
7636         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7637         existence of refrences before removing the function.
7638
7639 2010-10-16  Jan Hubicka  <jh@suse.cz>
7640
7641         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7642         only_called_at_startup and only_called_at_exit.
7643         (cgraph_propagate_frequency): Compute only_called_at_startup and
7644         only_called_at_exit.
7645         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7646         only_called_at_exit.
7647         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7648         flags.
7649         * predict.c (compute_function_frequency): Initialize the new flags.
7650
7651 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7652
7653         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7654         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7655         on the bounds of its domain.
7656         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7657
7658 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7659
7660         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7661         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7662         * config/avr/avr.c (preferred_reload_class): Remove.
7663         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7664         * config/pa/pa.c (emit_move_sequence): Update comment
7665         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7666         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7667         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7668         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7669         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7670         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7671         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7672         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7673         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7674         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7675         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7676         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7677         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7678
7679 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7680
7681         * opts.c (set_fast_math_flags,
7682         set_unsafe_math_optimizations_flags): Make static.
7683         * toplev.h (set_fast_math_flags,
7684         set_unsafe_math_optimizations_flags): Remove prototypes.
7685
7686 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7687
7688         * config/arm/arm.c (arm_option_optimization): Set
7689         flag_section_anchors to 1 not 2.
7690         * config/i386/i386.c (ix86_option_override_internal): Check
7691         global_options_set.x_flag_zee and
7692         global_options_set.x_flag_omit_frame_pointer.
7693         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7694         flag_zee to 2.
7695         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7696         global_options_set.x_flag_omit_frame_pointer.
7697         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7698         opts->x_flag_section_anchors to 1 not 2.
7699         * config/sh/sh.c (sh_option_optimization): Don't set
7700         flag_schedule_insns to 2.
7701         (sh_option_override): Check
7702         global_options_set.x_flag_schedule_insns.
7703         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7704
7705 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7706
7707         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7708         as cross.
7709         * configure: Regenerated.
7710
7711 2010-10-15  Xinliang David Li  <davidxl@google.com>
7712
7713         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7714         function.
7715         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7716         into a recursive function.
7717
7718 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7719
7720         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7721         (*movdfcc_1): ditto.
7722
7723 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7724
7725         * target.def (target_option.init_struct): New hook.
7726         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7727         * doc/tm.texi: Regenerate.
7728         * hooks.c (hook_void_gcc_optionsp): New.
7729         * hooks.h (hook_void_gcc_optionsp): Declare.
7730         * langhooks-def.h (lhd_init_options_struct): Remove.
7731         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7732         * langhooks.c (lhd_init_options_struct): Remove.
7733         * opts.c (init_options_struct): Also call
7734         targetm.target_option.init_struct.
7735         * config/i386/i386.c (ix86_option_init_struct,
7736         TARGET_OPTION_INIT_STRUCT): New.
7737         (ix86_option_optimization): Move some settings to
7738         ix86_option_init_struct.
7739         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7740         TARGET_OPTION_INIT_STRUCT): New.
7741         (pdp11_option_optimization): Move some settings to
7742         pdp11_option_init_struct.
7743         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7744         rs6000_option_init_struct.  Use options structure pointer.
7745         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7746         * config/s390/s390.c (s390_option_init_struct,
7747         TARGET_OPTION_INIT_STRUCT): New.
7748         (s390_option_optimization): Don't set
7749         flag_asynchronous_unwind_tables here.
7750         * config/sh/sh.c (sh_option_init_struct,
7751         TARGET_OPTION_INIT_STRUCT): New.
7752         (sh_option_optimization): Don't set flag_finite_math_only here.
7753         * config/spu/spu.c (spu_option_optimization): Replace by
7754         spu_option_optimization.  Use options structure pointer.
7755         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7756
7757 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7758
7759         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7760
7761         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7762         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7763         (Standard names): Document fma.
7764
7765         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7766         __FP_FAST_FMAF, __FP_FAST_FMAL.
7767
7768         * builitns.c (expand_builtin_mathfn_ternary): New function for
7769         expanding ternary math functions, like fma.
7770         (expand_builtin): Call it for the fma builtins.
7771
7772         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7773         ops at present.
7774
7775         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7776         vectorizable functions to support vectorizing fma.
7777
7778         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7779         Handle fma builtins.
7780
7781         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7782         (UNSPEC_VSX_MSUB): Ditto.
7783         (UNSPEC_VSX_NMADD): Ditto.
7784         (UNSPEC_VSX_NMSUB): Ditto.
7785         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7786         of UNSPEC. Renumber combiner patterns.
7787         (vsx_fmsub<mode>4*): Ditto.
7788         (vsx_fnmadd<mode>4*): Ditto.
7789         (vsx_fnmsub<mode>4*): Ditto.
7790
7791         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7792         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7793         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7794         (altivec_vmaddfp_1): Ditto.
7795         (altivec_vmaddfp_2): Ditto.
7796         (atlivec_mulv4sf3): Ditto.
7797         (altivec_vnmsubfp): Ditto.
7798         (altivec_vnmsubfp_1): Ditto.
7799         (altivec_vnmsubfp_2): Ditto.
7800         (altivec_vnmsubfp_3): Delete.
7801
7802         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7803         (fmasf4_fpr): Ditto.
7804         (fmssf4_fpr): Ditto.
7805         (fnmasf4_fpr): Ditto.
7806         (fnmssf4_fpr): Ditto.
7807         (fmadf4): Ditto.
7808         (fmadf4_fpr): Ditto.
7809         (fmsdf4_fpr): Ditto.
7810         (fnmadf4_fpr): Ditto.
7811         (fnmsdf4_fpr): Ditto.
7812
7813         * optabs.h (OTI_fma): Add fma optab.
7814         (fma_optab): Ditto.
7815
7816         * genopinit.c (optabs): Set fma optab.
7817
7818         * rtl.def (FMA): Add FMA rtl.
7819
7820         * tree.h (mode_has_fma): New function to return if MODE supports a
7821         fast multiply and add instruction.
7822         * builtins.c (mode_has_fma): Ditto.
7823
7824 2010-10-15  Jan Hubicka  <jh@suse.cz>
7825
7826         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7827         objects instead of bitmap.
7828         (produce_symtab): Likewise; output defined symbols first.
7829
7830 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7831
7832         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7833         Option Summary and Index.
7834
7835 2010-10-15  Richard Guenther  <rguenther@suse.de>
7836
7837         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7838         for automatic variables again.
7839
7840 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7841
7842         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7843         conforming to C99.
7844
7845 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7846
7847         * config/rx/rx.c (rx_option_optimization): Change to
7848         rx_override_options_after_change.  Don't change
7849         flag_lto_compression_level.  Don't check for changes to whether
7850         FPU instructions can be used.  Check and set only
7851         flag_finite_math_only, not other fast-math flags.
7852         (rx_option_override): Call rx_override_options_after_change.
7853         (TARGET_OPTION_OPTIMIZATION): Remove.
7854         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7855
7856 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7857
7858         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7859         disable section anchors for lang_hooks.name[4] != 'O'.
7860
7861 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7862
7863         * config/frv/frv.c (frv_option_optimization,
7864         TARGET_OPTION_OPTIMIZATION): Remove.
7865         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7866
7867 2010-10-15  Michael Matz  <matz@suse.de>
7868
7869         * cgraphunit.c (clone_of_p): Define unconditionally.
7870
7871 2010-10-15  Richard Guenther  <rguenther@suse.de>
7872
7873         PR lto/45957
7874         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7875
7876 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7877
7878         * ifcvt.c (find_active_insn_before): New function.
7879         (find_active_insn_after): New function.
7880         (cond_exec_process_if_block): Use new functions to replace
7881         prev_active_insn() and next_active_insn().
7882
7883 2010-10-14  Yao Qi  <yao@codesourcery.com>
7884
7885         PR target/45447
7886         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7887         va_list_name to TYPE_STUB_DECL (va_list_type).
7888
7889 2010-10-14  Jan Hubicka  <jh@suse.cz>
7890
7891         PR middle-end/45621
7892         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7893         redirected to clone, be happy.
7894         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7895         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7896         former_clone_of unconditionally.
7897
7898 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7899
7900         Merge from FSF apple 'trunk' branch.
7901         2006 Fariborz Jahanian  <fjahanian@apple.com>
7902
7903         Radars 4436866, 4505126, 4506903, 4517826
7904         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7905         (c_lex_one_token): Handle property attributes.
7906         (c_parser_external_declaration): Handle @property.
7907         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7908         @alias, @class, @end and @property objc keywords.
7909         (c_parser_objc_methodprotolist): Handle @property.
7910         (c_parser_objc_property_attrlist): New.
7911         (c_parser_objc_at_property): New.
7912         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7913         (build_modify_expr): Likewise.
7914
7915 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7916
7917         PR tree-optimization/46008
7918         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7919
7920 2010-10-14  Richard Guenther  <rguenther@suse.de>
7921
7922         PR tree-optimization/44913
7923         * tree-data-ref.c (disjoint_objects_p): Remove.
7924         (dr_may_alias_p): Simplify.  Only hand the base object to
7925         the alias-oracle.
7926         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7927         some more trees, bail out instead of asserting.
7928         (ptr_derefs_may_alias_p): Likewise.  Export.
7929         (refs_may_alias_p_1): Handle STRING_CSTs.
7930         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7931
7932 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7933
7934         PR c/45969
7935         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7936         type with excess precision for boolean operations.
7937
7938 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7939             Basile Starynkevitch  <basile@starynkevitch.net>
7940
7941         * gengtype.c:  Include getopt.h and version.h.
7942
7943         (lang_bitmap, struct outf, outf_p)
7944         (get_output_file_with_visibility, oprintf): Definitions moved to
7945         gengtype.h
7946         (output_files, header_file, srcdir, srcdir_len, this_file)
7947         (do_dump): No more static variables.
7948         (do_debug): New.
7949         (dbgprint_count_type_at): Added new function.
7950         (gengtype_long_options): New.
7951         (print_usage, print_version, parse_program_options): New.
7952         (main): Call parse_program_options, and removed old option
7953         handling code.  Added some debug output.
7954
7955         * gengtype.h:  Updated copyright year.
7956         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7957         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7958         Moved from gengtype.c to here.
7959         (do_debug, read_state_filename, write_state_filename): New variables.
7960         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7961
7962         * Makefile.in:
7963         (REVISION): Always defined.
7964         (version.o): Removed ifdef REVISION_c.
7965         (s-gtype): Pass arguments to build/gengtype program.
7966         (build/version.o): Added building rule.
7967         (build/gengtype$(build_exeext)): Added build/version.o.
7968
7969 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7970
7971         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7972         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7973         __strong macros.
7974
7975 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7976
7977         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7978         may_trap_or_fault_p instead of may_trap_p predicate.
7979         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7980         (substitute_placeholder_in_expr): Likewise.
7981         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7982         flag on MEM_REF nodes.
7983         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7984         flags on INDIRECT_REF nodes.
7985
7986 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7987
7988         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7989         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7990         (arm*-*-eabi*) <tm_file>: Likewise.
7991         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7992         (frv-*-*linux*) <tm_file>: Likewise.
7993         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7994         and associated helper macros.
7995         * config/frv/frv-abi.h: Delete.
7996
7997 2010-10-14  Richard Guenther  <rguenther@suse.de>
7998
7999         PR lto/44561
8000         * tree.def (NULLPTR_TYPE): New tree code.
8001         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
8002         * dwarf2out.c (is_base_type): Likewise.
8003         (gen_type_die_with_usage): Likewise.
8004         * sdbout.c (plain_type_1): Likewise.
8005         * tree.c (build_int_cst_wide): Likewise.
8006         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
8007
8008 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8009
8010         * params.c (params_finished): New.
8011         (add_params): Assert !params_finished.
8012         (finish_params): New.
8013         (set_param_value_internal): Take params and params_set
8014         parameters.  Assert params_finished.
8015         (set_param_value, maybe_set_param_value): Take params and
8016         params_set parameters.  Update calls to set_param_value_internal.
8017         (set_default_param_value): Assert !params_finished.  Don't use
8018         set_param_value_internal.
8019         (default_param_value, init_param_values): New.
8020         * params.h (struct param_info): Change value to default_value.
8021         Remove set.
8022         (set_param_value, maybe_set_param_value): Add params and
8023         params_set parameters.
8024         (PARAM_VALUE): Get parameters from global_options.
8025         (PARAM_SET_P): Remove.
8026         (finish_params, default_param_value, init_param_values): New.
8027         * common.opt (param_values): New Variable.
8028         * config/arm/arm.c (arm_option_override): Pass extra arguments to
8029         maybe_set_param_value.
8030         * config/i386/i386.c (ix86_option_override_internal): Pass extra
8031         arguments to maybe_set_param_value.
8032         * config/picochip/picochip.c (picochip_option_override): Pass
8033         extra arguments to maybe_set_param_value.
8034         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
8035         extra arguments to maybe_set_param_value.
8036         * config/s390/s390.c (s390_option_override): Use
8037         maybe_set_param_value instead of set_param_value.  Pass extra
8038         arguments to maybe_set_param_value.
8039         * config/sparc/sparc.c (sparc_option_override): Pass extra
8040         arguments to maybe_set_param_value.
8041         * config/spu/spu.c (spu_option_override): Pass extra arguments to
8042         maybe_set_param_value.
8043         * opts.c (handle_param): Take opts and opts_set parameters.
8044         Update call to set_param_value.
8045         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
8046         initial_loop_invariant_max_bbs_in_loop): Remove.
8047         (init_options_once): Don't set them.
8048         (init_options_struct): Initialize parameters structures.
8049         (default_options_optimization): Use default_param_value when
8050         restoring defaults.  Update calls to maybe_set_param_value.
8051         (finish_options): Update calls to maybe_set_param_value.
8052         (common_handle_option): Update calls to handle_param and
8053         set_param_value.
8054         * toplev.c (DEFPARAM): Update definition for changes to param_info.
8055         (general_init): Call finish_params.
8056
8057 2010-10-14  Nick Clifton  <nickc@redhat.com>
8058
8059         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
8060         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
8061         (FIRST_PSEUDO_REGISTER): Increase by one.
8062         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
8063         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
8064         (MODES_TIEABLE): Call mn10300_modes_tieable.
8065         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
8066         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
8067         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
8068         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
8069         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
8070         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
8071         (mn10300_cc_status_mdep): Delete.
8072         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
8073         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
8074         the combine-stack-adjust pass.
8075         (print_operand): Use the mode of the comparison operation to
8076         select the comparison suffix.
8077         (notice_update_cc): Delete.
8078         (mn10300_secondary_reload_class): Remove test for stack pointer
8079         based arithmetic.
8080         (output_tst): Rename to mn10300_output_cmp.
8081         (impossible_plus_operand): Move into predicates.md.
8082         (mn10300_legitimize_address): Make static.
8083         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
8084         constant pic operands.
8085         (mn10300_legitimate_constant_p): New function.
8086         (mn10300_case_values_threshold): Make static.
8087         (mn10300_hard_regno_mode_ok): New function.
8088         (mn10300_modes_tieable): New function.
8089         (mn10300_select_cc_mode): New function.
8090         * config/mn10300/predicates.md (impossible_plus_operand): Define.
8091         * config/mn10300/mn10300-protos.h: Tidy.
8092         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
8093         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
8094         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
8095         with clobbers or sets of CC_REG.
8096         (CC_REG): Define.
8097         (mov*): Remove use of CLR instruction.
8098         (cbranch_si4_<code>): New pattern/split.
8099         (integer_conditional_branch): New pattern.
8100         (cbranch_sf4_<code>): New pattern/split.
8101         (float_conditional_branch): New pattern.
8102         (casesi): Use addsi3 pattern instead of movsi pattern to add and
8103         move a value at the same time.
8104         (cc0 peepholes): Remove.
8105
8106 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8107
8108         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
8109         on RTX_FRAME_RELATED_P insns and the insn to which
8110         NOTE_INSN_EPILOGUE_BEG is attached.
8111         * sched-vis.c (print_value): Allow NULL value.
8112
8113 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8114
8115         PR rtl-optimization/45570
8116         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
8117         assert that we are pipelining outer loops.  Allow returning
8118         zero predecessors.
8119
8120 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8121
8122         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
8123         (tidy_control_flow): Tidy vertical space.
8124         (sel_remove_bb): New variable idx.  Use it to remember the basic
8125         block index before deleting the block.
8126         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
8127         (sel_merge_blocks): ... here.
8128         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
8129
8130 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8131
8132         * cse.c (is_dead_reg): Change into inline function that is not
8133         called through for_each_rtx.
8134         (set_live_p): Adjust caller.
8135         (insn_live_p): Don't reset DEBUG_INSNs here.
8136         (struct dead_debug_insn_data): New data.
8137         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
8138         (delete_trivially_dead_insns): If there is just one setter for the
8139         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
8140         and add DEBUG_INSN for it right before the removed setter and
8141         use the DEBUG_EXPR instead of the dead pseudo.
8142
8143 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
8144
8145         * et-forest.c (et_nca): Return NULL immediately when
8146         the dominance forest has disjoint components.
8147
8148 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
8149
8150         * ira.c (setup_class_hard_regs): Fix typo in indexing
8151         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
8152
8153 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
8154
8155         * graph.c (inbb): New variable.
8156         (start_bb): Set inbb to 1 if output is inside of a building block.
8157         (end_bb): Check if output is inside of a building block.
8158
8159 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8160
8161         PR rtl-optimization/45912
8162         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
8163         regno of registers instead of their index to compute the alignment.
8164
8165 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
8166
8167         * config/i386/i386.c (ix86_build_const_vector): Check vector
8168         mode instead of scalar mode.
8169         (ix86_build_signbit_mask): Likewise.
8170         (ix86_expand_fp_absneg_operator): Updated.
8171         (ix86_expand_copysign): Likewise.
8172         (ix86_expand_int_vcond): Likewise.
8173         (ix86_emit_swdivsf): Likewise.
8174         (ix86_sse_copysign_to_positive): Likewise.
8175         (ix86_expand_sse_fabs): Likewise.
8176         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
8177         * config/i386/sse.md (copysign<mode>3): Likewise.
8178         (sse2_cvtudq2ps): Likewise.
8179         (vec_unpacku_float_hi_v4si): Likewise.
8180         (vec_unpacku_float_lo_v4si): Likewise.
8181
8182         * config/i386/i386.c (ix86_builtins): Add
8183         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
8184         (bdesc_args): Likewise.
8185         (ix86_builtin_vectorized_function): Support
8186         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
8187         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
8188         and IX86_BUILTIN_CVTPS2DQ256.
8189         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
8190
8191         * config/i386/sse.md (STORENT_MODE): New.
8192         (VEC_FLOAT_MODE): Likewise.
8193         (VEC_EXTRACT_MODE): Likewise.
8194         (*avx_cvtdq2pd256_2): Likewise.
8195         (vec_pack_trunc_v4df): Likewise.
8196         (vec_interleave_highv8sf): Likewise.
8197         (vec_interleave_lowv8sf): Likewise.
8198         (storent<mode>): Macroized.
8199         (<code><mode>2: absneg): Likewise.
8200         (copysign<mode>3): Likewise.
8201         (vec_extract<mode>): Likewise.
8202
8203         PR target/44180
8204         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
8205         for V8SFmode.
8206
8207 2010-10-13  Richard Guenther  <rguenther@suse.de>
8208             H.J. Lu  <hongjiu.lu@intel.com>
8209
8210         * config/i386/sse.md (reduc_splus_v8sf): Add.
8211         (reduc_splus_v4df): Likewise.
8212         (vec_unpacks_hi_v8sf): Likewise.
8213         (vec_unpacks_lo_v8sf): Likewise.
8214         (*avx_cvtps2pd256_2): Likewise.
8215         (vec_unpacks_float_hi_v8si): Likewise.
8216         (vec_unpacks_float_lo_v8si): Likewise.
8217         (vec_interleave_highv4df): Likewise.
8218         (vec_interleave_lowv4df): Likewise.
8219
8220 2010-10-13  Richard Guenther  <rguenther@suse.de>
8221
8222         PR objc/45878
8223         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
8224         alone if there are no virtual methods.
8225
8226 2010-10-13  Richard Henderson  <rth@redhat.com>
8227
8228         * expr.c (build_personality_function): Take parameter LANG instead
8229         of parameter NAME.  Build the name based on the lang prefix and the
8230         unwind method in use.
8231         * tree.c (lhd_gcc_personality): Update call to
8232         build_personality_function.
8233
8234 2010-10-13  Richard Guenther  <rguenther@suse.de>
8235
8236         PR objc/45878
8237         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
8238
8239 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8240
8241         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
8242         Canonicalize input operands of ASM_OPERANDS insns.
8243
8244 2010-10-13  Richard Guenther  <rguenther@suse.de>
8245
8246         PR tree-optimization/45788
8247         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
8248         EH update until fixup-cfg.
8249
8250 2010-10-13  Julian Brown  <julian@codesourcery.com>
8251
8252         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
8253         from CORE_REGS and GENERAL_REGS classes.
8254         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
8255         final constraint for register preferencing.
8256
8257 2010-10-13  Richard Guenther  <rguenther@suse.de>
8258
8259         PR tree-optimization/45970
8260         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
8261         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
8262         (stmt_kills_ref_p): Likewise.
8263         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
8264
8265 2010-10-13  Richard Guenther  <rguenther@suse.de>
8266
8267         PR tree-optimization/45982
8268         * tree-ssa-structalias.c (make_constraints_to): New function.
8269         (make_constraint_to): Implement in terms of make_constraints_to.
8270         (find_func_aliases): Properly make return values of pure/const
8271         functions escape if they assign to sth that is not a pointer.
8272
8273 2010-10-13  Richard Guenther  <rguenther@suse.de>
8274
8275         PR middle-end/45874
8276         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8277         Fixup the CFG when EH was fixed up.
8278
8279 2010-10-13  Ira Rosen  <irar@il.ibm.com>
8280
8281         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
8282         Use operand's type for POINTER_PLUS_EXPR.
8283
8284 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
8285
8286         * c-parser.c (c_parser_for_statement): Initialize incr.
8287
8288 2010-10-12  Xinliang David Li  <davidxl@google.com>
8289
8290         PR tree-optimization/45972
8291         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8292         with too many arguments.
8293
8294 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8295
8296         PR fortran/45636
8297         * tree-ssa-forwprop.c: Include expr.h.
8298         (constant_pointer_difference, simplify_builtin_call): New functions.
8299         (tree_ssa_forward_propagate_single_use_vars): Call
8300         simplify_builtin_call on builtin calls.
8301
8302 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8303
8304         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8305         (*adddi3_extend_sp32): Likewise.
8306         (*subdi3_insn_sp32): Likewise.
8307         (*subdi3_extend_sp32): Likewise.
8308         (*negdi2_sp32): Use negative test for consistency.
8309
8310 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8311
8312         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8313         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8314         * config/fixed-bit.h: Likewise.
8315         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8316         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8317         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8318         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8319         (DF_SIZE): Likewise.
8320         * doc/tm.texi: Regenerate.
8321
8322 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8323
8324         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8325         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8326         (*isel_reversed_unsigned_<mode>): New.
8327         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8328         as valid comparisons and adjust operands and output appropriately.
8329         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8330
8331 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8332
8333         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8334         DATA_ALIGNMENT and add COND parameter. Update comments above.
8335         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8336         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8337
8338 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8339
8340         PR bootstrap/45958
8341         * exec-tool.in: Support '-plugin' as the second option to the linker.
8342
8343 2010-10-12  Richard Henderson  <rth@redhat.com>
8344
8345         PR middle-end/45962
8346         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8347         (expand_stack_vars): Assert large base allocated when used.
8348
8349 2010-10-12  Richard Guenther  <rguenther@suse.de>
8350
8351         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8352         only point to nonlocal, not anything.
8353
8354 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8355
8356         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8357         unwind info for exceptions.
8358
8359 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8360
8361         PR testsuite/45851
8362         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8363         Document optional target selector.
8364
8365 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8366
8367         * flag-types.h: New.
8368         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8369         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8370         options.h.
8371         (OPTIONS_H): Define.
8372         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8373         of options.h.
8374         * configure.ac (tm_include_list): Include options.h not flags.h.
8375         * configure: Regenerate.
8376         * flags.h: Include flag-types.h.  Include options.h at top of file
8377         again.
8378         (enum debug_info_type, enum debug_info_level, enum
8379         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8380         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8381         graph_dump_types, enum stack_check_type,
8382         enum warn_strict_overflow_code): Move to flag-types.h
8383         * opth-gen.awk: Include flag-types.h in options.h.
8384
8385 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8386
8387         * expr.c (store_expr): Share code for STRING_CST and
8388         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8389         check if target is a MEM.
8390
8391         * rtl.h: Include hashtab.h.
8392         (iterative_hash_rtx): New prototype.
8393         * rtl.c (iterative_hash_rtx): New function.
8394         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8395         (output_loc_list): Return immediately if emitted is set, set it.
8396         (hash_loc_operands, hash_locs, hash_loc_list,
8397         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8398         optimize_location_lists_1, optimize_location_lists): New function.
8399         (dwarf2out_finish): Call optimize_location_lists.
8400         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8401
8402 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8403
8404         PR testsuite/45974
8405         Revert:
8406         * Makefile.in ($(lang_checks_parallel))
8407         ($(lang_checks_parallelized)): Use single quotes for
8408         $(RUNTESTFLAGS), to allow passing quoted content.
8409
8410 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8411
8412         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8413         actual_oldval.  Use __builtin_expect.
8414         (SUBWORD_VAL_CAS): Likewise.
8415
8416 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8417
8418         * recog.c (nonmemory_operand): Call immediate_operand for
8419         CONSTANT_P operands.
8420
8421 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8422
8423         * config/i386/i386.md (movmem<mode>): Macroize expander from
8424         movmem{si,di} using SWI48 mode iterator.
8425         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8426         *strmovsi_rex_1 using P mode iterator.
8427         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8428         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8429         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8430         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8431         (setmem<mode>): Macroize expander from setmem{si,di} using
8432         SWI48 mode iterator.
8433         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8434         *strsetsi_rex_1 using P mode iterator.
8435         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8436         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8437         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8438         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8439         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8440         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8441         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8442         mode iterator.
8443         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8444         *strlenqi_rex_1 using P mode iterator.
8445
8446 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8447
8448         PR bootstrap/45445
8449         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8450         static functions.
8451         (mark_ref_live, mark_ref_dead): Use them.
8452         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8453         Save the original reg, and use the new functions.
8454         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8455         changed.
8456         (check_and_make_def_conflict): Save the original reg.
8457
8458 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8459
8460         PR middle-end/45699
8461         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8462         thunks.
8463
8464 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8465
8466         * Makefile.in ($(lang_checks_parallel))
8467         ($(lang_checks_parallelized)): Use single quotes for
8468         $(RUNTESTFLAGS), to allow passing quoted content.
8469
8470         PR bootstrap/35855
8471         * opt-functions.awk (BEGIN): New section.
8472         (lower, upper, digit, alnum): New variables.
8473         (static_var, opt_sanitized_name): Use alnum instead of character
8474         classes, for non-C locale.
8475         * optc-gen.awk: Likewise.
8476         * opth-gen.awk: Likewise.
8477
8478 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8479
8480         * target.def (preferred_reload_class): New hook.
8481         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8482         * doc/tm.texi: Regenerate.
8483         * targhooks.c (default_preferred_reload_class): New function.
8484         * targhooks.h (default_preferred_reload_class): Declare.
8485         * reload.c (find_dummy_reload): Change preferred_class variable type
8486         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8487         target hook.
8488         (find_reloads): Change goal_alternative array type from int to
8489         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8490         (push_reload, find_reloads_address_part): Use
8491         TARGET_PREFERRED_RELOAD_CLASS target hook.
8492         * reload1.c (emit_input_reload_insns): Ditto.
8493         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8494         hook. Change rclass argument and secondary_class variable types from
8495         'enum reg_class' to reg_class_t.
8496
8497         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8498         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8499         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8500         Change regclass argument and result types from enum reg_class to
8501         reg_class_t.
8502         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8503
8504 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8505
8506         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8507         in masking operations.
8508         (simplify_const_unary_operation): Likewise.
8509         (simplify_binary_operation_1): Likewise.
8510         (simplify_const_binary_operation): Likewise.
8511         (simplify_const_relational_operation): Likewise.
8512         (simplify_ternary_operation): Likewise.
8513         (simplify_immed_subreg): Likewise.
8514
8515 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8516
8517         PR middle-end/45862
8518         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8519         (TARGET_SUPPORTS_WEAK): New.
8520         * doc/tm.texi: Regenerate.
8521         * defaults.h (SUPPORTS_WEAK): Update comment.
8522         (TARGET_SUPPORTS_WEAK): New.
8523         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8524         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8525         SUPPORTS_WEAK.
8526         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8527         make_decl_one_only): Likewise.
8528         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8529         TARGET_SUPPORTS_WEAK.
8530         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8531         instead of SUPPORTS_WEAK.
8532
8533 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8534
8535         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8536
8537 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8538
8539         * vec.h (VEC_qsort): Define.
8540         * dbxout.c (output_used_types): Use it.
8541         * df-scan.c (df_sort_and_compress_refs): Likewise.
8542         (df_sort_and_compress_mws): Likewise.
8543         * genautomata.c (uniq_sort_alt_states): Likewise.
8544         (evaluate_equiv_classes): Likewise.
8545         (output_trans_table): Likewise.
8546         (output_state): Likewise.
8547         * gimplify.c (compare_case_labels): Likewise.
8548         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8549         * ipa.c (build_cdtor_fns): Likewise.
8550         * lto.c (lto_wpa_write_files): Likewise.
8551         * sel-sched.c (fill_vec_av_set): Likewise.
8552         * tree-predcom.c (determine_roots_comp): Likewise.
8553         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8554         (splice_param_accesses): Likewise.
8555         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8556         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8557         (reassociate_bb): Likewise.
8558         * tree-ssa-sccvn.c (sort_scc): Likewise.
8559         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8560
8561 2010-10-11  Ian Lance Taylor  <iant@google.com>
8562
8563         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8564         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8565         TREE_THIS_NOTRAP when appropriate.
8566         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8567         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8568         newly created MEM_REF.
8569
8570 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8571
8572         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8573         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8574         (picochip_incoming_function_arg): Delete.
8575         (picochip_arg_advance): Delete.
8576         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8577         (FUNCTION_INCOMING_ARG): Delete.
8578         (FUNCTION_ARG_ADVANCE): Delete.
8579         * config/picochip/picochip.c (picochip_function_arg): Take a
8580         const_tree and a bool.
8581         (picochip_incoming_function_arg): Likewise.
8582         (picochip_arg_advance): Likewise.
8583         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8584         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8585
8586 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8587
8588         PR middle-end/45955
8589         * ipa.c (build_cdtor): Delete endless loop.
8590
8591 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8592
8593         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8594         checksum-options.
8595         (checksum-options): Add.
8596         (cc1-dummy): Remove.
8597         (cc1-checksum): Change to run checksum over object files
8598         and options only.
8599         * dummy-checksum.c: Remove.
8600         * genchecksum.c: Update copyright.
8601         (usage): Allow multiple arguments.
8602         (BLOCKSIZE): Add.
8603         (dosum): Change for incremental checksum. Remove C output.
8604         (main): Iterate over all argument files. Add C output.
8605
8606 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8607
8608         * params.c (set_param_value_internal): New.
8609         (set_param_value): Use set_param_value_internal.
8610         (maybe_set_param_value, set_default_param_value): New.
8611         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8612         (maybe_set_param_value, set_default_param_value): Declare.
8613         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8614         * config/i386/i386.c (ix86_option_override_internal): Use
8615         maybe_set_param_value.
8616         * config/ia64/ia64.c (ia64_option_default_params,
8617         TARGET_OPTION_DEFAULT_PARAMS): New.
8618         (ia64_option_optimization): Move some code to
8619         ia64_option_default_params.
8620         * config/picochip/picochip.c (picochip_option_override): Use
8621         maybe_set_param_value.
8622         * config/rs6000/rs6000.c (rs6000_option_default_params,
8623         TARGET_OPTION_DEFAULT_PARAMS): New.
8624         (rs6000_option_override_internal): Use maybe_set_param_value.
8625         (rs6000_option_optimization): Move some code to
8626         rs6000_option_default_params.
8627         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8628         * config/sh/sh.c (sh_option_default_params,
8629         TARGET_OPTION_DEFAULT_PARAMS): New.
8630         (sh_option_optimization): Move some code to sh_option_default_params.
8631         * config/sparc/sparc.c (sparc_option_override): Use
8632         maybe_set_param_value.
8633         * config/spu/spu.c (spu_option_default_params,
8634         TARGET_OPTION_DEFAULT_PARAMS): New.
8635         (spu_option_optimization): Move some code to spu_option_default_params.
8636         (spu_option_override): Use maybe_set_param_value.
8637         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8638         * doc/tm.texi: Regenerate.
8639         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8640         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8641         compiler_params.
8642         (default_options_optimization): Use maybe_set_param_value.
8643         (finish_options): Use maybe_set_param_value.
8644         * target.def (target_option.default_params): New hook.
8645         * toplev.c (general_init): Call targetm.target_option.default_params.
8646
8647 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8648
8649         PR tree-optimization/45902
8650         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8651         vector type for constants, unless it's a pointer.
8652
8653 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8654
8655         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8656
8657 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8658
8659         PR target/45870
8660         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8661         (ix86_delegitimize_address): Use it.
8662
8663 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8664
8665         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8666
8667 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8668
8669         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8670         to cum struct in the call to function_arg_advance.
8671         (alpha_function_arg_advance): Mark named as unused.
8672
8673 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8674
8675         * config/mips/mips.c (mips_handle_option): Make "value" with
8676         ATTRIBUTE_UNUSED.
8677
8678 2010-10-09  Richard Henderson  <rth@redhat.com>
8679
8680         PR rtl-opt/33721
8681         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8682         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8683         required_align, tidy the code a bit.  Emit split_stack code in the
8684         right place.  Mark the return value with the alignment properly.
8685         * expr.h (allocate_dynamic_stack_space): Update decl.
8686         * builtins.c (expand_builtin_apply): Update call to
8687         allocate_dynamic_stack_space.
8688         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8689         * calls.c (initialize_argument_information): Update call to
8690         allocate_dynamic_stack_space.
8691         (expand_call): Likewise.
8692
8693         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8694         Don't update_stack_alignment here.
8695         (alloc_stack_frame_space): Make ALIGN unsigned.
8696         (stack_var_cmp): Sort by alignment too.
8697         (partition_stack_vars): Don't merge large and small alignment vars.
8698         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8699         Take care when BASE is not virtual_stack_vars_rtx.
8700         (expand_stack_vars): Allocate dynamic stack space for large
8701         alignment variables.
8702         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8703         (defer_stack_allocation): True for large alignment vars.
8704         (update_stack_alignment): Merge into ...
8705         (expand_one_var): ... here.
8706         (gimple_expand_cfg): Place code from expand_stack_vars.
8707
8708 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8709
8710         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8711         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8712         (pdp11_function_arg_advance): New function.
8713         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8714
8715 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8716
8717         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8718         * libgcc2.c: Likewise.
8719
8720 2010-10-09  Richard Guenther  <rguenther@suse.de>
8721
8722         PR lto/45956
8723         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8724         Properly check if a decl is an automatic var.
8725
8726 2010-10-09  Richard Guenther  <rguenther@suse.de>
8727
8728         PR lto/45947
8729         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8730
8731 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8732
8733         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8734         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8735         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8736         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8737         bool arguments.
8738         (mmix_function_arg): New function.
8739         (mmix_function_incoming_arg): New function.
8740         (mmix_function_arg_advance): New function.
8741         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8742         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8743
8744 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8745
8746         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8747         * config/vax/vax.c (vax_function_arg): New function.
8748         (vax_function_arg_advance): New function.
8749         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8750
8751 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8752
8753         * config/pa/pa-protos.h (function_arg): Delete.
8754         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8755         * config/pa/pa.c (function_arg): Rename to...
8756         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8757         a bool.
8758         (pa_function_arg_advance): New function.
8759         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8760
8761 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8762
8763         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8764         * config/m68k/m68k.c (m68k_function_arg): New function.
8765         (m68k_function_arg_advance): New function.
8766         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8767
8768 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8769
8770         * config/avr/avr-protos.h (function_arg): Delete.
8771         (function_arg_advance): Delete.
8772         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8773         * config/avr/avr.c (function_arg): Rename to...
8774         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8775         a bool.
8776         (function_arg_advance): Rename to...
8777         (avr_function_arg_advance): ...this.  Make static.  Take a
8778         const_tree and a bool.
8779         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8780
8781 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8782
8783         * config/alpha/alpha-protos.h (function_arg): Delete.
8784         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8785         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8786         * config/alpha/alpha.c (function_arg): Rename to...
8787         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8788         a bool.  Delete TARGET_ABI_UNICOSMK code.
8789         (alpha_function_arg_advance): New function.
8790         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8791
8792 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8793
8794         * config/mep/mep-protos.h (mep_function_arg): Delete.
8795         (mep_function_arg_advance): Delete.
8796         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8797         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8798         const_tree and a bool.
8799         (mep_function_arg_advance): Likewise.
8800         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8801
8802 2010-10-09  Richard Guenther  <rguenther@suse.de>
8803
8804         PR tree-optimization/45945
8805         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8806
8807 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8808
8809         PR tree-optimization/45612
8810         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8811         Test LABEL_DECLs as well.  Fix formatting issues.
8812         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8813         whose label is present in NON_SSA_VARS.
8814         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8815         as well.  Fix formatting issues.
8816         (visit_bb): Fix typos and formatting issue.
8817
8818 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8819
8820         PR tree-optimization/45950
8821         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8822         before initializing vno->op.
8823
8824 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8825
8826         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8827         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8828
8829 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8830
8831         PR target/45913
8832         * config/i386/i386.c (ix86_binary_operator_ok): Support
8833         "andhi/andsi/anddi" as a zero-extending move.
8834
8835 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8836
8837         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8838         into a temporary array.
8839
8840 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8841
8842         PR tree-optimization/45903
8843         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8844         of {A,L}SHIFTRT of MEM.
8845
8846 2010-10-08  Richard Guenther  <rguenther@suse.de>
8847
8848         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8849         Re-construct BLOCK_VARS.
8850         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8851         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8852         * tree.c (free_lang_data_in_block): Remove.
8853         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8854         Do not touch the BLOCK tree.
8855         * expr.c (expand_expr_real_1): Allow externals.
8856
8857 2010-10-08  Richard Guenther  <rguenther@suse.de>
8858
8859         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8860         Do not output BLOCK_SUBBLOCKS.
8861         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8862         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8863         Re-construct BLOCK_SUBBLOCKS of parent block.
8864         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8865         for BINFO_BASE_ACCESSES.
8866
8867 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8868
8869         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8870         (TREE_H): Include $(FLAGS_H) instead of options.h.
8871         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8872         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8873         * common.opt (flag_complex_method, flag_evaluation_order,
8874         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8875         Variable declarations.
8876         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8877         * configure: Regenerate.
8878         * flags.h: Condition out contents for target libraries.  Include
8879         options.h at end of file.
8880         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8881         flag_evaluation_order, flag_warn_unused_result): Remove.
8882         * gcc.c (main): Intialize global_options with global_options_init.
8883         * langhooks-def.h (lhd_init_options_struct): Declare.
8884         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8885         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8886         * langhooks.c (lhd_init_options_struct): New.
8887         * langhooks.h (struct lang_hooks): Add init_options_struct.
8888         Update comment on init_options.
8889         * optc-gen.awk: Generate initializer for global_options_init, not
8890         global_options.
8891         * opth-gen.awk: Condition out structure declarations for target
8892         libraries.  Declare global_options_init.
8893         * opts-common.c: Include flags.h instead of options.h.
8894         * opts.c (flag_warn_unused_result): Remove.
8895         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8896         read_cmdline_option.
8897         (initial_lang_mask, initial_min_crossjump_insns,
8898         initial_max_fields_for_field_sensitive,
8899         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8900         (init_options_once): New.  Split out of decode_options.
8901         (init_options_struct): New.  Split out of decode_options.
8902         (decode_cmdline_options_to_array_default_mask): New.
8903         (default_options_optimization): New.  Split out of decode_options.
8904         (decode_options): Move most code to other functions.  Update call
8905         to read_cmdline_options.
8906         (finish_options): New.  Split out of decode_options.
8907         * opts.h (decode_options): Add gcc_options parameters.
8908         (init_options_once, init_options_struct,
8909         decode_cmdline_options_to_array_default_mask): New.
8910         * toplev.c (flag_complex_method, flag_ira_algorithm,
8911         flag_ira_region, flag_evaluation_order): Remove.
8912         (general_init): Use global_options_init for initial flag values
8913         for global_dc.
8914         (toplev_main): Call init_options_once, init_options_struct,
8915         lang_hooks.init_options_struct,
8916         decode_cmdline_options_to_array_default_mask and
8917         lang_hooks.init_option before decode_options.  Update arguments to
8918         decode_options.
8919         * tree.h: Include flags.h instead of options.h.
8920
8921 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8922
8923         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8924
8925 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8926
8927         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8928         Delete.
8929         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8930         (FUNCTION_INCOMING_ARG): Delete.
8931         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8932         (function_arg_slotno): Likewise.  Take bool arguments.
8933         (sparc_arg_partial_bytes): Update call to it.
8934         (function_arg): Rename to...
8935         (sparc_function_arg_1): ...this.  Take bool arguments.
8936         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8937         (function_arg_advance): Rename to...
8938         (sparc_function_arg_advance): ...this.  Take bool argument.
8939         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8940         (TARGET_FUNCTION_INCOMING_ARG): Define.
8941
8942 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8943
8944         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8945         Delete.
8946         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8947         * config/bfin/bfin.c (function_arg_advance): Rename to...
8948         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8949         and bool arguments.
8950         (function_arg): Rename to...
8951         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8952         arguments.
8953         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8954
8955 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8956
8957         * config/score/score-protos.h (score_function_arg): Delete.
8958         (score_function_arg_advance): Delete.
8959         * config/score/score3.h (score3_function_arg_advance): Take a
8960         const_tree and a bool.
8961         (score3_function_arg): Likewise.
8962         * config/score/score7.h (score7_function_arg_advance): Likewise.
8963         (score7_function_arg): Likewise.
8964         * config/score/score3.c (score3_classify_arg): Likewise.
8965         (score3_function_arg_advance, score3_function_arg): Likewise.
8966         * config/score/score7.c (score7_classify_arg): Likewise.
8967         (score7_function_arg_advance, score7_function_arg): Likewise.
8968         * config/score/score.c (score_function_arg_advance): Likewise.
8969         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8970         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8971
8972 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8973
8974         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8975         (s390_function_arg): Delete.
8976         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8977         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8978         (s390_function_arg_integer): Likewise.
8979         (s390_function_arg_advance): Make static.  Take a const_tree and
8980         a bool.
8981         (s390_function_arg): Likewise.
8982         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8983
8984 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8985
8986         * config/spu/spu-protos.h (spu_function_arg): Delete.
8987         * config/spu/spu.h (FUNCTION_ARG): Delete.
8988         (FUNCTION_ARG_ADVANCE): Move code to ...
8989         * config/spu/spu.c (spu_function_arg_advance): New function.
8990         (spu_function_arg): Make static.  Take a const_tree and a bool.
8991         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8992         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8993
8994 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8995
8996         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8997
8998 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8999
9000         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
9001         (init_vn_nary_op_from_op): New function.
9002         (init_vn_nary_op_from_stmt): New function.
9003         (vn_nary_op_lookup_1): New function.
9004         (sizeof_vn_nary_op): New function.
9005         (alloc_vn_nary_op_noinit): New function.
9006         (alloc_vn_nary_op): New function.
9007         (vn_nary_op_insert_into): New function.
9008         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
9009         (vn_nary_op_lookup): Likewise.
9010         (vn_nary_op_lookup_stmt): Likewise.
9011         (vn_nary_op_insert_pieces): Likewise.
9012         (vn_nary_op_insert): Likewise.
9013         (vn_nary_op_insert_stmt): Likewise.
9014         (copy_nary): Likewise.
9015         (set_value_id_for_result): New function.
9016         (set_hashtable_value_ids): Call it.
9017
9018 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9019
9020         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9021         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
9022
9023 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9024
9025         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
9026         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9027
9028 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9029
9030         PR debug/45656
9031         * cse.c (cse_extended_basic_block): Preserve cc0 info across
9032         debug isnsn.  Skip them when searching for cc0 setter.
9033         (set_live_p): Skip debug insns when searching for cc0 user.
9034
9035 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9036
9037         PR debug/45673
9038         PR debug/45604
9039         PR debug/45419
9040         PR debug/45408
9041         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
9042         type of MEM_REFs to INTEGER_CSTs.
9043
9044 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9045
9046         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
9047         m68hc11_print_operand_address.
9048
9049 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9050
9051         * builtins.c (rewrite_call_expr): Move code to...
9052         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
9053         (rewrite_call_expr_array): New function.
9054         (fold_builtin_sprintf_chk_1): New function.
9055         (fold_builtin_sprintf_chk): Call it.
9056         (gimple_fold_builtin_sprintf_chk): Likewise.
9057         (fold_builtin_snprintf_chk_1): New function.
9058         (fold_builtin_snprintf_chk): Call it.
9059         (gimple_fold_builtin_snprintf_chk): Likewise.
9060         (gimple_rewrite_call_expr): Delete.
9061
9062 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9063
9064         * config.host: Update copyright year.
9065
9066 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9067
9068         * config.host (host_lto_plugin_soname): New shell variable.
9069         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
9070         * config.in: Regenerate.
9071         * configure: Regenerate.
9072         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
9073         LTO plugin shared library.
9074
9075 2010-10-07  Richard Henderson  <rth@redhat.com>
9076
9077         * target.h (enum unwind_info_type): Move ...
9078         * coretypes.h: ... here.
9079
9080 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
9081
9082         * doc/objc.texi (Fast enumeration protocol): Mention that
9083         'unsigned int' can also be used instead of 'unsigned long' in
9084         countByEnumeratingWithState:objects:count:.
9085
9086 2010-10-07  Martin Jambor  <mjambor@suse.cz>
9087
9088         * tree-sra.c (struct access): New field grp_assignment_write.
9089         (dump_access): Dump grp_assignment_write.
9090         (build_accesses_from_assign): Set grp_assignment_write.
9091         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
9092         (mark_read_status): Renamed to mark_rw_status, individual values
9093         renamed too.
9094         (analyze_access_subtree): Changed type of mark_write to
9095         mark_read_status.  Fixed propagating of mark_read and
9096         mark_write.  Changed benefit estimate.  Updated comment.
9097
9098 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9099
9100         PR Tree-Vect/45847
9101         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
9102         check for vectype_out returned by get_vectype_for_scalar_type().
9103
9104 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9105
9106         PR target/45805
9107         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
9108         constraint, add register specifier in instruction template.
9109         (neon_vec_pack_trunc_<mode>): Likewise.
9110         (neon_vec_<US>mult_<mode>): Add register specifier to
9111         instruction template.
9112
9113 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9114
9115         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
9116         cygwin2.o.
9117         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
9118         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
9119         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
9120         (cygwin2.o): Likewise.
9121         * config/i386/cygwin1.c: Delete file.
9122         * config/i386/cygwin2.c: Likewise.
9123         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
9124         make all {%!mno-cygwin} ones unconditional.
9125         (STARTFILE_SPEC): Likewise.
9126         (REAL_LIBGCC_SPEC): Likewise.
9127         (LIB_SPEC): Likewise.
9128         (CXX_WRAP_SPEC): Likewise.
9129         (LINK_SPEC): Likewise.
9130         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
9131         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
9132         (cygwin_gplusplus_include_dir): Delete now-unused array.
9133         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
9134         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
9135         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
9136         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
9137         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
9138         (cygwin_local_include_dir): Delete now-unused array.
9139         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
9140         (cygwin_cross_include_dir): Delete now-unused array.
9141         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
9142         (cygwin_tool_include_dir): Delete now-unused array.
9143         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
9144         (cygwin_standard_include_dir): Delete now-unused array.
9145         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
9146         (GEN_CVT_ARRAY): Delete now-unused macro definition.
9147         (cvt_to_mingw): Delete now-unused array.
9148         (mingw_scan): Remove prototype of deleted function.
9149         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
9150         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
9151         * doc/invoke.texi (-mcygwin): Don't document removed option.
9152         (-mno-cygwin): Likewise.
9153
9154 2010-10-07  Richard Guenther  <rguenther@suse.de>
9155
9156         * machmode.h (mode_for_vector): Declare.
9157         * stor-layout.c (mode_for_vector): New function, split out from ...
9158         (layout_type): ... here.
9159         * tree-vectorizer.h (current_vector_size): Declare.
9160         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
9161         mask vector type is available.
9162         (get_vectype_for_scalar_type): Rename to ...
9163         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
9164         size argument.
9165         (get_vectype_for_scalar_type): New wrapper around
9166         get_vectype_for_scalar_type_and_size using current_vector_size.
9167         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
9168         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
9169         of vect_analyze_loop here.
9170         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
9171         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
9172         to autodetect.
9173         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
9174         V8SF to V8SI conversion builtin.
9175
9176 2010-10-07  Richard Guenther  <rguenther@suse.de>
9177
9178         * target.def (autovectorize_vector_sizes): New target hook.
9179         * targhooks.c (default_autovectorize_vector_sizes): New function.
9180         * targhooks.h (default_autovectorize_vector_sizes): Declare.
9181         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
9182         Document.
9183         * doc/tm.texi: Update.
9184         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
9185         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9186
9187 2010-10-07  Richard Guenther  <rguenther@suse.de>
9188
9189         * target.def (units_per_simd_word): Rename to ...
9190         (preferred_simd_mode): ... this.  Return mode instead of size.
9191         * targhooks.c (default_units_per_simd_word): Rename to ...
9192         (default_preferred_simd_mode): ... this.  Return word_mode.
9193         * targhooks.h (default_preferred_simd_mode): Declare.
9194         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
9195         (arm_preferred_simd_mode): ... this.  Re-implement.
9196         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
9197         (ix86_preferred_simd_mode): ... this.  Re-implement.
9198         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
9199         (sparc_preferred_simd_mode): ... this.  Re-implement.
9200         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
9201         (mips_preferred_simd_mode): ... this.  Re-implement.
9202         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
9203         (rs6000_preferred_simd_mode): ... this.  Re-implement.
9204         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
9205         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
9206         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
9207         * doc/tm.texi: Update.
9208
9209 2010-10-07  Richard Guenther  <rguenther@suse.de>
9210
9211         PR middle-end/45869
9212         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
9213         of pointers.
9214
9215 2010-10-07  Alan Modra  <amodra@gmail.com>
9216
9217         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
9218         rather than sign extension by hand.
9219
9220 2010-10-07  Jan Hubicka  <jh@suse.cz>
9221
9222         PR middle-end/45926
9223         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
9224
9225 2010-10-07  Richard Guenther  <rguenther@suse.de>
9226
9227         PR bootstrap/45914
9228         * configure.ac: Fix typo.
9229         * configure: Regenerated.
9230
9231 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9232
9233         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
9234         define_builtin_std where it's unnecessary.
9235         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
9236
9237 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
9238
9239         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
9240         * doc/tm.texi.in: Regenerate.
9241         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
9242         * targhooks.c (default_class_likely_spilled_p): Don't use the
9243         CLASS_LIKELY_SPILLED_P macro.
9244
9245         * config/arm/arm.md: Update comment.
9246
9247 2010-10-06  Jan Hubicka  <jh@suse.cz>
9248
9249         * ipa.c (cgraph_remove_unreachable_nodes): External references can
9250         always be removed.
9251         (cgraph_externally_visible_p): We can not bring local comdats that
9252         are known to linker; fix handling of internal visibility.
9253         (function_and_variable_visibility): Likewise.
9254
9255 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9256
9257         PR rtl-optimization/45394
9258         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
9259         (struct rtx_subst_pair): Remove AFTER field.
9260         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
9261         (propagate_for_debug): Remove MOVE parameter and adjust.
9262         (try_combine): In the special case where I2 is a PARALLEL, combine only
9263         destinations of SETs and set I2SRC to the I2 source.
9264         Adjust calls to propagate_for_debug throughout.
9265         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
9266         insns.
9267
9268 2010-10-06  Olivier Hainque  <hainque@adacore.com>
9269
9270         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
9271         switch on insn codes as sequence of ifs.
9272
9273 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
9274
9275         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
9276         be UI_NONE for picochip.
9277         (picochip_option_override): Do not disable exception flags.
9278         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
9279         Declare.
9280
9281 2010-10-06  Richard Guenther  <rguenther@suse.de>
9282
9283         * Makefile.in (regmove.o): Depend on $(TARGET_H).
9284
9285 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9286
9287         Implemented fast enumeration for Objective-C.
9288         * c-parser.c (objc_could_be_foreach_context): New.
9289         (c_lex_one_token): Recognize RID_IN keyword in a potential
9290         Objective-C foreach context.
9291         (c_parser_declaration_or_fndef): Added parameter.  Accept
9292         Objective-C RID_IN keyword as terminating a declaration; in that
9293         case, return the declaration in the new parameter.
9294         (c_parser_extenral_declaration): Updated calls to
9295         c_parser_declaration_or_fndef.
9296         (c_parser_declaration_or_fndef): Same change.
9297         (c_parser_compound_statement_nostart): Same change.
9298         (c_parser_label): Same change.
9299         (c_parser_objc_methodprotolist): Same change.
9300         (c_parser_omp_for_loop): Same change.
9301         (c_parser_for_statement): Detect and parse Objective-C foreach
9302         statements.
9303         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9304         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9305         fast enumeration parsing code to turn off the c99 error but still
9306         perform checks on the loop declarations.
9307         * c-tree.h (check_for_loop_decls): Updated declaration.
9308         * doc/objc.texi: Document fast enumeration.
9309
9310 2010-10-06  Nick Clifton  <nickc@redhat.com>
9311
9312         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9313         (MDR_REGNUM): Define.
9314         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9315         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9316         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9317         (REGISTER_NAMES): Add MDR.
9318         (DWARF2_DEBUGGING_INFO): Define to 1.
9319         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9320         (F): New function.  Sets RTX_FRAME_RELATED_P.
9321         (mn10300_gen_multiple_store): Use F.
9322         (expand_prologue): Use F.  Use gen_movsf() to push floating
9323         point registers.
9324         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9325         (mn10300_option_override): Disable combine stack adjust pass.
9326
9327 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9328
9329         PR target/45901
9330         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9331         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9332
9333 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9334
9335         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9336         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9337         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9338         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9339         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9340         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9341         BUILT_IN_TOUPPER): Mark as leaf.
9342
9343         PR middle-end/45838
9344         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9345         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9346         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9347         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9348         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9349         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9350         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9351
9352 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9353
9354         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9355         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9356         (m68hc11_class_likely_spilled_p): New function.
9357
9358 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9359
9360         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9361
9362 2010-10-05  Jan Hubicka  <jh@suse.cz>
9363
9364         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9365         Document.
9366         * opts.c (decode_options): Handle lto partitions.
9367         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9368         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9369
9370 2010-10-05  Jan Hubicka  <jh@suse.cz>
9371
9372         * cgraphunit.c (assemble_function): Output thunks and aliases before
9373         the function itself.
9374
9375 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9376
9377         * config/picochip/picochip.c (picochip_option_override): Disable
9378         exception flags for picochip.
9379
9380 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9381
9382         * opts-common.c (handle_option, handle_generated_option,
9383         read_cmdline_option, set_option): Add diagnostic_context
9384         parameter.  Update calls among these functions.
9385         (set_option): Don't use global_dc.
9386         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9387         (decode_options): Pass global_dc to enable_warning_as_error.
9388         (common_handle_option): Pass global_dc to enable_warning_as_error.
9389         (enable_warning_as_error): Add diagnostic_context parameter.
9390         Document parameters.  Don't use global_dc.  Pass
9391         diagnostic_context parameter to handle_generated_option.
9392         * opts.h (set_option, handle_option, handle_generated_option,
9393         read_cmdline_option, enable_warning_as_error): Add
9394         diagnostic_context parameter.
9395         * Makefile.in (lto-opts.o): Update dependencies.
9396         * coretypes.h (struct diagnostic_context, diagnostic_context):
9397         Declare here.
9398         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9399         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9400         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9401         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9402         using diagnostic_context typedef.
9403         * langhooks.c (lhd_initialize_diagnostics): Declare using
9404         diagnostic_context typedef.
9405         * langhooks.h (struct diagnostic_context): Don't declare here.
9406         (initialize_diagnostics, print_error_function): Declare using
9407         diagnostic_context typedef.
9408         * lto-opts.c: Include diagnostic.h.
9409         (lto_reissue_options): Pass global_dc to set_option.  Pass
9410         DK_UNSPECIFIED not 0.
9411         * plugin.c (plugins_internal_error_function): Declare using
9412         diagnostic_context typedef.
9413         * plugin.h (struct diagnostic_context): Don't declare here.
9414         (plugins_internal_error_function): Declare using
9415         diagnostic_context typedef.
9416
9417 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9418             Nicolas Roche  <roche@adacore.com>
9419
9420         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9421         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9422
9423 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9424
9425         PR tree-optimization/45752
9426         * tree-vect-slp.c (vect_get_mask_element): Remove static
9427         variables, make them function arguments.
9428         (vect_transform_slp_perm_load): Pass new arguments to
9429         vect_get_mask_element.
9430
9431 2010-10-05  Richard Guenther  <rguenther@suse.de>
9432
9433         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9434         (gimple_mod_pow2): Likewise.
9435         (gimple_mod_subtract): Likewise.
9436         (gimple_ic): Likewise.
9437         (gimple_stringop_fixed_value): Likewise.
9438         * tree-profile.c (tree_init_edge_profiler): Mark profile
9439         functions nothrow and leaf.
9440         (add_abnormal_goto_call_edges): Remove.
9441         (tree_gen_edge_profiler): Work on SSA form.
9442         (tree_gen_ic_profiler): Likewise.  Simplify.
9443         (do_tree_profiling): Update SSA form.
9444         (pass_tree_profile): Remove.
9445         (do_tree_profiling): Likewise.
9446         (gate_tree_profile_ipa): New function.
9447         (pass_ipa_tree_profile): New.
9448         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9449         state of instrumented functions.
9450         * passes.c (init_optimization_passes): Remove early non-SSA
9451         inlining.  Move profiling after early optimizations.
9452         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9453         (pass_ipa_early_inline): Likewise.
9454         * tree-pass.h (pass_ipa_early_inline): Remove.
9455         (pass_tree_profile): Likewise.
9456         (pass_ipa_tree_profile): Declare.
9457
9458 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9459             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9460
9461         * config/s390/s390.c (z196_cost): New.
9462         (s390_handle_arch_option): Add -march=z196.
9463         (s390_option_override): Use the new cost function and use the z10
9464         defaults also for z196.
9465         (legitimate_reload_constant_p): Adjust comment.
9466         (legitimate_reload_fp_constant_p): New function.
9467         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9468         (preferred_la_operand_p): Avoid la with index on z196.
9469         (s390_adjust_priority): Trigger also for z196.
9470         (s390_issue_rate): Issue rate for z196 is 3.
9471         (s390_z10_fix_long_loop_prediction): Rename to ...
9472         (s390_fix_long_loop_prediction): ... this.
9473         (s390_reorg): Apply the z10 adjustments also for z196.
9474         (s390_loop_unroll_adjust): Do this also for z196.
9475         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9476         (enum processor_flags): Add PF_Z196.
9477         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9478         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9479         * config.gcc: Enable z196 for --with-arch.
9480         * config/s390/2817.md: New file.
9481         * config/s390/2084.md: New type for multiply and add.
9482         * config/s390/2097.md: Likewise.
9483         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9484         (UNSPECV_ATOMIC_OP): New constants.
9485         (fmadddf, fmaddsf): New values for type attribute.
9486         (z196prop): New insn attribute.
9487         (cpu, cpu_facility): Add z196.
9488         (ATOMIC_Z196): New code iterator.
9489         (noxa): New code attribute.
9490         (gk): New mode attribute.
9491         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9492         Support load zero for fp constants.
9493         (fixuns_truncdddi2, fixuns_trunctddi2)
9494         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9495         for z196.
9496         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9497         (popcounthi2, popcountqi2): New expander.
9498         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9499         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9500         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9501         insn definition.
9502         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9503         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9504         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9505         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9506         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9507         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9508         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9509         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9510         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9511         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9512         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9513         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9514         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9515         Support new z196 instructions.
9516
9517 2010-10-05  Richard Guenther  <rguenther@suse.de>
9518
9519         PR middle-end/45877
9520         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9521         case where gimplification optimizes away the stmt.
9522
9523 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9524
9525         PR debug/45849
9526         * var-tracking.c (strip_pointer_flags): New function.
9527         (emit_note_insn_var_location): If rtx_equal_p check failed,
9528         retry on locations simplified with simplify_replace_fn_rtx
9529         and strip_pointer_flags as its callback.
9530
9531 2010-10-04  Jan Hubicka  <jh@suse.cz>
9532
9533         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9534         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9535         value; handle comdats too.
9536         (canonicalize_constructor_val): Use it; handle function_decls
9537         correctly.
9538         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9539         * gimple.c (get_base_address): Accept all kinds of decls.
9540
9541 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9542
9543         * flags.h (g_switch_value, g_switch_set): Remove.
9544         * opts.c (g_switch_value, g_switch_set): Remove.
9545         * config/g.opt (G): Add Var(g_switch_value).
9546         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9547         (alpha_option_override): Check global_options_set.x_g_switch_value
9548         instead of g_switch_set.
9549         (alpha_in_small_data_p): Remove cast in comparison with
9550         g_switch_value.
9551         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9552         g_switch_value to unsigned HOST_WIDE_INT.
9553         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9554         with g_switch_value.
9555         (frv_handle_option): Don't handle -G here.
9556         (frv_option_override): Check global_options_set.x_g_switch_value
9557         instead of g_switch_set.  Don't modify g_switch_set.
9558         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9559         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9560         g_switch_value to unsigned HOST_WIDE_INT.
9561         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9562         (ia64_option_override): Check global_options_set.x_g_switch_value
9563         instead of g_switch_set.
9564         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9565         Remove.
9566         (lm32_in_small_data_p): Remove cast in comparison with
9567         g_switch_value.
9568         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9569         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9570         HOST_WIDE_INT.
9571         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9572         (m32r_init): Check global_options_set.x_g_switch_value instead of
9573         g_switch_set.
9574         (m32r_in_small_data_p): Remove cast in comparison with
9575         g_switch_value.
9576         (m32r_file_start): Format g_switch_value with %d.
9577         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9578         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9579         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9580         handle -G here.
9581         (microblaze_option_override): Check
9582         global_options_set.x_g_switch_value instead of g_switch_set.
9583         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9584         (mips_option_override): Check global_options_set.x_g_switch_value
9585         instead of g_switch_set.
9586         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9587         (rs6000_file_start): Format g_switch_value with %d.
9588         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9589         comparisons with g_switch_value.
9590         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9591         global_options_set.x_g_switch_value instead of g_switch_set.
9592         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9593         global_options_set.x_g_switch_value instead of g_switch_set.
9594         * config/score/score.c (score_handle_option): Don't handle -G here.
9595         * config/score/score3.c (score3_option_override): Check
9596         global_options_set.x_g_switch_value instead of g_switch_set.
9597         * config/score/score7.c (score7_option_override): Check
9598         global_options_set.x_g_switch_value instead of g_switch_set.
9599
9600 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9601
9602         * common.opt (fira-coalesce): Remove.
9603
9604         * doc/invoke.texi (flag_ira_coalesce): Remove.
9605
9606         * ira-color.c (allocno_coalesced_p): Move before
9607         copy_freq_compare_func.
9608         processed_coalesced_allocno_bitmap): Ditto.
9609         (update_conflict_hard_regno_costs): Don't use
9610         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9611         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9612         (assign_hard_reg): Assume no coalesced allocnos.
9613         (get_coalesced_allocnos_attributes): Remove.
9614         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9615         (push_allocno_to_stack): Ditto.
9616         (remove_allocno_from_bucket_and_push): Use
9617         ira_print_expanded_allocno instead of print_coalesced_allocno.
9618         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9619         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9620         all_conflicting_hard_regs.
9621         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9622         (setup_allocno_left_conflicts_size): Ditto.
9623         (put_allocno_into_bucket): Ditto.
9624         (copy_freq_compare_func): Remove.
9625         (copy_freq_compare_func, merge_allocnos): Move before
9626         coalesced_pseudo_reg_freq_compare.
9627         coalesced_allocno_conflict_p): Ditto.
9628         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9629         parameter.  Assume it true.
9630         (color_allocnos): Assume uncoalesced allocnos.  Use
9631         ira_print_expanded_allocno instead of print_coalesced_allocno.
9632         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9633         parameter.
9634
9635         * ira.c: Remove comment about coalescing.
9636
9637 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9638
9639         * config/mips/mips.h (target_flags_explicit): Declare for
9640         GENERATOR_FILE.
9641
9642 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9643
9644         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9645         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9646
9647 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9648
9649         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9650         multilib osdirname if it exists.
9651         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9652
9653 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9654
9655         PR middle-end/45876
9656         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9657         arg0's type or its unsigned counterpart as utype.  Convert
9658         arg1 to utype unconditionally.
9659
9660 2010-10-04  Julian Brown  <julian@codesourcery.com>
9661
9662         * expr.c (expand_assignment): Add assertion to prevent emitting
9663         null rtx for movmisalign pattern.
9664         (expand_expr_real_1): Likewise.
9665         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9666         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9667         (arm_vector_alignment_reachable): New.
9668         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9669         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9670         (arm_print_operand): Include alignment qualifier in %A.
9671         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9672         (movmisalign<mode>): New expander.
9673         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9674         insn patterns.
9675
9676 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9677
9678         * optc-gen.awk: Define global_options_set.  Don't define
9679         target_flags_explicit.
9680         * opth-gen.awk: Declare global_options_set.  Define
9681         target_flags_explicit as macro.
9682         * opts-common.c (handle_option): Take opts_set and generated_p
9683         parameters.
9684         (handle_generated_option, read_cmdline_option, set_option): Take
9685         opts_set parameter.
9686         (set_option): Use opts_set instead of hardcoding target_flags and
9687         target_flags_explicit.
9688         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9689         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9690         flag_value_profile_transformations_set, flag_peel_loops_set,
9691         flag_branch_probabilities_set, flag_inline_functions_set,
9692         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9693         flag_predictive_commoning_set, flag_unswitch_loops_set,
9694         flag_gcse_after_reload_set): Remove.
9695         (common_handle_option, lang_handle_option, target_handle_option):
9696         Take opts_set parameter.  Assert that it is &global_options_set.
9697         (common_handle_option): Don't set _set variables.  Check opts_set
9698         instead of such variables.
9699         (enable_warning_as_error): Pass &global_options_set to
9700         handle_generated_option.
9701         * opts.h (cl_option_handler_func.handler, set_option,
9702         handle_option, handle_generated_option, read_cmdline_option): Add
9703         opts_set parameters.
9704         (handle_option): Add generated_p parameter.
9705         * config/i386/i386.c (ix86_function_specific_save,
9706         ix86_function_specific_restore): Updat for renaming of
9707         target_flags_explicit field.
9708         * config/i386/i386.opt (target_flags_explicit): Rename to
9709         ix86_target_flags_explicit.
9710         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9711         global_options_set.x_flag_selective_scheduling and
9712         global_options_set.x_flag_selective_scheduling2, not
9713         sel_sched_switch_set.
9714         * flags.h (sel_sched_switch_set,
9715         flag_speculative_prefetching_set): Remove.
9716         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9717         that it is &global_options_set.
9718         (process_command): Pass &global_options_set to read_cmdline_option.
9719         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9720         set_option.
9721         * toplev.c (target_flags_explicit): Remove.
9722
9723 2010-10-04  Jan Hubicka  <jh@suse.cz>
9724
9725         PR middle-end/45871
9726         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9727         use get_ref_base_and_offset to handle references.
9728         (fold_const_aggregate_ref): Update.
9729
9730 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9731
9732         PR tree-optimization/45572
9733         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9734         ipa_check_create_node_params.
9735         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9736
9737 2010-10-04  Yao Qi  <yao@codesourcery.com>
9738
9739         * doc/passes.texi: Clean up.
9740
9741 2010-10-03  Ian Lance Taylor  <iant@google.com>
9742
9743         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9744         referring to a field using a typedef name.
9745         (find_anonymous_field_with_type): New static function.
9746         (convert_to_anonymous_field): New static function.
9747         (convert_for_assignment): If -fplan9-extensions, permit converting
9748         pointer to struct to pointer to anonymous field.
9749         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9750         (is_duplicate_field): New static function.
9751         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9752         typedef names duplicating field names.
9753         (detect_field_duplicates): Likewise.
9754         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9755         (C Dialect Options): Document -fplan9-extensions.
9756         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9757
9758 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9759
9760         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9761         revision 164914.
9762         (vect_create_data_ref_ptr): Likewise.
9763         * tree-vect-stmts.c (vectorizable_store): Likewise.
9764         (perm_mask_for_reverse): Likewise.
9765         (reverse_vec_elements): Likewise.
9766         (vectorizable_load): Likewise.
9767
9768 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9769
9770         * cppbuiltin.c: New file.
9771         * cppbuiltin.h: New file.
9772         * Makefile.in: Take into account cppbuiltin.{h,c}.
9773
9774 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9775
9776         * lto-cgraph.c (input_cgraph): Check for missing sections.
9777
9778 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9779
9780         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9781         to nonimmediate_operand.  Force operand 2 to register when allowed.
9782         (*<shiftrt_insn><mode>3_mask): Ditto.
9783         (*<rotate_insn><mode>3_mask): Ditto.
9784
9785 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9786
9787         PR tree-optimization/45720
9788         PR tree-optimization/45764
9789         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9790         Don't accept backwards consecutive accesses.
9791         (vect_create_data_ref_ptr): Disallow negative steps.
9792
9793         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9794         (perm_mask_for_reverse): Removed.
9795         (reverse_vec_elements): Likewise.
9796         (vectorizable_load): Don't handle negative steps.
9797
9798 2010-10-02  Jan Hubicka  <jh@suse.cz>
9799
9800         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9801         call destination is known.
9802
9803 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9804
9805         PR target/45820
9806         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9807         earlier.
9808
9809 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9810
9811         * doc/install.texi (Configuration): Document build_configargs,
9812         host_configargs, target_configargs.
9813
9814 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9815
9816         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9817         (*<shiftrt_insn><mode>3_mask): Ditto.
9818         (*<rotate_insn><mode>3_mask): Ditto.
9819
9820 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9821
9822         PR tree-optimization/44716
9823         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9824         (HOT_TEXT_SECTION_NAME): Define.
9825
9826 2010-10-01  Nick Clifton  <nickc@redhat.com>
9827
9828         * common.opt: Add -fcombine-stack-adjustments.
9829         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9830         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9831         flag_combine_stack_adjustments.
9832         * doc/invoke.texi: Document the new option.
9833
9834 2010-10-01  Richard Guenther  <rguenther@suse.de>
9835
9836         PR tree-optimization/45854
9837         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9838
9839 2010-10-01  Anthony Green  <green@moxielogic.com>
9840
9841         * config.gcc: Fix moxie-*-rtems* configuration.
9842
9843 2010-10-01  Richard Guenther  <rguenther@suse.de>
9844
9845         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9846         (gen_decl_die): Likewise.
9847
9848 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9849
9850         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9851         to the function code for SPU MD builtins.
9852         (spu_expand_builtin): Update.
9853         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9854
9855 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9856
9857         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9858         sjlj_except_unwind_info.
9859
9860 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9861
9862         * configure.ac: Define the nop insn for avr*-*-*
9863         * configure: Regenerate.
9864
9865 2010-10-01  Alan Modra  <amodra@gmail.com>
9866
9867         PR target/45807
9868         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9869         extend toc_restore_insn.
9870
9871 2010-09-30  Richard Guenther  <rguenther@suse.de>
9872
9873         PR tree-optimization/43959
9874         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9875         create_tmp_var.
9876
9877 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9878
9879         * config/sh/sh.c (sh_expand_prologue): Set
9880         current_function_static_stack_size.
9881
9882 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9883
9884         * configure.ac: Check for Solaris 8 ld with .hidden support.
9885         * configure: Regenerate.
9886
9887 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9888
9889         PR middle-end/45758
9890         * graphite.c (graphite_initialize): Call scev_reset.
9891
9892 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9893
9894         * sese.h (scev_analyzable_p): Return false for real or floating
9895         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9896
9897 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9898
9899         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9900         and ps.
9901         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9902         domain.
9903         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9904         Do not allocate ub_expr, it is passed in initialized.
9905
9906 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9907
9908         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9909         (build_cloog_prog): Dump CLooG input file when
9910         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9911         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9912
9913 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9914
9915         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9916         verify_dominators for CDI_POST_DOMINATORS.
9917         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9918         (recompute_all_dominators): Remove call to free_dominance_info
9919         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9920         for CDI_POST_DOMINATORS.
9921
9922 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9923
9924         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9925         over pbb_dim_iter_domain.
9926
9927 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9928
9929         * graphite-flattening.c: Fix comments.
9930
9931 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9932
9933         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9934         (graphite-flattening.o): New rule.
9935         * common.opt (floop-flatten): New flag.
9936         * doc/invoke.texi (-floop-flatten): Documented.
9937         * graphite-flattening.c: New.
9938         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9939         * graphite-poly.h (flatten_all_loops): Declared.
9940         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9941         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9942         is set, also set flag_graphite.
9943
9944 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9945
9946         * graphite-poly.c (cloog_checksum): New.
9947         * graphite-poly.h (cloog_checksum): Declared.
9948
9949 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9950
9951         * graphite-poly.c (pbb_number_of_iterations): Removed.
9952         (pbb_number_of_iterations_at_time): Correctly compute the number
9953         of iterations in the transformed loop.
9954         * graphite-poly.h (pbb_number_of_iterations): Removed.
9955
9956 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9957
9958         * graphite-poly.h (lst_update_scattering_seq): Removed.
9959         (lst_update_scattering): Correctly handle outermost loop dewey
9960         renumbering.
9961
9962 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9963
9964         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9965         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9966         * graphite-poly.h (lst_niter_for_loop): New.
9967
9968 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9969
9970         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9971         transform read from disk is not legal.  Call fatal_error instead.
9972
9973 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9974
9975         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9976         (print_scop_header): Removed.  Inlined in the only call place...
9977         (print_scop): ... here.
9978
9979 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9980
9981         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9982
9983 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9984
9985         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9986
9987 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9988
9989         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9990         (dot_deps_stmt): Same.
9991         * graphite-poly.c (dot_lst): Same.
9992
9993 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9994
9995         * graphite-blocking.c (scop_do_strip_mine): Do not call
9996         graphite_legal_transform.
9997         (scop_do_block): Same.
9998
9999 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10000
10001         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
10002         description.
10003
10004 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10005
10006         * tree-scalar-evolution.c (instantiate_array_ref): New.
10007         (instantiate_scev_r): Also handle ARRAY_REFs.
10008
10009 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10010
10011         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10012         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
10013         RESULT_DECL, and FIELD_DECL.  Return false for an
10014         SSA_NAME_IS_DEFAULT_DEF.
10015         (compute_scalar_evolution_in_loop): Do not further analyze the
10016         scalar evolution when no_evolution_in_loop_p returns true.
10017
10018 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10019
10020         * tree-chrec.h (evolution_function_is_affine_p): Do not check
10021         whether CHREC_LEFT is invariant.  A function is affine when
10022         CHREC_RIGHT is invariant.
10023
10024 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10025
10026         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
10027         is_gimple_reg.
10028         (rewrite_degenerate_phi): Same.
10029         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
10030
10031 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10032
10033         * graphite-scop-detection.c (graphite_can_represent_scev,
10034         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
10035         graphite_can_represent_loop): Remove outermost_loop.
10036
10037 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10038
10039         PR middle-end/45229
10040         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
10041         handle GIMPLE_CALLs with no LHS.
10042
10043 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10044
10045         * graphite-poly.c (init_graphite_out_file): New.
10046         (init_graphite_in_file): New.
10047         (apply_poly_transforms): Updated to enable reading and writing of
10048         multiple scop files.
10049
10050 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
10051
10052         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
10053         redundant checks.
10054
10055 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10056
10057         * graphite-clast-to-gimple.c (precision_for_value): Adjust
10058         computation of precision by 1.
10059
10060 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10061
10062         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
10063         (openscop_read_polyhedron_matrix): New.
10064         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
10065         (openscop_read_N_int): Same.
10066         * graphite-poly.c (openscop_read_N_int): New.
10067         (openscop_read_one_int): New.
10068         (openscop_read_N_string): New.
10069         (openscop_read_one_string): New.
10070         (openscop_read_powerset_matrix): New.
10071         (graphite_read_transforms): Remove.
10072         (graphite_read_scatt): New.
10073         (graphite_read_scop_file): New.
10074         (apply_poly_transforms): Updated to call graphite_read_scop_file.
10075
10076 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10077
10078         * graphite-poly.c: Change include order.
10079
10080 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10081
10082         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
10083         (cloog_matrix_nrows): New.
10084
10085 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10086
10087         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
10088         from matrix lines.
10089         * graphite-poly.c (openscop_print_scattering_function_1): Same.
10090         (print_scattering_function_1): Same.
10091         (openscop_print_pbb_domain): Same.
10092         (openscop_print_scop_context): Same.
10093         (print_scop_context): Same.
10094
10095 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
10096
10097         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
10098         (openscop_print_pdr_polyhedron): Print pph.
10099
10100 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10101
10102         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
10103         priority signed types.
10104
10105 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10106
10107         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
10108         the call to lang_hooks.types.type_for_size.  Call
10109         build_nonstandard_integer_type.
10110
10111 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10112
10113         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
10114         (openscop_print_polyhedron_matrix): New.
10115         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
10116         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
10117         (openscop_print_pdr_powerset): New.
10118         (openscop_print_powerset_matrix): New.
10119         (openscop_print_scattering_function_1): New.
10120         (print_scattering_function): Add support for scattering names and
10121         OpenScop format.
10122         (graphite_write_transforms): Remove.
10123         (print_pdr_access_layout): Updated to support OpenScop format.
10124         (print_pdr): Same.
10125         (openscop_print_pbb_domain): New.
10126         (print_pbb_body): Added a parameter to allow indicating that pbb_body
10127         is not provided.
10128         (print_pbb): Updated to call the new print_pbb_body.
10129         (openscop_print_scop_context): New.
10130         (print_scop_header): New.
10131         (print_scop): Updated to call print_scop_header.
10132         * graphite-poly.h: Document OpenScop format.
10133
10134 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
10135
10136         * config/cris/m32c.c (cris_memory_move_cost): New.
10137         (cris_register_move_cost): Make static. Change arguments type from
10138         enum reg_class to reg_class_t.
10139         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10140         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10141         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
10142
10143 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10144
10145         PR target/45843
10146         * config/i386/i386.c (ix86_gimplify_va_arg): Use
10147         INTVAL (XEXP (slot, 1)) as prev_size.
10148
10149 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
10150
10151         PR target/45837
10152         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
10153         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
10154         defined.
10155         * config/rs6000/option-defaults.h (toplevel): Change #if
10156         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
10157         global option changes.
10158
10159 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10160
10161         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
10162
10163         PR tree-optimization/31261
10164         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
10165         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
10166
10167 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10168
10169         PR bootstrap/45796
10170         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
10171         special-casing for generators and turn into ...
10172         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
10173         rule, for better error messages in case of toplevel dependency errors.
10174         (genprog): Add hooks, rename to ...
10175         (genprogerr): ... this, and let genprog also contain check,
10176         checksum, condmd.
10177         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
10178         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
10179         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
10180
10181 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
10182             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10183
10184         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
10185         for GMP, MPFR and MPC.
10186
10187 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10188
10189         * config/sparc/sparc.opt (mimpure-text): Move ...
10190         * config/sol2.opt: ... here.  Correct description.
10191         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
10192         * doc/invoke.texi (Option Summary, SPARC Options): Move
10193         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
10194         (Option Summary, Solaris 2 Options): ... here.
10195         (Submodel Options, Solaris 2 Options): New menu entry.
10196         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
10197         (Solaris 2 Options): ... here.
10198
10199 2010-09-30  Michael Eager  <eager@eagercon.com>
10200
10201         * extend.texi (interrupt_handler): Add MicroBlaze to list.
10202         (save_volatiles): Describe option for MicroBlaze.
10203         * invoke.texi: Add MicroBlaze Options.
10204         * contrib.texi: Add acknowledgment.
10205         * md.texi: Add MicroBlaze d and z constraints.
10206         * install.texi: Add microblaze-*-elf.
10207         * configure.ac: Add microblaze-*-* to target list.
10208         * configure: Regenerate.
10209         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
10210         * config/microblaze/microblaze-protos.h: New.
10211         * config/microblaze/crti.s: New.
10212         * config/microblaze/predicates.md: New.
10213         * config/microblaze/linux.h: New.
10214         * config/microblaze/microblaze.md: New.
10215         * config/microblaze/constraints.md: New.
10216         * config/microblaze/crtn.s: New.
10217         * config/microblaze/microblaze.opt: New.
10218         * config/microblaze/microblaze-c.c: New.
10219         * config/microblaze/t-microblaze: New.
10220         * config/microblaze/microblaze.c: New.
10221         * config/microblaze/microblaze.h: New.
10222
10223 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
10224
10225         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
10226         parse @optional/@required and set the flags as appropriate.
10227
10228 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
10229
10230         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
10231
10232 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
10233
10234         * opt-functions.awk (static_var): Update comment.
10235         (var_ref): Return offsetof expression or -1, not variable address.
10236         * optc-gen.awk: Generate structure field initializers instead of
10237         static variables.  Expect -1 for missing variables instead of null
10238         pointer.  Add gcc_options parameters to generated functions.
10239         * opth-gen.awk: Generate structure fields for static variables.
10240         Add gcc_options parameters to generated functions.
10241         * common.opt (optimize, optimize_size): Add variables.
10242         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
10243         &global_options to cl_target_option_restore.
10244         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
10245         &global_options to cl_optimization_restore, cl_target_option_save
10246         and cl_target_option_restore.
10247         (ix86_set_current_function): Pass &global_options to
10248         cl_target_option_restore.
10249         * config/pdp11/pdp11.h (optimize): Remove.
10250         * config/rs6000/rs6000.h (optimize): Remove.
10251         * config/sh/sh.h (optimize): Remove.
10252         * config/xtensa/xtensa.h (optimize): Remove.
10253         * coretypes.h (struct gcc_options): Declare.
10254         * diagnostic.c (diagnostic_initialize): Initialize
10255         context->option_state.
10256         (diagnostic_report_diagnostic): Pass option_state to
10257         option_enabled hook.
10258         * diagnostic.h (diagnostic_context.option_enabled): Add void *
10259         parameter.
10260         (diagnostic_context.option_state): New field.
10261         * final.c (final_start_function, final, final_scan_insn): Rename
10262         optimize parameter to optimize_p.
10263         * flags.h (optimize, optimize_size): Remove.
10264         * function.c (invoke_set_current_function_hook): Pass
10265         &global_options to cl_optimization_restore.
10266         * gcc.c (driver_handle_option): Take gcc_options parameter.
10267         Assert that it is &global_options.
10268         (process_command): Pass &global_options to read_cmdline_option.
10269         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
10270         option_enabled.
10271         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
10272         &global_options to set_option.
10273         * opts-common.c (handle_option, handle_generated_option,
10274         read_cmdline_option, set_option): Take explicit gcc_options
10275         parameters.  Use option_flag_var.
10276         (option_flag_var): New.
10277         * opts.c (common_handle_option, lang_handle_option,
10278         target_handle_option): Take gcc_options parameter.  Assert that it
10279         is &global_options.
10280         (read_cmdline_options): Pass &global_options to read_cmdline_option.
10281         (print_filtered_help): Use option_flag_var.  Pass &global_options
10282         to option_enabled.
10283         (common_handle_option): Use option_flag_var.
10284         (option_enabled): Take opts parameter.  Use option_flag_var.
10285         (get_option_state): Take gcc_options parameter.  Use
10286         option_flag_var.  Pass gcc_options parameter to option_enabled.
10287         (enable_warning_as_error): Pass &global_options to
10288         handle_generated_option.
10289         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
10290         (cl_option_handler_func.handler): Take gcc_options parameter.
10291         (option_enabled, get_option_state, set_option, handle_option,
10292         handle_generated_option, read_cmdline_option): Take gcc_options
10293         parameters.
10294         * toplev.c (optimize, optimize_size): Remove.
10295         (print_switch_values): Pass &global_options to option_enabled.
10296         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10297         to get_option_state.
10298         (general_init): Initialize global_dc->option_state.
10299         * tree.c (build_optimization_node): Pass &global_options to
10300         cl_optimization_save.
10301         (build_target_option_node): Pass &global_options to
10302         cl_target_option_save.
10303
10304 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10305
10306         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10307         zero sized bit-fields.
10308
10309 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10310
10311         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10312         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10313         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10314         (c_parser_objc_class_declaration): Same change.
10315         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10316         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10317         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10318         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10319         and RID_AT_PUBLIC instead of RID_PUBLIC.
10320         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10321         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10322
10323 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10324
10325         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10326         Add links to current providers of packages for Solaris and IRIX.
10327
10328 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10329
10330         Merge from 'apple/trunk' branch on FSF servers.
10331         * c-parser.c: Applied change originally in c-parse.in.
10332
10333         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10334
10335         Radar 4281748
10336         * c-decl.c (start_decl): Check for redeclaration of class name.
10337         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10338
10339 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10340
10341         * config/ia64/ia64.c (ia64_builtin_decl): New.
10342         (TARGET_BUILTIN_DECL): Define.
10343         (ia64_builtins): New.
10344         (ia64_init_builtins): Save decls in ia64_builtins.
10345
10346 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10347
10348         PR target/40457
10349         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10350         (move2add_use_add3_insn): Likewise.
10351         (reload_cse_move2add): Likewise.
10352         * rtlanal.c (get_full_rtx_cost): New function.
10353         * rtl.h (struct full_rtx_costs): New.
10354         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10355         costs_add_n_insns): New inline functions.
10356         (get_full_rtx_cost): Declare.
10357
10358         PR c/45054
10359         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10360         invariants.  Check for reg_equiv_invariant.
10361         (reload): Assert that spilled_pseudos is empty when returning.
10362
10363 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10364
10365         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10366         TARGET_64BIT_DEFAULT in #if check.
10367
10368 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10369
10370         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10371
10372 2010-09-29  Mike Stump  <mikestump@comcast.net>
10373
10374         * config/darwin.h (flag_mkernel): Remove.
10375         (flag_apple_kext): Likewise.
10376
10377 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10378             Jack Howarth  <howarth@bromo.med.uc.edu>
10379
10380         * config/darwin.opt (undefined): Add.
10381
10382 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10383
10384         PR testsuite/45664
10385         * configure.ac: Add --enable-indirect-function option.
10386         * config.gcc: Add default_gnu_indirect_function.
10387         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10388         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10389         * varasm.c (do_assemble_alias): Adjust for macro name change.
10390         * configure: Rebuilt.
10391         * doc/install.texi: Document --enable-indirect-function.
10392
10393 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10394
10395         * doc/options.texi (Variable, Var, Init): Update documentation
10396         without reference to VarExists.
10397         (VarExists): Remove.
10398         * common.opt, config/i386/i386.opt, config/linux.opt,
10399         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10400         Don't use VarExists.
10401
10402 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10403
10404         * optc-gen.awk: Generate global_options initializer instead of
10405         individual variables.  Add x_ prefix to names of structure members.
10406         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10407         names of structure members.
10408         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10409         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10410         * doc/tm.texi: Regenerate.
10411         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10412         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10413         * c-parser.c (disable_extension_diagnostics,
10414         restore_extension_diagnostics): Update names of cpp_options members.
10415         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10416         * common.opt (fcompare-debug-second): Don't use Var.
10417         * config/alpha/alpha.h (target_flags): Remove.
10418         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10419         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10420         * config/bfin/bfin.h (target_flags): Remove.
10421         * config/cris/cris.h (target_flags): Remove.
10422         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10423         cl_target_option members.
10424         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10425         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10426         ix86_can_inline_p): Update names of cl_target_option members.
10427         * config/i386/i386.h (ix86_isa_flags): Remove.
10428         * config/lm32/lm32.h (target_flags): Remove.
10429         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10430         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10431         flag_omit_frame_pointer.
10432         * config/mep/mep.h (target_flags): Remove.
10433         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10434         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10435         * config/mmix/mmix.h (target_flags): Remove.
10436         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10437         flag_expensive_optimizations): Remove.
10438         * config/s390/s390.h (flag_pic): Remove.
10439         * config/score/score-conv.h (target_flags): Remove.
10440         * config/sh/sh.h (sh_fixed_range_str): Remove.
10441         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10442         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10443         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10444         * diagnostic.c (diagnostic_initialize): Update names of
10445         diagnostic_context members.
10446         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10447         warn_system_headers.
10448         (diagnostic_report_warnings_p): Update for new names.
10449         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10450         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10451         HARD_FRAME_POINTER_IS_ARG_POINTER.
10452         * flags.h (flag_compare_debug): Declare.
10453         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10454         * opts.c (flag_compare_debug): Define.
10455         (common_handle_option): Update names of diagnostic_context
10456         members.  Handle -fcompare-debug-second.
10457         (fast_math_flags_struct_set_p): Update names of cl_optimization
10458         members.
10459         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10460         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10461         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10462         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10463         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10464         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10465         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10466         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10467         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10468
10469 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10470
10471         * config/picochip/picochip.c (picochip_output_internal_label):
10472         This function can now be called for debug CFI labels, which can come
10473         in the middle of a vliw instruction.  Postpone until end of vliw.
10474
10475 2010-09-29  Richard Guenther  <rguenther@suse.de>
10476
10477         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10478         (DECL_FILE_SCOPE_P): Use it.
10479         (TYPE_FILE_SCOPE_P): New macro.
10480
10481 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10482
10483         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10484         a CPP_NAME which is a reserved word, clearly separate cases for
10485         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10486
10487 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10488
10489         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10490         token->value with the canonical spelling.  Do exactly like C and
10491         C++ and leave it as it is.
10492
10493 2010-09-28  Richard Henderson  <rth@redhat.com>
10494
10495         * config/alpha/alpha.c (alpha_builtins): New.
10496         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10497         (alpha_builtin_function): New.
10498         (alpha_add_builtins, alpha_init_builtins): Use it.
10499
10500 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10501
10502         * doc/standards.texi (Standards): Expanded the section on
10503         Objective-C and Objective-C++.
10504
10505 2010-09-28  DJ Delorie  <dj@redhat.com>
10506
10507         PR target/45800
10508         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10509         volatile MEMs.
10510
10511 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10512
10513         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10514         attributes on methods.
10515          (c_parser_objc_method_definition): Handle attributes.
10516         (c_parser_objc_methodproto): Likewise.
10517         (c_parser_objc_maybe_method_attributes): New.
10518         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10519         missing definition, similar to that in ObjC++.
10520
10521 2010-09-28  Richard Henderson  <rth@redhat.com>
10522
10523         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10524         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10525         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10526         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10527         (STACK_CHECK_PROTECT): Likewise.
10528         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10529         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10530         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10531         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10532         (dwarf2out_assembly_start): Likewise.
10533         * except.c (init_eh): Use targetm.except_unwind_info.
10534         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10535         (output_one_function_exception_table): Likewise.
10536         * final.c: Unconditionally include dwarf2out.h.
10537         (final_start_function): Unconditionally call dwarf2out routines.
10538         (final_end_function, final_scan_insn): Likewise.
10539         * function.c (expand_function_end): Use targetm.except_unwind_info.
10540         * opts.c (decode_options): Use targetm.except_unwind_info.
10541         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10542         * target.def (debug_unwind_info, except_unwind_info): New.
10543         * target.h (enum unwind_info_type): New.
10544         * targhooks.c (default_debug_unwind_info): New.
10545         (default_except_unwind_info): New.
10546         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10547         * targhooks.h: Declare them.
10548         * tree-tailcall.c: Include "target.h"
10549         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10550         * Makefile.in (tree-tailcall.o): Update.
10551         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10552         (lhd_gcc_personality): Likewise.
10553
10554         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10555         (TARGET_EXCEPT_UNWIND_INFO): New.
10556         (DWARF2_UNWIND_INFO): Update.
10557         (TARGET_DEBUG_UNWIND_INFO): New.
10558         * doc/tm.texi: Rebuild.
10559
10560         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10561         targetm.except_unwind_info.
10562
10563         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10564         (arm_except_unwind_info): New.
10565         (arm_compute_func_type): Use it.
10566         (arm_expand_prologue, thumb_pushpop): Likewise.
10567         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10568         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10569         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10570         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10571         (DWARF2_UNWIND_INFO): Remove.
10572         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10573         (ARM_EABI_UNWIND_TABLES): Remove.
10574
10575         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10576         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10577         (ia64_except_unwind_info): New.
10578         (ia64_output_function_prologue): Use it.
10579         (ia64_add_bundle_selector_before): Likewise.
10580         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10581         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10582         (TARGET_UNWIND_INFO): Remove.
10583
10584         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10585
10586 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10587
10588         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10589         (c_parser_objc_protocol_definition): Likewise.
10590         (c_parser_external_declaration): Provide dummy attribute arguments.
10591         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10592         (c_parser_objc_class_definition): Handle attributes.
10593         (c_parser_objc_protocol_definition): Likewise.
10594
10595 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10596
10597         PR fortran/40569
10598         PR fortran/40568
10599         * toplev.h (save_decoded_options, save_decoded_options_count):
10600         New global variables.
10601         * toplev.c (save_decoded_options, save_decoded_options_count):
10602         Export variables.
10603
10604 2010-09-28  Ian Lance Taylor  <iant@google.com>
10605
10606         * config/i386/i386.c (ix86_supports_split_stack): Test
10607         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10608
10609 2010-09-28  Ian Lance Taylor  <iant@google.com>
10610
10611         PR target/45815
10612         * opts.c (decode_options): Don't test whether the target supports
10613         split stack if flag_split_stack == 0.
10614
10615 2010-09-28  Jan Hubicka  <jh@suse.cz>
10616
10617         * builtin-attrs.def (ATTR_LEAF): New attribute.
10618         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10619         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10620         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10621         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10622         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10623         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10624         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10625         * sync-builtins.def: Annotate all builtins by leaf.
10626         * omp-builtins.def: Annotate all builtins by leaf.
10627         * builtins.def: Annotate relevant builtins with leaf attribute.
10628         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10629         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10630         leaf.
10631
10632 2010-09-28  Jan Hubicka  <jh@suse.cz>
10633
10634         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10635         (fold_const_aggregate_ref): Use it.
10636         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10637         into external static.
10638
10639 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10640
10641         PR target/44452
10642         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10643         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10644         (ix86_solaris_return_in_memory): Remove.
10645         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10646         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10647         (TARGET_SUBTARGET_DEFAULT): Redefine.
10648         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10649         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10650         (TARGET_SUBTARGET_DEFAULT): Redefine.
10651         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10652         -mvect8-ret-in-mem.
10653         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10654
10655 2010-09-29  Alan Modra  <amodra@gmail.com>
10656
10657         PR target/45807
10658         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10659         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10660         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10661         Delete.
10662         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10663         (rs6000_emit_prologue): Don't just create frame save info for r2,
10664         actually save r2.
10665
10666 2010-09-28  Richard Henderson  <rth@redhat.com>
10667
10668         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10669         when 8 bytes are requested.
10670
10671 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10672
10673         * config/avr/avr.c (expand_prologue): Set
10674         current_function_static_stack_size.
10675
10676 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10677
10678         * config/alpha/alpha.md: Change the initial condition of the
10679         probing loop.
10680
10681 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10682
10683         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10684         Split from *avx_<maxmin:code><mode>3.
10685         (*avx_<smaxmin:code><mode>3): Ditto.
10686         * config/i386/i386.md (maxmin): Remove code iterator.
10687
10688 2010-09-27  Ian Lance Taylor  <iant@google.com>
10689
10690         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10691         requires assembler support for CFI directives.
10692
10693 2010-09-27  Richard Henderson  <rth@redhat.com>
10694
10695         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10696
10697 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10698
10699         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10700         that AFTER is not in the range FROM..TO, inclusive.
10701
10702 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10703             Bernd Schmidt  <bernds@codesourcery.com>
10704
10705         PR rtl-optimization/45792
10706         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10707         If not all insns are to be merged, for each edge, stash the
10708         next candidate after the to-be-merged insns before doing the
10709         merge, and use them for the retry at the new insertion point.
10710         Handle CC0 targets when retrying.
10711
10712 2010-09-27  Ian Lance Taylor  <iant@google.com>
10713
10714         * common.opt (fsplit-stack): New option.
10715         * opts.c (decode_options): Set flag_split_stack to final value.
10716         * target.def (supports_split_stack): New hook.
10717         * gcc.c (STACK_SPLIT_SPEC): Define.
10718         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10719         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10720         (Code Gen Options): Document -fsplit-stack.
10721         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10722         (Function Attributes): Document no_split_stack.
10723         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10724         TARGET_SUPPORTS_SPLIT_STACK.
10725         * doc/tm.texi: Rebuild.
10726         * function.c (thread_prologue_and_epilogue_insns): If
10727         flag_split_stack, add split stack prologue.
10728         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10729         * varasm.c (saw_no_split_stack): New static variable.
10730         (assemble_start_function): Set saw_no_split_stack if the function
10731         has the no_split_stack attribute.
10732         (file_end_indicate_split_stack): New function.
10733         * output.h (file_end_indicate_split_stack): Declare.
10734         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10735         and function.
10736         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10737         routines.
10738         * config/i386/i386.c (ix86_option_override_internal): Don't set
10739         expand_builtin_va_start to NULL if -fsplit-stack.
10740         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10741         -fsplit-stack.
10742         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10743         scratch register set by prologue.
10744         (ix86_code_end): If -fsplit-stack, call
10745         file_end_indicate_split_stack.
10746         (ix86_supports_split_stack): New static function.
10747         (SPLIT_STACK_AVAILABLE): Define.
10748         (split_stack_prologue_scratch_regno): New static function.
10749         (split_stack_fn): New static variable.
10750         (ix86_expand_split_stack_prologue): New function.
10751         (ix86_live_on_entry): New static function.
10752         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10753         (output_pic_addr_const): Likewise.
10754         (i386_asm_output_addr_const_extra): Likewise.
10755         (ix86_expand_call): Change return type to rtx.  Return the new
10756         call instruction.
10757         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10758         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10759         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10760         (split_stack_prologue, split_stack_return): New insns.
10761         (split_stack_space_check): New insn.
10762         * config/i386/i386.h (struct machine_function): Add
10763         split_stack_varargs_pointer field.
10764         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10765         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10766         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10767         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10768         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10769         Declare.
10770         (ix86_expand_call): Update declaration.
10771
10772 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10773
10774         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10775         code.  Added byref, which was missing in the list of codes.
10776         Explain that enumeration values are encoded as the integer type
10777         that the compiler uses to store them.  Explain and make examples
10778         of how 'const' interacts with pointers, and the complication of
10779         the encoding of 'const char *'.
10780         (Legacy type encoding): New subsection, explaining that GCC emits
10781         incorrect type encodings for the NeXT runtime for compatibility
10782         reasons.
10783         (@@encode): New subsection, explaining @encode and particularly
10784         that protocol qualifiers are not recognized inside an @encode()
10785         expression.
10786         (Method signatures): New subsection, explaining how method
10787         signatures are encoded.
10788
10789 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10790
10791         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10792         change in build_conditional_expr that had been added when fixing
10793         PR objc/27377 and which did the same check in a less complete way.
10794
10795         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10796
10797         Radar 4229905
10798         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10799         looking for objective-c common pointer types.
10800
10801         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10802
10803         Radar 4154928
10804         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10805         use their ObjC common type.
10806
10807 2010-09-27  Richard Guenther  <rguenther@suse.de>
10808
10809         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10810
10811 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10812
10813         * print-tree.c (print_node): Print in-constant-pool.
10814
10815 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10816
10817         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10818         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10819         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10820         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10821
10822 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10823
10824         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10825         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10826         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10827         pro_epilogue_adjust_stack_<mode>_3.
10828         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10829         renamed pro_epilogue_adjust_stack_{si,di}_add.
10830         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10831         pro_epilogue_adjust_stack_{si,di}_sub.
10832
10833 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10834
10835         * config/i386/i386.md (movmsk_df): New insn.
10836         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10837         sequence for TARGET_SSE_MATH.
10838
10839 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10840
10841         * config/mips/mips.c (mips_builtin_decls): Declare.
10842         (mips_init_builtins): Store function declarations in
10843         mips_builtin_decls.
10844         (mips_builtin_decl): New function.
10845         (TARGET_BUILTIN_DECL): Define.
10846
10847 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10848             Richard Henderson  <rth@redhat.com>
10849
10850         * config/i386/cygwin.asm: Include auto-host.h.
10851         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10852         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10853         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10854         alignment code from the 64-bit path.  Use gas local labels.
10855         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10856         from _di_2.  Remove the useless constant integer argument.
10857         (pro_epilogue_adjust_stack_<mode>_3): New.
10858         (allocate_stack_worker_probe_<mode>): Macroize from
10859         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10860         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10861         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10862         (__chkstk_ms): New function.
10863         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10864         * config/i386/t-interix: Likewise.
10865         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10866         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10867         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10868         * configure, config.in: Rebuild.
10869
10870 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10871
10872         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10873         statements because of the return slot optimization.
10874
10875 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10876
10877         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10878         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10879         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10880         (class_likely_spilled_p): Rename to...
10881         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10882         type to reg_class_t.
10883
10884 2010-09-24  Jan Hubicka  <jh@suse.cz>
10885
10886         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10887         (lto_symtab_resolve_symbols): Set it.
10888         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10889         store resolution field in cgraph/varpool.
10890         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10891         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10892         (cgraph_dump_node): Drop used_from_object_file.
10893         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10894         (cgraph_function_body_availability): Use decl_replaceable_p.
10895         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10896         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10897         cgraph_used_from_object_file_p.
10898         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10899         cgraph_used_from_object_file_p.
10900         (resolution_used_from_other_file_p): New functoin.
10901         (cgraph_used_from_object_file_p): New predicate.
10902         * cgraph.h: Include plugin-api.h
10903         (struct cgraph_local_info): Remove used_from_object_file.
10904         (struct cgraph_node): Add resolution field.
10905         (struct varpool_node): Likewise; remove used_from_object_file;
10906         reove const_value_known.
10907         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10908         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10909         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10910         varpool_used_from_object_file_p): Declare.
10911         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10912         * tree.h (DECL_REPLACEABLE_P): Remove.
10913         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10914         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10915         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10916         input_overwrite_node, input_node, input_varpool_node): Stream
10917         resolution.
10918         * expr.c (expand_expr_real_1): Use const_value_known_p
10919         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10920         const_value_known.
10921         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10922         (function_and_variable_visibility): Set resolution for local vars
10923         and functions; use varpool_used_from_object_file_p.
10924         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10925         static functions.
10926         (default_binds_local_p_1): Use resolutoin info.
10927         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10928         * varpool.c (varpool_get_node): Constify.
10929         (const_value_known_p): Do not use vnode->const_value_known;
10930         use decl_replaceable_p.
10931         (varpool_finalize_decl): Do not set const_value_known.
10932         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10933         (varpool_extra_name_alias): Return new node.
10934         (varpool_used_from_object_file_p): New function.
10935
10936 2010-09-24  Richard Henderson  <rth@redhat.com>
10937
10938         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10939         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10940         (do_spill): Use REG_CFA_OFFSET.
10941         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10942         as appropriate.
10943         (ia64_expand_epilogue): Likewise.
10944         (process_set): Split into ...
10945         (process_cfa_adjust_cfa): this,
10946         (process_cfa_register): this,
10947         (process_cfa_offset): and this new function.
10948         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10949         instead of REG_FRAME_RELATED_EXPR.
10950
10951 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10952
10953         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10954
10955 2010-09-24  Jan Hubicka  <jh@suse.cz>
10956
10957         * doc/extend.texi: (attribute leaf): Document.
10958         * tree.c (local_define_builtin): Handle ECF_LEAF.
10959         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10960         * tree.h (ECF_LEAF): New.
10961         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10962         overwrittable and unavailable functions.
10963         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10964         (copy_global_bitmap): Do not copy all_module_statics.
10965         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10966         (propagate): Handle overwritable and unavailable leaf functions;
10967         initialize global info for overwritable and unavailable leaf functions;
10968         do not free all module statics.
10969         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10970         local statics.
10971         * calls.c (flags_from_decl_or_type): Handle leaf.
10972         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10973         abnormal gotos.
10974
10975 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10976
10977         * gengtype.c: Reindented.
10978         * gengtype.h: Reindented.
10979         * gengtype-parse.c: Reindented.
10980
10981 2010-09-24  Jan Hubicka  <jh@suse.cz>
10982
10983         PR tree-optimization/45738
10984         PR tree-optimization/45741
10985         * expr.c (string_constant): Allow CONST_DECL too;
10986         check that DECL_INITIAL is set.
10987         * varpool.c (const_value_known_p): Only look into VAR_DECL
10988         and CONST_DECL.
10989
10990 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10991
10992         * common.opt (undef): New.
10993
10994 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10995
10996         PR middle-end/45234
10997         * rtl.h (enum global_rtl_index): Add
10998         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10999         (LAST_VIRTUAL_POINTER_REGISTER): Define.
11000         (virtual_preferred_stack_boundary_rtx,
11001         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
11002         (LAST_VIRTUAL_REGISTER): Increase by one.
11003         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
11004         instead of LAST_VIRTUAL_REGISTER.
11005         * function.c (instantiate_new_reg): Handle
11006         virtual_preferred_stack_boundary_rtx.
11007         * emit-rtl.c (init_virtual_regs): Handle
11008         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11009         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
11010         * explow.c (round_push): If crtl->preferred_stack_boundary
11011         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
11012         virtual_preferred_stack_boundary_rtx alignment instead of
11013         crtl->preferred_stack_boundary alignment.
11014         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
11015         macros.  Never decrease crtl->preferred_stack_boundary,
11016         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
11017         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
11018         stack_pointer_delta in dynamic allocation, even when size
11019         is constant.
11020         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
11021         macro.
11022         * print-rtl.c (print_rtx): Handle
11023         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11024         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
11025         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
11026         * config/frv/frv.c (frv_emit_movsi): Likewise.
11027         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
11028         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
11029         Likewise.
11030
11031         Revert:
11032         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11033
11034         PR middle-end/45234
11035         * calls.c (expand_call): Make sure that all variable sized
11036         adjustments are multiple of preferred stack boundary after
11037         stack alignment.
11038
11039 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
11040             Dominique Dhumieres  <dominiq@lps.ens.fr>
11041
11042         PR bootstrap/45751
11043         * config/darwin-driver.c (darwin_default_min_version):
11044         Adjust size passed to memcpy in two places.
11045
11046 2010-09-24  Richard Guenther  <rguenther@suse.de>
11047
11048         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
11049         Make sure to not call set_type_context with error_mark_node.
11050         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
11051
11052 2010-09-24  Richard Guenther  <rguenther@suse.de>
11053
11054         * Makefile.in (OBJS-onestep): Remove.
11055         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
11056         (libbackend.a): Remove onestep support.
11057         (libbackend.o): Remove.
11058         * configure.ac (--enable-intermodule): Remove.
11059         * configure: Regenerate.
11060
11061 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
11062
11063         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
11064         reaching the end of a block if it occurs at a DEBUG_INSN.
11065
11066 2010-09-09  Tristan Gingold  <gingold@adacore.com>
11067
11068         PR target/44242
11069         * config/vms/vms-crt0-64.c: Removed.
11070         * config/vms/vms-crt0.c: Removed.
11071         * config/vms/vms-psxcrt0-64.c: Removed.
11072         * config/vms/vms-psxcrt0.c: Removed.
11073         * config/vms/vms-ucrt0.c: New file.
11074         * config/vms/t-vms64: Removed.
11075         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
11076         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
11077         * config.gcc (alpha-dec-vms): Use t-vms.
11078
11079 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11080
11081         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
11082         underfull hbox in DVI output.
11083         (-fobjc-class-cxx-cdtors): Same change.
11084         (-fobjc-exceptions): Tidied up documentation.  Explain what the
11085         option does, but moved the (lenghty) description of the exception
11086         syntax into objc.texi.
11087         (-fobjc-gc): Explain that the option is not useful with the GNU
11088         runtime.
11089         (-fzero-link): Explain that the GNU runtime always works in
11090         "zero-link" mode.
11091         * doc/objc.texi: All sections: simplified @node declarations
11092         removing specification of next, previous, up node.
11093         (Objective-C): Updated introduction.
11094         (Garbage Collection): Updated.  The bohem-gc library is now
11095         included in gcc itself.  Mention that this section only applies to
11096         the GNU Objective-C runtime.
11097         (compatibility_alias): Small tidy up.
11098         (Exceptions): New section mostly containing text previously in the
11099         description of the -fobjc-exception command-line option.
11100         (Synchronization): Same.
11101
11102 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
11103
11104         * config/i386/i386.md (ix86_code_end): Move the initialization of
11105         xops array near the consumer.  Use AX_REG and SP_REG instead of
11106         numerical constants.
11107
11108 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11109
11110         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
11111         method [methodname]' for an Objective-C method instead of the less
11112         satisfactory 'too many arguments to function' (with no method name).
11113
11114 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
11115
11116         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
11117         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
11118         (execute_update_addresses_taken): Remove parameter.  Execute the
11119         optimization unconditionally.
11120         * passes.c (execute_function_todo): Call execute_update_addresses_taken
11121         unconditionally if TODO_rebuild_alias is set, else only when optimizing
11122         if TODO_update_address_taken is set.
11123
11124 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
11125
11126         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11127         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
11128         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11129         (arm_output_addr_const_extra): Make static.
11130
11131 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
11132
11133         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
11134         define as unspec_volatile.
11135         ("nops"): Define as unspec_volatile. Use fputs to write to
11136         asm_out_file directly.  Output NOPs on separate lines using while loop.
11137         * config/i386/i386.c (ix86_code_end): Use fputs to write to
11138         asm_out_file directly.  Output NOPs on separate lines using while loop.
11139
11140 2010-09-23  Richard Guenther  <rguenther@suse.de>
11141
11142         PR tree-optimization/45565
11143         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
11144         Make sure to adjust the fndecl before replacing the stmt.
11145
11146 2010-09-23  Richard Guenther  <rguenther@suse.de>
11147
11148         PR middle-end/45750
11149         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
11150         gimplifying MEM_REF.
11151
11152 2010-09-23  Alan Modra  <amodra@gmail.com>
11153
11154         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
11155         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
11156
11157 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
11158
11159         PR rtl-optimization/44374
11160         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
11161         * df-core.c (df_set_bb_dirty): Set it.
11162         * ifcvt.c (find_memory): Remove function.
11163         (dead_or_predicable): Use can_move_insns_across.
11164         * df.h (can_move_insns_across): Declare function.
11165         * cfgcleanup.c (block_was_dirty): New static variable.
11166         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
11167         than df_get_bb_dirty.
11168         (try_head_merge_bb): New static function.
11169         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
11170         is set.
11171         * df-problems.c: Include "target.h"
11172         (df_simulate_find_uses): New static function.
11173         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
11174         (find_memory, find_memory_store): New static functions.
11175         (can_move_insns_across): New function.
11176         * Makefile.in (df-problems.o): Update dependencies.
11177
11178 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11179
11180         PR java/44095
11181         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
11182         is specified and the suffix of the file isn't ".c".
11183         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11184
11185 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11186
11187         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
11188         * doc/cppopts.texi: Fix markup of index entry.
11189         * doc/extend.texi (Constructing Calls): Fix markup of
11190         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
11191         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
11192         (Vague Linkage, C++ Attributes): Fix markup of index entries and
11193         keywords.
11194         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
11195         avoid long lines.
11196         (C Dialect Options, C++ Dialect Options, Warning Options)
11197         (Debugging Options, Spec Files, Darwin Options)
11198         (i386 and x86-64 Options, MIPS Options)
11199         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
11200         index entries, avoid abbreviations, allow URLs to wrap, avoid
11201         long lines, avoid overlong pages from long @itemx lists.
11202         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
11203         * doc/standards.texi (Standards): Likewise.
11204         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
11205
11206 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11207
11208         * opts-common.c (prune_options): Make static.  Work with decoded
11209         options.
11210         (decode_cmdline_options_to_array): Call prune_options.  Don't
11211         resize option array here.
11212         * opts.h (prune_options): Remove prototype.
11213         * gcc.c (process_command): Take decoded options; don't call
11214         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
11215         (main): Call decode_cmdline_options_to_array here instead of
11216         prune_options.  Update call to process_command.
11217         * config/darwin-driver.c: Include opts.h.
11218         (darwin_default_min_version): Work with decoded options.  Don't
11219         handle -b or -V here.
11220         * config/darwin.h (darwin_default_min_version): Update prototype.
11221         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
11222         darwin_default_min_version.
11223         * config/i386/cygwin.h (mingw_scan): Update prototype.
11224         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
11225         * config/i386/cygwin1.c: Include opts.h.
11226         (mingw_scan): Work with decoded options.
11227         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
11228         * config/t-darwin (darwin-driver.o): Update dependencies.
11229
11230 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11231
11232         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
11233         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
11234         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
11235         -force-link, -force-link=, -language, -language=,
11236         -library-directory, -library-directory=, -no-canonical-prefixes,
11237         -no-standard-libraries, -no-warnings, -optimize, -output,
11238         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
11239         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
11240         -print-file-name=, -print-libgcc-file-name,
11241         -print-multi-directory, -print-multi-lib,
11242         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
11243         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
11244         -profile, -save-temps, -shared, -specs, -specs=, -static,
11245         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
11246         symbolic): New.
11247         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
11248         * gcc.c (A Short Introduction to Adding a Command-Line Option):
11249         Remove comment.
11250         (cc1_options): Correct specs for passing down --help,
11251         --target-help and --help=*.  Add spec for passing down --version.
11252         (struct option_map, option_map, target_option_translations,
11253         translate_options): Remove.
11254         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
11255         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
11256         OPT_fhelp_ and OPT_ftarget_help.
11257         (process_command): Don't call translate_options.  Call
11258         decode_cmdline_options_to_array before checking for
11259         -no-canonical-prefixes using decoded options.
11260         * opts-common.c (tm.h): Update comment on #include.
11261         (find_opt): Allow abbreviations of long options.
11262         (struct option_map, option_map): New.
11263         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
11264         and -mno handling.
11265         (target_option_translations): New.
11266         (decode_cmdline_options_to_array): Handle
11267         TARGET_OPTION_TRANSLATE_TABLE in driver.
11268         * opts.c (common_handle_option): Don't handle OPT_fhelp,
11269         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
11270
11271 2010-09-22  Richard Guenther  <rguenther@suse.de>
11272
11273         * tree-inline.c (optimize_inline_calls): Schedule cleanups
11274         only if we inlined something.  Block compaction and conditional
11275         folding are done by cfg cleanup.  Schedule update-address-taken.
11276         (tree_function_versioning): Remove redundant call to number_blocks.
11277         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
11278         folding is done by cfg cleanup.
11279         * passes.c (init_optimization_passes): Remove update-address-taken
11280         pass after IPA inlining.
11281
11282 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11283
11284         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
11285         to update conditions. Fix reg_mode[] check.
11286
11287 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
11288
11289         * config/picochip/picochip.md (movhicc): Use expand to check whether
11290         movhicc is available and split it after reload.
11291
11292 2010-09-22  Richard Guenther  <rguenther@suse.de>
11293
11294         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11295         callee edges here.
11296         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11297         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11298         (pass_cleanup_cfg): Likewise.
11299         (execute_fixup_cfg): Cleanup.
11300         * tree-pass.h (pass_cleanup_cfg): Remove.
11301
11302 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11303
11304         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11305         builtins if it is true.
11306         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11307         parameter.
11308
11309 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11310
11311         * tree-sra.c (struct access): New field grp_no_warning.
11312         (create_access_replacement): Set TREE_NO_WARNING according to
11313          grp_no_warning.
11314         (create_artificial_child_access): Use build_ref_for_model and set
11315         grp_no_warning if build_user_friendly_ref_for_offset fails.
11316         (propagate_subaccesses_across_link): Likewise.
11317
11318 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11319
11320         PR target/35664
11321         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11322         ('f'): Likewise.
11323
11324 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11325
11326         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11327
11328 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11329
11330         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11331         * config/i386/i386.c (decide_alg): Update for rename.
11332
11333 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11334
11335         PR rtl-optimization/45739
11336         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11337         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11338
11339 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11340
11341         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11342         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11343         Remove.
11344         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11345         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11346
11347 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11348
11349         PR objc/23710
11350         * c-parser.c (c_parser_objc_method_definition): Check the return
11351         value of objc_start_method_definition and if false is returned,
11352         parse the method definition but emit no code.
11353
11354 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11355
11356         PR objc/25965
11357         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11358         call objc_get_interface_ivars ().
11359
11360 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11361
11362         PR target/45694
11363         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11364         static chain-register is used for 64-bit.
11365
11366 2010-09-21  Richard Guenther  <rguenther@suse.de>
11367
11368         * dwarf2out.c (is_cu_die): New function.
11369         (add_pubtype): Use it.
11370         (gen_subprogram_die): Likewise.
11371         (gen_struct_or_union_type_die): Likewise.
11372         (dwarf2out_finish): Likewise.
11373         (comp_unit_die): Rename to ...
11374         (single_comp_unit_die): ... this.
11375         (comp_unit_die): New function lazily constructing and
11376         returning single_comp_unit_die.
11377         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11378         base_type_die, subrange_type_die, modified_type_die,
11379         lower_bound_default, add_bound_info, add_prototyped_attribute,
11380         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11381         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11382         force_decl_die, gen_namespace_die, dwarf2out_decl,
11383         dwarf2out_start_source_file, dwarf2out_end_source_file,
11384         prune_unused_types, dwarf2out_finish): Use it.
11385         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11386         the global list of translation-unit decls.
11387         (dwarf2out_init): Do not create single_comp_unit_die here.
11388         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11389
11390 2010-09-21  Richard Guenther  <rguenther@suse.de>
11391
11392         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11393         for bool for C++.
11394
11395 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11396
11397         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11398         (qhs_extenddi_cstr): Likewise.
11399         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11400         them for the source operand.
11401
11402 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11403
11404         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11405         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11406         (ix86_split_ashr): Ditto.
11407         (ix86_split_lshr): Ditto.
11408
11409 2010-09-21  Richard Guenther  <rguenther@suse.de>
11410
11411         PR tree-optimization/45580
11412         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11413         regular uses.
11414         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11415         virtuals fold the call into a regular indirect one.
11416
11417 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11418
11419         PR rtl-optimization/42775
11420         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11421         scheduling is enabled.
11422
11423 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11424
11425         PR rtl-optimization/45728
11426         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11427         gen_lowpart_common first and if that fails, force_reg first
11428         before calling gen_lowpart.
11429
11430         PR middle-end/45678
11431         * cfgexpand.c (expand_one_stack_var_at): Use
11432         crtl->max_used_stack_slot_alignment as max_align, instead
11433         of maximum of that and PREFERRED_STACK_BOUNDARY.
11434         Don't call update_stack_alignment.
11435
11436 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11437
11438         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11439         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11440         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11441         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11442         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11443         (build_nonstandard_integer_type): Likewise.
11444         (build_range_type_1): New function, built from...
11445         (build_range_type): ...this.  Call build_range_type_1.
11446         (build_nonshared_range_type): New function.
11447         (build_array_type_1): New function, built from...
11448         (build_array_type: ...this.  Call build_array_type_1.
11449         (build_nonshared_array_type): New function.
11450         * tree.h (build_nonshared_range_type): Declare.
11451         (build_nonshared_array_type): Likewise.
11452
11453 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11454
11455         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11456         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11457         (arm_class_likely_spilled_p): New function.
11458
11459 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11460
11461         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11462         indirect functions.
11463         (ix86_split_ashl): Ditto.
11464         (ix86_split_ashr): Ditto.
11465         (ix86_split_lshr): Ditto.
11466         (ix86_adjust_counter): Ditto.
11467
11468 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11469
11470         * c-family/c-common.h (constant_string_class): Documented with
11471         comment identical to the one already in c-common.c.
11472
11473 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11474
11475         * dwarf2out.c (any_cfis_emitted): New static variable.
11476         (add_fde_cfi): Set it.
11477         (dwarf2out_frame_debug): Clear it before processing,
11478         if it is set afterwards, flush any queued reg saves.
11479
11480         PR debug/45124
11481         * dwarf2out.c (add_accessibility_attribute): Assume
11482         DW_ACCESS_private as the default for dwarf_version > 2
11483         and DW_TAG_class_type parent.
11484         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11485         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11486
11487 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11488
11489         PR target/45726
11490         * arm.md (arm_movt): Only enable on machines with MOVT.
11491
11492 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11493
11494         * config/arm/arm.c (arm_address_offset_is_imm): New.
11495         (arm_early_store_addr_dep): New.
11496         (arm_early_load_addr_dep): New.
11497         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11498         (arm_early_load_addr_dep): Declare.
11499         (arm_address_offset_is_imm): Declare.
11500         * config/arm/cortex-m4.md: New file.
11501         * config/arm/cortex-m4-fpu.md: New file.
11502         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11503         (attr generic_sched): Exclude cortexm4.
11504         (attr generic_vfp): Exclude cortexm4.
11505
11506 2010-09-20  Richard Guenther  <rguenther@suse.de>
11507
11508         PR middle-end/45704
11509         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11510
11511 2010-09-20  Jan Hubicka  <jh@suse.cz>
11512
11513         PR tree-optimize/45605
11514         * cgraph.h (const_value_known_p): Declare.
11515         (varpool_decide_const_value_known): Remove.
11516         * tree-ssa-ccp.c (get_base_constructor): Use it.
11517         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11518         * expr.c (string_constant): Likewise.
11519         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11520         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11521         function_and_variable_visibility): Likewise.
11522         * gimplify.c (gimplify_call_expr): Likewise.
11523         * gimple-fold.c (get_symbol_constant_value): Likewise.
11524         * varpool.c (varpool_decide_const_value_known): Replace by...
11525         (const_value_known_p): ... this one; handle other kinds of DECLs
11526         too and work for automatic vars.
11527         (varpool_finalize_decl): Use const_value_known_p.
11528
11529 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11530
11531         PR target/45726
11532         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11533
11534 2010-09-20  Richard Guenther  <rguenther@suse.de>
11535
11536         PR tree-optimization/45705
11537         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11538
11539 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11540
11541         PR rtl-optimization/45695
11542         * combine.c (try_combine): When splitting a two set pattern,
11543         make sure the pattern which will be put into i2 doesn't use REGs
11544         or MEMs set by insns in between i2 and i3.
11545
11546 2010-09-19  Jan Hubicka  <jh@suse.cz>
11547
11548         PR lto/44246
11549         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11550         processing same node twice.
11551
11552 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11553
11554         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11555         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11556         (bfin_class_likely_spilled_p): New function
11557
11558 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11559
11560         PR tree-optimization/45714
11561         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11562         created in vectorizable_call instead of the original statement in
11563         def stmt updates.
11564
11565 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11566
11567         * config/i386/i386-protos.h (split_double_mode): New prototype.
11568         (split_di, split_ti): Remove prototypes.
11569         * config/i386/i386.c (split_double_mode): New function.
11570         (split_di, split_ti): Remove.
11571         (ix86_expand_branch): Use split_double_mode.
11572         (ix86_split_to_parts): Ditto.
11573         (ix86_split_ashl): Ditto.
11574         (ix86_split_ashr): Ditto.
11575         (ix86_split_lshr): Ditto.
11576         (ix86_force_to_memory): Ditto.
11577         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11578
11579 2010-09-18  Jan Hubicka  <jh@suse.cz>
11580
11581         PR tree-optimization/45453
11582         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11583         virtual functions are reachable.
11584         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11585         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11586         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11587         when modifying function.
11588
11589 2010-09-18  Jan Hubicka  <jh@suse.cz>
11590
11591         PR tree-optimization/45605
11592         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11593         * gimple-fold.c (static_object_in_other_unit_p): New function.
11594         (canonicalize_constructor_val): Use it.
11595         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11596         returning NULL.
11597         (gimple_fold_obj_type_ref_known_binfo): Use
11598         static_object_in_other_unit_p.
11599
11600 2010-09-18  Richard Guenther  <rguenther@suse.de>
11601
11602         PR tree-optimization/45709
11603         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11604         insertions until after all PHI nodes of the block are processed.
11605
11606 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11607
11608         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11609
11610 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11611
11612         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11613
11614 2010-09-18  Richard Guenther  <rguenther@suse.de>
11615
11616         PR tree-optimization/45709
11617         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11618
11619 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11620
11621         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11622         (dot_deps_stmt): Same.
11623         * graphite-poly.c (dot_lst): Same.
11624         * graphite-scop-detection.c (dot_all_scops): Same.
11625         (dot_scop): Same.
11626
11627 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11628
11629         Revert:
11630         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11631
11632         * tree-data-ref.c (dot_rdg_1): Added back.
11633         (dot_rdg): Same.  Added "#if 0" around system call.
11634
11635 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11636             Richard Henderson  <rth@redhat.com>
11637
11638         * config/i386/i386.c (initial_ix86_tune_features): Add
11639         X86_TUNE_PAD_SHORT_FUNCTION.
11640         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11641         (ix86_count_insn): New.
11642         (ix86_pad_short_function): Likewise.
11643         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11644
11645         * config/i386/i386.h (ix86_tune_indices): Add
11646         X86_TUNE_PAD_SHORT_FUNCTION.
11647         (TARGET_PAD_SHORT_FUNCTION): New.
11648
11649         * config/i386/i386.md (UNSPEC_NOPS): New.
11650         (nops): Likewise.
11651
11652 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11653
11654         PR middle-end/45234
11655         * calls.c (expand_call): Make sure that all variable sized
11656         adjustments are multiple of preferred stack boundary after
11657         stack alignment.
11658
11659 2010-09-17  DJ Delorie  <dj@redhat.com>
11660
11661         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11662         passed an invalid value, print an error instead of ICEing.
11663         (valid_psw_flag): New.
11664         (rx_expand_builtin): Call it for setpsw/clrpsw.
11665         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11666
11667         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11668         (bitclr_in_memory): Likewise.
11669         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11670
11671 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11672
11673         PR middle-end/45678
11674         * cfgexpand.c (update_stack_alignment): New.
11675         (get_decl_align_unit): Use it.
11676         (expand_one_stack_var_at): Call update_stack_alignment.
11677
11678 2010-09-17  Richard Guenther  <rguenther@suse.de>
11679
11680         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11681         Properly copy the read string.
11682
11683 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11684
11685         * doc/options.texi (Variable): Document.
11686         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11687         generate target_flags declarations explicitly.  Don't define
11688         VarExists variables for the driver.
11689         * common.opt (target_flags): New Variable record.
11690         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11691         flag_var_tracking, flag_var_tracking_assignments,
11692         flag_var_tracking_assignments_toggle): Don't mark variables with
11693         VarExists.
11694         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11695         * config/i386/i386.opt (ix86_isa_flags): Define here.
11696         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11697         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11698         VarExists.
11699         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11700         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11701         Only define for generator programs.
11702         * rtlanal.c (target_flags): Remove.
11703         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11704         flag_var_tracking_assignments_toggle): Remove.
11705
11706 2010-09-17  Michael Matz  <matz@suse.de>
11707
11708         PR tree-optimization/43432
11709         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11710         Accept backwards consecutive accesses.
11711         (vect_create_data_ref_ptr): If step is negative generate
11712         decreasing IVs.
11713         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11714         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11715         (vectorizable_load): Handle loads with negative steps when easily
11716         possible.
11717
11718 2010-09-03  Jan Hubicka  <jh@suse.cz>
11719
11720         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11721
11722 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11723
11724         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11725         Adjust comments. Declare.
11726         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11727         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11728
11729 2010-09-17  Richard Guenther  <rguenther@suse.de>
11730
11731         * common.opt (combine): Remove.
11732         * gcc.c (default_compilers): Remove specs testing combine.
11733         The C compilers no longer can combine.
11734         (option_map): Remove -combine.
11735         (display_help): Remove -combine.
11736         (driver_handle_option): Remove OPT_combine handling.
11737         (compile_input_file_p): Remove.
11738         (do_spec): Remove code concerning combine.
11739         (main): Likewise.
11740         * doc/invoke.texi: Remove traces of -combine.
11741         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11742
11743 2010-09-17  Richard Guenther  <rguenther@suse.de>
11744
11745         PR middle-end/45678
11746         * builtins.c (fold_builtin_memory_op): Always properly adjust
11747         alignment of memory accesses.
11748
11749 2010-09-16  Jan Hubicka  <jh@suse.cz>
11750
11751         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11752         processing clone.
11753
11754 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11755
11756         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11757
11758         * config/i386/i386.c (predict_jump): Add prototype.
11759         (flag_opts): Add -m8bit-idiv.
11760         (ix86_split_idivmod): New.
11761
11762         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11763         Add 2 splitters for SI/DI mode divide.
11764         (divmod<mode>4_1): New pattern.
11765         (udivmod<mode>4_1): Likewise.
11766         (testdi_ccno_1): Likewise.
11767
11768         * config/i386/i386.opt (m8bit-idiv): New.
11769
11770         * doc/invoke.texi: Document -m8bit-idiv.
11771
11772 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11773
11774         PR bootstrap/45680
11775         * config/i386/i386.c (min_insn_size): Moved out of the
11776         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11777
11778 2010-09-16  Jan Hubicka  <jh@suse.cz>
11779
11780         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11781         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11782         unreachable clones with reachable clones.
11783         * tree-inline.c (copy_bb): Fix sanity checking when producing
11784         unreachable clone.
11785
11786 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11787
11788         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11789         (TARGET_MEMORY_MOVE_COST): Define.
11790         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11791
11792 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11793
11794         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11795         maybe_tidy_empty_bb.
11796
11797         Revert:
11798         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11799         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11800
11801 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11802
11803         * target.def (target_option.optimization): New hook.
11804         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11805         TARGET_OPTION_OPTIMIZATION hook.
11806         * doc/tm.texi: Regenerate.
11807         * hooks.c (hook_void_int_int): New.
11808         * hooks.h (hook_void_int_int): Declare.
11809         * opts.c: Don't include tm_p.h.
11810         (decode_options): Use targetm.target_option.optimization instead
11811         of OPTIMIZATION_OPTIONS.
11812         * system.h (OPTIMIZATION_OPTIONS): Poison.
11813         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11814         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11815         (arm_optimization_options): Rename to arm_option_optimization.
11816         Make static.
11817         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11818         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11819         (cris_option_optimization): New.
11820         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11821         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11822         (crx_option_optimization): New.
11823         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11824         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11825         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11826         (frv_optimization_options): Rename to frv_option_optimization.
11827         Make static.
11828         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11829         * config/h8300/h8300.c (h8300_option_optimization): New.
11830         (TARGET_OPTION_OPTIMIZATION): Define.
11831         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11832         * config/i386/i386-protos.h (optimization_options): Remove.
11833         * config/i386/i386.c (optimization_options): Rename to
11834         ix86_option_optimization.  Make static.
11835         (TARGET_OPTION_OPTIMIZATION): Define.
11836         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11837         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11838         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11839         (ia64_optimization_options): Rename to ia64_option_optimization.
11840         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11841         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11842         commented-out definition.
11843         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11844         instead of OPTIMIZATION_OPTIONS.
11845         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11846         (m32r_option_optimization): New.
11847         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11848         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11849         Remove.
11850         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11851         (mcore_option_optimization): New.
11852         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11853         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11854         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11855         (mep_optimization_options): Rename to mep_option_optimization.
11856         Make static.  Take unused level and size parameters.
11857         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11858         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11859         (mmix_option_optimization): New.
11860         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11861         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11862         (pdp11_option_optimization): New.
11863         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11864         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11865         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11866         (optimization_options): Rename to rs6000_option_optimization.
11867         Make static.
11868         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11869         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11870         * config/rx/rx.c (rx_set_optimization_options): Rename to
11871         rx_option_optimization.  Make static.  Take unused level and size
11872         parameters.
11873         (TARGET_OPTION_OPTIMIZATION): Define.
11874         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11875         * config/s390/s390-protos.h (optimization_options): Remove.
11876         * config/s390/s390.c (optimization_options): Rename to
11877         s390_option_optimization.  Make static.  Don't mark size parameter
11878         unused.
11879         (TARGET_OPTION_OPTIMIZATION): Define.
11880         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11881         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11882         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11883         (sh_optimization_options): Rename to sh_option_optimization.  Make
11884         static.  Don't mark parameters unused.
11885         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11886         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11887         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11888         (spu_optimization_options): Rename to spu_option_optimization.
11889         Make static.
11890         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11891         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11892         (v850_option_optimization): New.
11893         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11894         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11895         (xtensa_option_optimization): New.
11896         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11897
11898 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11899
11900         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11901         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11902         * doc/tm.texi: Regenerate.
11903         * system.h (OVERRIDE_OPTIONS): Poison.
11904         * target.def (override): Default to hook_void_void.
11905         * targhooks.c (default_target_option_override): Remove.
11906         * genmodes.c, machmode.def: Update comments mentioning
11907         OVERRIDE_OPTIONS.
11908         * config/alpha/alpha-modes.def: Update comment mentioning
11909         alpha_override_options.
11910         * config/alpha/alpha-protos.h (override_options): Remove.
11911         * config/alpha/alpha.c (override_options): Rename to
11912         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11913         (TARGET_OPTION_OVERRIDE): Define.
11914         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11915         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11916         of OVERRIDE_OPTIONS.
11917         * config/arc/arc-protos.h (arc_init): Remove.
11918         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11919         (arc_init): Rename to arc_option_override.  Make static.
11920         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11921         (OVERRIDE_OPTIONS): Remove.
11922         * config/arm/arm-protos.h (arm_override_options): Remove.
11923         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11924         (arm_override_options): Rename to arm_option_override.  Make
11925         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11926         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11927         * config/arm/arm.md: Update comment referring to arm_override_options.
11928         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11929         instead of OVERRIDE_OPTIONS.
11930         * config/avr/avr-protos.h (avr_override_options): Remove.
11931         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11932         (avr_override_options): Rename to avr_option_override.  Make static.
11933         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11934         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11935         * config/bfin/bfin.c (override_options): Rename to
11936         bfin_option_override.  Make static.
11937         (TARGET_OPTION_OVERRIDE): Define.
11938         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11939         * config/cris/cris-protos.h (cris_override_options): Remove.
11940         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11941         (cris_override_options): Rename to cris_option_override.  Make static.
11942         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11943         * config/frv/frv-protos.h (frv_override_options): Remove.
11944         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11945         (frv_override_options): Rename to frv_option_override.  Make static.
11946         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11947         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11948         * config/h8300/h8300.c (h8300_init_once): Rename to
11949         h8300_option_override.  Make static.
11950         (TARGET_OPTION_OVERRIDE): Define.
11951         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11952         * config/i386/i386-protos.h (override_options): Remove.
11953         * config/i386/i386.c (override_options): Rename to
11954         ix86_option_override_internal.  Make static.  Comments referring
11955         to this function and callers changed.
11956         (ix86_option_override): New.
11957         (TARGET_OPTION_OVERRIDE): Define.
11958         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11959         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11960         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11961         to ia64_override_options.
11962         * config/iq2000/iq2000-protos.h (override_options): Remove.
11963         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11964         (override_options): Rename to iq2000_option_override.  Make static.
11965         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11966         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11967         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11968         (lm32_override_options): Rename to lm32_option_override.  Make static.
11969         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11970         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11971         (m32r_option_override): New.
11972         (m32r_init): Update comment.
11973         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11974         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11975         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11976         (m68hc11_override_options): Rename to m68hc11_option_override.
11977         Make static.  Return void.
11978         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11979         * config/m68k/m68k-protos.h (override_options): Remove.
11980         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11981         (override_options): Rename to m68k_option_override.  Make static.
11982         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11983         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11984         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11985         (mcore_override_options): Rename to mcore_option_override.  Make
11986         static.
11987         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11988         * config/mep/mep-protos.h (mep_override_options): Remove.
11989         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11990         (mep_override_options): Rename to mep_option_override.  Make static.
11991         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11992         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11993         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11994         (mmix_override_options): Rename to mmix_option_override.  Make static.
11995         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11996         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11997         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11998         (mn10300_override_options): Rename to mn10300_option_override.
11999         Make static.
12000         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
12001         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
12002         * config/moxie/moxie.c (moxie_override_options): Rename to
12003         moxie_option_override.  Make static.
12004         (TARGET_OPTION_OVERRIDE): Define.
12005         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
12006         * config/picochip/picochip-protos.h (picochip_override_options):
12007         Remove.  Update comment referring to picochip_override_options.
12008         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
12009         (picochip_override_options): Rename to picochip_option_override.
12010         Make static.  Update comment and definition of
12011         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
12012         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
12013         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12014         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12015         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12016         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12017         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12018         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
12019         instead of OVERRIDE_OPTIONS.
12020         * config/rs6000/rs6000-modes.def: Update comment referring to
12021         rs6000_override_options.
12022         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
12023         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
12024         (rs6000_override_options): Rename to
12025         rs6000_option_override_internal.  Make static.  Commented
12026         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
12027         (rs6000_option_override): New.
12028         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
12029         instead of OVERRIDE_OPTIONS.
12030         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12031         * config/s390/s390-protos.h (override_options): Remove.
12032         * config/s390/s390.c (override_options): Rename to
12033         s390_option_override.  Make static.
12034         (TARGET_OPTION_OVERRIDE): Define.
12035         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
12036         * config/score/score-protos.h (score_override_options): Remove.
12037         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
12038         (score_override_options): Rename to score_option_override.  Make
12039         static.
12040         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
12041         Update comment referring to override_options.
12042         * config/score/score3.c (score3_override_options): Rename to
12043         score3_option_override.
12044         * config/score/score3.h (score3_override_options): Rename to
12045         score3_option_override.
12046         * config/score/score7.c (score7_override_options): Rename to
12047         score7_option_override.
12048         * config/score/score7.h (score7_override_options): Rename to
12049         score7_option_override.
12050         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
12051         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
12052         (sparc_override_options): Rename to sparc_option_override.  Make
12053         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12054         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
12055         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12056         instead of OVERRIDE_OPTIONS.
12057         * config/spu/spu-protos.h (spu_override_options): Remove.
12058         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
12059         (spu_override_options): Rename to spu_option_override.  Make
12060         static.
12061         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
12062         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
12063         OVERRIDE_OPTIONS.
12064         * config/vax/vax-protos.h (override_options): Remove.
12065         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
12066         (override_options): Rename to vax_option_override.  Make static.
12067         Call SUBTARGET_OVERRIDE_OPTIONS.
12068         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
12069         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
12070         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
12071         * config/xtensa/xtensa-protos.h (override_options): Remove.
12072         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
12073         (override_options): Rename to xtensa_option_override.  Make static.
12074         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
12075
12076 2010-09-16  Richard Guenther  <rguenther@suse.de>
12077
12078         PR tree-optimization/45623
12079         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
12080         (get_constraint_for_component_ref): If computing a constraint
12081         for the rhs handle type punning through unions.
12082         (get_constraint_for_address_of): Adjust.
12083         (get_constraint_for_1): Likewise.
12084         (get_constraint_for): Likewise.
12085         (get_constraint_for_rhs): New function.
12086         (do_structure_copy): Adjust.
12087         (make_constraint_to): Likewise.
12088         (handle_const_call): Likewise.
12089         (find_func_aliases): Likewise.
12090         (process_ipa_clobber): Likewise.
12091         (create_variable_info_for): Likewise.
12092
12093 2010-09-16  Ira Rosen  <irar@il.ibm.com>
12094
12095         * tree-vectorizer.c: Fix documentation.
12096         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
12097         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
12098         is_pattern_stmt_p, is_loop_header_bb_p,
12099         stmt_vinfo_set_inside_of_loop_cost,
12100         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
12101         known_alignment_for_access_p): Likewise.
12102         * tree-vect-loop.c: Fix documentation.
12103         (vect_get_cost): Start function name from new line.
12104         * tree-vect-data-refs.c: Fix documentation.
12105         * tree-vect_stmts.c: Likewise.
12106         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
12107         (vectorizable_store): Free vec_oprnds if allocated.
12108         (vectorizable_condition): Initialize several variables to avoid
12109         warnings.
12110         * tree-vect-slp.c: Fix documentation.
12111
12112 2010-09-16  Richard Guenther  <rguenther@suse.de>
12113
12114         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
12115         is TS_TRANSLATION_UNIT_DECL.
12116         (initialize_tree_contains_struct): Adjust.
12117         (all_translation_units): New global vector.
12118         (build_translation_unit_decl): New function.
12119         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
12120         (struct tree_translation_unit_decl): New.
12121         (all_translation_units): Declare.
12122         (union tree_node): Add translation_unit_decl member.
12123         (build_translation_unit_decl): Declare.
12124         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
12125         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
12126         New function.
12127         (pack_value_fields): Call it.
12128         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
12129         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
12130         (lto_output_tree_pointers): Call it.
12131         * lto-streamer-in.c (lto_input_tree_ref): Handle references
12132         to TRANSLATION_UNIT_DECL.
12133         (unpack_ts_translation_unit_decl_value_fields): New function.
12134         (unpack_value_fields): Call it.
12135         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
12136         (lto_input_tree_pointers): Call it.
12137         * lto-streamer.c (check_handled_ts_structures): Adjust.
12138         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
12139         * c-decl.c (all_translation_units): Remove.
12140         (pop_scope): Use build_translation_unit_decl.
12141         (collect_all_refs): Adjust.
12142         (for_each_global_decl): Likewise.
12143         (c_write_global_declarations): Likewise.
12144
12145 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
12146
12147         PR bootstrap/45686
12148         * fold-const.c (fold_checksum_tree): Change slot from const void **
12149         to void **, use CONST_CAST_TREE to store into *slot.
12150
12151 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12152
12153         * config/i386/i386.md: Remove unneeded empty conditions and
12154         preparation statements from expanders.
12155         * config/i386/mmx.md: Ditto.
12156         * config/i386/sse.md: Ditto.
12157
12158 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12159
12160         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
12161
12162 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12163
12164         PR rtl-optimization/45593
12165         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
12166         insns that were in delay slots as stand-alone insns.
12167
12168 2010-09-15  Ian Lance Taylor  <iant@google.com>
12169
12170         * incpath.c (remove_duplicates): If name is not a directory, issue
12171         a warning rather than an error.
12172
12173 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12174
12175         PR middle-end/45644
12176         * tree-sra.c (create_access): Check for bit-fields directly.
12177
12178 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
12179
12180         PR tree-optimization/45633
12181         * tree-cfg.c (verify_gimple_assign_binary): Allow
12182         MINUS_EXPR with lhs and rhs1 pointer vector and
12183         rhs2 sizetype vector.
12184         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
12185         or vector pointer use TER to optimize pointer subtraction.
12186
12187 2010-09-15  Jie Zhang  <jie@codesourcery.com>
12188
12189         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
12190         fcmpd to fcmps.
12191
12192 2010-09-15  Ian Lance Taylor  <iant@google.com>
12193
12194         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
12195
12196 2010-09-15  Ian Lance Taylor  <iant@google.com>
12197
12198         * function.c (get_arg_pointer_save_area): Set
12199         arg_pointer_save_area_init to true.
12200
12201 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12202
12203         * tree-sra.c (generate_subtree_copies): Updated comment.
12204         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
12205         obtained from the statement iterator instead.
12206         (load_assign_lhs_subreplacements): Removed parameters lhs and
12207         right_offset, which is obtained from top_racc instead.  Parameter lacc
12208         is now expected to be the root of the processed tree rather than root's
12209         first child.  Updated all callers.
12210
12211 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
12212
12213         * config/pdp11/pdp11.c (register_move_cost): Rename to
12214         pdp11_register_move_cost.
12215         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
12216         pdp11_register_move_cost.
12217         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
12218         pdp11_register_move_cost instead of register_move_cost.
12219
12220 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
12221
12222         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
12223         pattern for vmovn. Expansion in case of non
12224         -mvectorize-with-neon-quad.
12225         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
12226         non- -mvectorize-with-neon-quad case.
12227         (move_lo_quad_<mode>): New expansion to vmov into low part.
12228         (move_hi_quad_<mode>): New expansion to vmov into high part.
12229         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
12230         (move_lo_quad_v4sf): Likewise.
12231         (move_lo_quad_v8hi): Likewise.
12232         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
12233         low part.
12234         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
12235         high part.
12236         * config/arm/iterators.md (ANY128): New mode iterator.
12237         (V_narrow_pack): New mode attribute.
12238         (V_HALF): Add attribute.
12239         (V_DOUBLE): Add attribute.
12240         (V_mode_nunits): Add attribute.
12241
12242 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12243
12244         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
12245         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
12246
12247 2010-09-15  Olivier Hainque  <hainque@adacore.com>
12248             Jose Ruiz  <ruiz@adacore.com>
12249
12250         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
12251         * config/alpha/osf5-unwind.h: New file.
12252
12253 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12254
12255         PR bootstrap/45672
12256         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
12257         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12258         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12259
12260 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12261
12262         * c-lang.h (struct lang_type): Add variable_size GTY option.
12263
12264 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12265
12266         PR bootstrap/45672
12267         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12268
12269 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12270
12271         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
12272         result isn't used in memory address.
12273
12274 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12275
12276         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
12277         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
12278         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
12279         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
12280         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12281         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12282
12283         * target.def: Add units_per_simd_word to vectorize.
12284
12285         * targhooks.c (default_units_per_simd_word): New.
12286         * targhooks.h (default_units_per_simd_word): Likewise.
12287         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
12288         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12289         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
12290         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12291         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12292         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12293         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12294         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12295
12296         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12297         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12298
12299         * tree-vect-stmts.c: Don't include "tm_p.h".
12300         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12301         with targetm.vectorize.units_per_simd_word.
12302
12303         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12304
12305         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12306
12307         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12308         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12309
12310         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12311         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12312
12313         * doc/tm.texi: Regenerated.
12314
12315 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12316
12317         * tree-vect-stmts.c: Include "tm_p.h".
12318
12319         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12320         out of RTX_CODE.
12321
12322 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12323
12324         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12325         location of generated statement.  Changed all callers.
12326         (build_ref_for_model): New parameter loc which used to set location of
12327         all generated expressions.  Changed all callers.
12328         (generate_subtree_copies): Likewise.
12329         (init_subtree_with_zero): Likewise.
12330         (sra_modify_expr): Set locations of all generated statements and
12331         expressions to the location the original statement.
12332         (handle_unscalarized_data_in_subtree): Likewise.
12333         (load_assign_lhs_subreplacements): Likewise.
12334         (sra_modify_constructor_assign): Likewise.
12335         (sra_modify_assign): Likewise.
12336
12337 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12338
12339         PR target/45277
12340         PR target/45363
12341         PR target/45407
12342         * doc/install.texi (sparc*-*-*): New section.
12343         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12344
12345 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12346
12347         PR middle-end/45567
12348         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12349         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12350         (expand_builtin): Adjust caller.
12351         (expand_builtin_unop): Only use subtarget if it has the right mode.
12352
12353 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12354
12355         * configure.ac (plugins): Fix typos.
12356         * configure: Regenerate.
12357
12358 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12359
12360         PR debug/45660
12361         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12362         gen_type_die for function/method return type.
12363
12364 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12365
12366         PR tree-optimization/45470
12367         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12368         can throw an exception.
12369         * tree-vect-stmts.c (vectorizable_call): Likewise.
12370
12371 2010-09-14  DJ Delorie  <dj@redhat.com>
12372
12373         PR target/44749
12374         * config/mep/mep-protos.h (mep_save_register_info,
12375         mep_reinit_regs, mep_init_regs): Declare.
12376
12377         * config/mep/mep.c: Move all target definitions to the end of the
12378         file to avoid the need for duplicate declarations.
12379         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12380         (mep_reorg_erepeat): Remove unused variables.
12381         (mep_expand_builtin): Likewise.
12382
12383         * config/mep/mep-pragma.c: Don't include rtl.h.
12384         (INVALID_REGNUM): New.
12385         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12386         functions.
12387         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12388         Avoid enum/integer math.
12389
12390 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12391
12392         PR target/44749
12393         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12394         * config/mep/mep.c (mep_conditional_register_usage): Take no
12395         parameters.
12396         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12397         prototype.
12398         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12399         call to mep_conditional_register_usage.
12400
12401 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12402
12403         PR debug/43937
12404         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12405         the DECL as well.
12406
12407 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12408
12409         PR rtl-optimization/45617
12410         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12411         even if low N bits of X aren't known to be zero.
12412
12413 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12414
12415         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12416
12417         * config/i386/i386.c (initial_ix86_tune_features): Add
12418         X86_TUNE_VECTORIZE_DOUBLE.
12419         (ix86_units_per_simd_word): New.
12420
12421         * config/i386/i386.h (ix86_tune_indices): Add
12422         X86_TUNE_VECTORIZE_DOUBLE.
12423         (TARGET_VECTORIZE_DOUBLE): New.
12424         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12425
12426 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12427
12428         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12429         (new_temp_expr_table): Allocate call_cnt vector.
12430         (free_temp_expr_table): Free it.
12431         (process_replaceable): Add call_cnt parm and set in vector.
12432         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12433         (debug_ter): Dump call_cnt value, remove stderr uses.
12434
12435 2010-09-13  Jan Hubicka  <jh@suse.cz>
12436
12437         * tree.c (build_zero_cst): New.
12438         * tree.h (build_zero_cst): Declare.
12439         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12440         (get_base_constructor): Break out from ...
12441         (fold_const_aggregate_ref): Here; handle empty constructors.
12442
12443 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12444
12445         * config/arm/arm.md: (define_attr "conds"): Update comment.
12446         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12447         conds attribute to clob.
12448         (arm_sync_compare_and_swapsi): Likewise.
12449         (arm_sync_compare_and_swap<mode>): Likewise.
12450         (arm_sync_lock_test_and_setsi): Likewise.
12451         (arm_sync_lock_test_and_set<mode>): Likewise.
12452         (arm_sync_new_<sync_optab>si): Likewise.
12453         (arm_sync_new_nandsi): Likewise.
12454         (arm_sync_new_<sync_optab><mode>): Likewise.
12455         (arm_sync_new_nand<mode>): Likewise.
12456         (arm_sync_old_<sync_optab>si): Likewise.
12457         (arm_sync_old_nandsi): Likewise.
12458         (arm_sync_old_<sync_optab><mode>): Likewise.
12459         (arm_sync_old_nand<mode>): Likewise.
12460
12461 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12462
12463         * fwprop.c (forward_propagate_and_simplify): Only attach a
12464         REG_EQUAL note to an insn if the destination is a register.
12465         * gcse.c (try_replace_reg): Likewise.
12466
12467 2010-09-13  Richard Guenther  <rguenther@suse.de>
12468
12469         PR tree-optimization/45611
12470         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12471         (copy_ref_info): Likewise.
12472
12473 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12474
12475         PR debug/45604
12476         PR debug/45419
12477         PR debug/45408
12478         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12479         types of MEM_REF pointer types to the same type.
12480
12481 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12482
12483         PR rtl-optimization/41087
12484         * ifcvt.c (noce_get_condition): Don't allow conditions with
12485         side-effects.
12486
12487 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12488
12489         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12490         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12491         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12492         arguments type to reg_class_t. Add mode argument.
12493         (frv_memory_move_cost): New.
12494         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12495
12496 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12497
12498         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12499         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12500
12501 2010-09-10  Jan Hubicka  <jh@suse.cz>
12502
12503         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12504
12505 2010-09-10  Richard Guenther  <rguenther@suse.de>
12506
12507         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12508         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12509         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12510         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12511         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12512
12513 2010-09-10  Richard Guenther  <rguenther@suse.de>
12514
12515         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12516         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12517         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12518         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12519
12520 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12521
12522         PR middle-end/45634
12523         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12524         of string folding is of integral type.
12525
12526 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12527
12528         * doc/invoke.texi (-x): Fix typo.
12529
12530 2010-09-10  Richard Guenther  <rguenther@suse.de>
12531
12532         PR debug/44115
12533         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12534         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12535         Output DECL_DEBUG_EXPR.
12536         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12537         Input DECL_DEBUG_EXPR.
12538
12539 2010-09-10  Richard Guenther  <rguenther@suse.de>
12540
12541         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12542         (build_index_type): Implement in terms of build_range_type.
12543         (build_range_type): Do not allow NULL_TREE type, improve
12544         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12545         if we didn't hash.
12546         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12547         create a distinct copy of the type.
12548
12549 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12550
12551         * configure: Regenerated.
12552         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12553
12554 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12555
12556         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12557         * config/arm/cortex-a9-neon.md: New and partially generated.
12558         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12559
12560 2010-09-10  Richard Guenther  <rguenther@suse.de>
12561
12562         * tree.h (build_index_2_type): Remove.
12563         * tree.c (build_index_2_type): Remove.
12564
12565 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12566
12567         PR bootstrap/45630
12568         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12569         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12570         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12571
12572 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12573
12574         PR tree-optimization/44972
12575         * tree-sra.c: Include toplev.h.
12576         (build_ref_for_offset): Entirely reimplemented.
12577         (build_ref_for_model): New function.
12578         (build_user_friendly_ref_for_offset): New function.
12579         (analyze_access_subtree): Removed build_ref_for_offset check.
12580         (propagate_subaccesses_across_link): Likewise.
12581         (create_artificial_child_access): Use
12582         build_user_friendly_ref_for_offset.
12583         (propagate_subaccesses_across_link): Likewise.
12584         (ref_expr_for_all_replacements_p): Removed.
12585         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12586         (sra_modify_expr): Use build_ref_for_model.
12587         (load_assign_lhs_subreplacements): Likewise.
12588         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12589         checks for return values of build_ref_for_offset.
12590         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12591         build_ref_for_offset.
12592         * ipa-prop.h: Include gimple.h
12593         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12594         (ipa_analyze_indirect_call_uses): Update comment.
12595         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12596         (IPA_PROP_H): Likewise.
12597
12598 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12599
12600         PR tree-optimization/44972
12601         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12602         calling build_ref_for_offset.
12603
12604 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12605
12606         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12607         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12608         * config/arm/arm-tune.md: Regenerate.
12609         * doc/invoke.texi (ARM Options): Document it.
12610
12611 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12612
12613         * config/i386/i386.c: Include sched-int.h.
12614         (TARGET_SCHED_DISPATCH): Defined.
12615         (TARGET_SCHED_DISPATCH_DO): Defined.
12616         (DISPATCH_WINDOW_SIZE): Defined.
12617         (MAX_DISPATCH_WINDOWS): Defined.
12618         (MAX_INSN): Defined.
12619         (MAX_IMM): Defined.
12620         (MAX_IMM_SIZE): Defined.
12621         (MAX_IMM_32): Defined.
12622         (MAX_IMM_64): Defined.
12623         (MAX_LOAD): Defined.
12624         (MAX_STORE): Defined.
12625         (BIG): Defined.
12626         (dispatch_group): New.
12627         (num_allowable_groups): New.
12628         (group_name): New.
12629         (sched_insn_info_s): New.
12630         (dispatch_windows_s): New.
12631         (imm_info_s): New.
12632         (dispatch_window_list): New.
12633         (dispatch_window_list1): New.
12634         (get_mem_group): New.
12635         (is_cmp): New.
12636         (dispatch_violation): New.
12637         (is_branch): New.
12638         (is_prefetch): New.
12639         (init_window): New.
12640         (allocate_window): New.
12641         (init_dispatch_sched): New.
12642         (is_end_basic_block): New.
12643         (process_end_window): New.
12644         (allocate_next_window): New.
12645         (find_constant_1): New.
12646         (find_constant): New.
12647         (get_num_immediates): New.
12648         (has_immediate): New.
12649         (get_insn_path): New.
12650         (get_insn_group): New.
12651         (count_num_restricted): New.
12652         (fits_dispatch_window): New.
12653         (add_insn_window): New.
12654         (add_to_dispatch_window): New.
12655         (debug_dispatch_window_file): New.
12656         (debug_dispatch_window): New.
12657         (debug_insn_dispatch_info_file): New.
12658         (debug_ready_dispatch): New.
12659         (do_dispatch): New.
12660         (has_dispatch): New.
12661         * config/i386/i386.h (debug_ready_dispatch): Declared.
12662         (debug_dispatch_window): Declared.
12663         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12664         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12665         (TARGET_SCHED_DISPATCH_DO): New.
12666         * doc/tm.texi: Regererated.
12667         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12668         ready_remove_first_dispatch
12669         (schedule_block): Call targetm.sched.dispatch and
12670         targetm.sched.dispatch_do.
12671         (sched_init): Call targetm.sched.dispatch and
12672         targetm.sched.dispatch_do.
12673         (ready_remove_first_dispatch): New.
12674         (number_in_ready): New.
12675         (get_ready_element): New.
12676         * hooks.c (hook_bool_rtx_int_false): New.
12677         (hook_void_rtx_int): New.
12678         * hooks.h (hook_bool_rtx_int_false): Declared.
12679         (hook_void_rtx_int): Declared.
12680         * sched-int.h (IS_DISPATCH_ON): Defined.
12681         (IS_CMP): Defined.
12682         (DISPATCH_VIOLATION): Defined.
12683         (FITS_DISPATCH_WINDOW): Defined.
12684         (DISPATCH_INIT): Defined.
12685         (ADD_TO_DISPATCH_WINDOW): Defined.
12686         (get_ready_element): Declared.
12687         (number_in_ready): Declared.
12688         * target.def (dispatch): Defined.
12689         (dispatch_do): Defined.
12690
12691 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12692
12693         PR middle-end/45312
12694         * reload1.c (merge_assigned_reloads): Remove.
12695         (reload_as_needed): Don't call it.
12696
12697 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12698
12699         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12700         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12701         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12702
12703 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12704
12705         PR bootstrap/43847
12706         * configure.ac (--enable-plugin): Enhance for cross builds.
12707         * configure: Regenerate.
12708
12709 2010-09-09  Jan Hubicka  <jh@suse.cz>
12710
12711         PR tree-optimization/45598
12712         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12713         string folding is of integral type.
12714
12715 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12716
12717         * configure.ac (gnu_indirect_function): New test.
12718         * configure: Rebuilt.
12719         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12720         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12721
12722         * doc/extend.texi (Function Attributes): Document ifunc.
12723         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12724
12725 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12726
12727         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12728         epilogue instruction move.
12729
12730 2010-09-09  Jan Hubicka  <jh@suse.cz>
12731
12732         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12733         command line to allow more partitions than input files.
12734
12735 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12736
12737         PR middle-end/44554
12738         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12739
12740 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12741
12742         PR middle-end/40386
12743         * ira.c (pseudo_for_reload_consideration_p): Don't use
12744         flag_ira_share_spill_slots.
12745
12746 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12747
12748         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12749         point zero operands that fit into a single GPR.
12750         (s390_preferred_reload_class): Ensure we only return general-purpose
12751         register classes.
12752         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12753         floating-point zero operands into GPRs.
12754         ("*mov<mode>_64"): Likewise.
12755         ("mov<mode>"): Likewise using lhi.
12756
12757 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12758
12759         * config/s390/s390.c (s390_symref_operand_p): Return false for
12760         literal pool references.
12761         (s390_check_qrst_address): Update caller.
12762
12763 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12764
12765         * config/i386/predicates.md (ext_register_operand): Check that
12766         SUBREG_REG is really a register before looking for REGNO.
12767         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12768         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12769
12770 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12771
12772         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12773         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12774         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12775         * print-rtl.c (print_rtx): Likewise.
12776         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12777         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12778         for ADDR_EXPR with non-addressable object.
12779         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12780         (struct dw_val_struct): Add v.val_decl_ref.
12781         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12782         Handle DW_OP_GNU_implicit_pointer.
12783         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12784         (get_ref_die_offset_label): New function.
12785         (implicit_ptr_descriptor): New function.
12786         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12787         (loc_descriptor): Likewise.
12788         (gen_variable_die): Put even definitions into decl_die_table.
12789         (resolve_addr_in_expr): Resolve still unresolved
12790         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12791         return false.
12792         (dwarf2out_finish): Call output_location_lists after outputting
12793         .debug_info and .debug_abbrev instead of before.
12794
12795 2010-09-09  Roland McGrath  <roland@redhat.com>
12796
12797         * dwarf2out.c (DWARF_REF_SIZE): Define.
12798         (size_of_loc_descr): Use it for DW_OP_call_ref.
12799
12800 2010-09-09  Alan Modra  <amodra@gmail.com>
12801
12802         * doc/invoke.text: Reinstate mcmodel=medium.
12803         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12804         CMODEL_MEDIUM as default.
12805         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12806         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12807         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12808         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12809
12810 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12811
12812         PR target/45250
12813         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12814         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12815         (builtin_longjmp): Likewise.
12816         (allocate_stack): Use hard_frame_pointer_rtx instead of
12817         frame_pointer_rtx.
12818         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12819         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12820         (pa_can_eliminate): Likewise.
12821         (TARGET_INTERNAL_ARG_POINTER): Define.
12822         (TARGET_CAN_ELIMINATE): Define.
12823         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12824         pointer.
12825         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12826         (pa_internal_arg_pointer, pa_can_eliminate,
12827         pa_initial_elimination_offset): New.
12828         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12829         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12830         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12831         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12832         Define.
12833         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12834         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12835         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12836         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12837         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12838         new soft frame pointer.
12839         * config/pa/pa64-regs.h: Likewise.
12840
12841 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12842
12843         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12844         numerical constant.
12845         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12846
12847 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12848
12849         PR debug/45531
12850         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12851
12852 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12853
12854         PR debug/45419
12855         PR debug/45408
12856         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12857         qualifiers in otherwise equal MEM_REF pointer types.
12858         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12859         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12860
12861 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12862
12863         PR target/44392
12864         * config/arm/arm.md (bswapsi2): Handle condition correctly
12865         for armv6 and optimize_size.
12866
12867 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12868
12869         PR other/18555
12870         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12871
12872 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12873
12874         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12875         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12876         ix86_expand_strlen, legitimate_pic_address_disp_p,
12877         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12878         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12879         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12880         prototype to bool.
12881         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12882         return_in_memory_ms_64, ix86_check_movabs,
12883         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12884         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12885         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12886         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12887         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12888         ix86_secondary_memory_needed): Change to bool.  Return
12889         "true" and "false" values.
12890         * config/i386/i386.md: Return "true" and "false" values.
12891
12892 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12893
12894         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12895         run_expensive_tests.
12896
12897 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12898
12899         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12900
12901 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12902
12903         PR other/45443
12904         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12905         at -O3.
12906
12907 2010-09-08  Richard Guenther  <rguenther@suse.de>
12908
12909         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12910         (visit): Adjust.
12911         (iterative_hash_gimple_type): Likewise.
12912         (gimple_type_hash): Likewise.
12913         (gimple_register_type): Likewise.
12914         (print_gimple_types_stats): Likewise.
12915         (free_gimple_type_tables): Likewise.
12916
12917 2010-09-08  Michael Matz  <matz@suse.de>
12918
12919         PR tree-optimization/43430
12920         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12921         copies for conditional statements if it's not part of a reduction.
12922
12923 2010-09-08  Michael Matz  <matz@suse.de>
12924
12925         PR tree-optimization/33244
12926         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12927         empty loop latches.
12928
12929 2010-09-08  Richard Guenther  <rguenther@suse.de>
12930
12931         PR tree-optimization/45578
12932         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12933         Be more careful when transfering alignment information to
12934         the new induction variable.
12935         (copy_ref_info): Likewise.
12936
12937 2010-09-08  Richard Guenther  <rguenther@suse.de>
12938
12939         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12940         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12941
12942 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12943
12944         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12945         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12946
12947 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12948
12949         PR doc/45587
12950         * doc/md.texi: Fixed modes on several standard pattern names.
12951
12952 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12953
12954         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12955         (ashl<mode>3): ...this.
12956         (loongson_psra<V_suffix>): Rename to...
12957         (ashr<mode>3): ...this.
12958         (loongson_psrl<V_suffix>): Rename to...
12959         (lshr<mode>3): ...this.
12960         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12961         (CODE_FOR_loongson_psllw): Define.
12962         (CODE_FOR_loongson_psrlh): Define.
12963         (CODE_FOR_loongson_psrlw): Define.
12964         (CODE_FOR_loongson_psrah): Define.
12965         (CODE_FOR_loongson_psraw): Define.
12966
12967 2010-09-07  Richard Henderson  <rth@redhat.com>
12968
12969         * tree-vect-data-refs.c: Include tm_p.h.
12970         * Makefile.in (tree-vect-data-refs.o): Update deps.
12971         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12972         Move delarations outside #ifdef RTX_CODE.
12973
12974 2010-09-07  Richard Henderson  <rth@redhat.com>
12975
12976         * final.c (rest_of_handle_final): Unconditionally do
12977         output_function_exception_table before assemble_end_function.
12978
12979 2010-09-07  Jan Hubicka  <jh@suse.cz>
12980
12981         * tree-inline.c (tree_inlinable_function_p): Do not test
12982         DECL_REPLACEABLE_P.
12983         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12984         update_callee_keys, cgraph_decide_inlining): Test function availability.
12985         * cif-code.def (OVERWRITABLE): New code.
12986
12987 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12988             Jack Howarth  <howarth@bromo.med.uc.edu>
12989
12990         PR target/36502
12991         PR target/42313
12992         PR target/44651
12993         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12994         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12995         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12996         MAX macro.
12997
12998 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12999
13000         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
13001         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
13002
13003 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13004
13005         * config.gcc: Don't append t-android for Android targets.
13006
13007         * config/t-android: Removed.
13008
13009 2010-09-07  Richard Henderson  <rth@redhat.com>
13010
13011         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
13012         * doc/tm.texi.in: Add doc marker.
13013         * doc/tm.texi: Rebuild.
13014         * except.c (switch_to_exception_section): Always build.
13015         (output_one_function_exception_table): Move section switch,
13016         personality output, and label output ...
13017         (output_function_exception_table): ... here.  Use the new
13018         personality hook.
13019
13020         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
13021         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
13022         TARGET_ASM_INIT_SECTIONS): New.
13023         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
13024         make static.
13025         (TARGET_ASM_UNWIND_EMIT): Update to match.
13026         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
13027
13028         * config/arm/arm.c (arm_asm_emit_except_personality): New.
13029         (arm_asm_init_sections): New.
13030         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
13031
13032 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13033
13034         * config/arm/arm.md: Remove unused variable.
13035
13036 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
13037
13038         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13039         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
13040         (m32r_memory_move_cost): New function.
13041
13042 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13043
13044         * config.gcc: Append t-android for Android targets.
13045
13046         * config/t-android: New.
13047
13048 2010-09-07  Richard Henderson  <rth@redhat.com>
13049
13050         * target.def (unwind_emit_before_insn): New hook.
13051         * doc/tm.texi.in: Add @hook marker for it.
13052         * doc/tm.texi: Rebuild.
13053         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
13054
13055 2010-09-07  Martin Jambor  <mjambor@suse.cz>
13056
13057         PR fortran/43665
13058         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
13059         are any type attributes.
13060
13061 2010-09-07  Jan Hubicka  <jh@suse.cz>
13062
13063         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
13064         array_ref_low_bound in string access folding.
13065
13066 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
13067
13068         PR target/45206
13069         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
13070         eh_return fixup sequence.
13071
13072 2010-09-07  Jan Hubicka  <jh@suse.cz>
13073
13074         * gimple-fold.c (maybe_fold_reference): Verify that operand is
13075         gimple_min_invariant.
13076
13077 2010-09-07  Richard Guenther  <rguenther@suse.de>
13078
13079         PR middle-end/45569
13080         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
13081         nor CONSTRUCTOR can trap.
13082         * tree-complex.c (update_complex_assignment): Update EH info.
13083
13084 2010-09-07  Richard Guenther  <rguenther@suse.de>
13085
13086         PR middle-end/45569
13087         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
13088         * passes.c (execute_function_todo): Do not verify anything if
13089         we saw errors.
13090
13091 2010-09-07  Richard Guenther  <rguenther@suse.de>
13092
13093         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
13094
13095 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
13096
13097         PR target/43137
13098         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
13099         New define_mode_attrs.
13100         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
13101         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
13102         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
13103         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
13104         Remove pool_range attribute.
13105         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
13106         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
13107         pool_range and neg_pool_range attributes.
13108         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
13109         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
13110         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
13111
13112 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13113
13114         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
13115         check glibc.
13116
13117 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13118
13119         PR target/22152
13120         * config/i386/mmx.md (*mov<mode>_internal_rex64,
13121         *mov<mode>_internal_avx, *mov<mode>_internal,
13122         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
13123         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
13124
13125 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
13126
13127         * c-typeck.c (do_warn_double_promotion): Remove.
13128         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
13129         Objective-C++ too.
13130
13131 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
13132
13133         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
13134         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
13135         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
13136         argument type to reg_class_t. Change result type to bool.
13137         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13138
13139 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
13140
13141         PR libobjc/19850
13142         * gthr-posix.h (__gthread_objc_thread_detach): Use
13143         _objc_thread_attribs when detaching a thread.
13144         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
13145
13146 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13147
13148         PR target/45524
13149         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
13150         * configure: Regenerated.
13151
13152 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13153
13154         * combine.c (try_combine): Set subst_low_luid to i0.
13155
13156 2010-09-06  Richard Guenther  <rguenther@suse.de>
13157
13158         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
13159         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
13160         (build_aligned_type): Declare.
13161         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
13162         (check_aligned_type): New function.
13163         (build_aligned_type): Likewise.
13164         * expr.c (expand_assignment): Handle misaligned stores via
13165         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
13166         (expand_expr_real_1): Likewise.
13167         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
13168         * tree-vect-stmts.c (vectorizable_store): Do not build
13169         MISALIGNED_INDIRECT_REF but initialize alignment information.
13170         (vectorizable_load): Likewise.
13171         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
13172         handling.
13173         * cfgexpand.c (expand_debug_expr): Likewise.
13174         * dwarf2out.c (loc_list_from_tree): Likewise.
13175         * fold-const.c (maybe_lvalue_p): Likewise.
13176         (operand_equal_p): Likewise.
13177         (build_fold_addr_expr_with_type_loc): Likewise.
13178         * gimplify.c (gimplify_addr_expr): Likewise.
13179         (gimplify_expr): Likewise.
13180         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
13181         (verify_gimple_assign_single): Likewise.
13182         * tree-dump.c (dequeue_and_dump): Likewise.
13183         (tree_could_trap_p): Likewise.
13184         * tree-predcom.c (ref_at_iteration): Likewise.
13185         * tree-pretty-print.c (dump_generic_node): Likewise.
13186         (op_code_prio): Likewise.
13187         (op_symbol_code): Likewise.
13188         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
13189         * tree-ssa-loop-im.c (for_each_index): Likewise.
13190         (gen_lsm_tmp_name): Likewise.
13191         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
13192         (find_interesting_uses_address): Likewise.
13193         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
13194         * tree-ssa-operands.c (get_expr_operands): Likewise.
13195         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
13196         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13197         (ao_ref_init_from_vn_reference): Likewise.
13198         * tree.c (staticp): Likewise.
13199         (build1_stat): Likewise.
13200         (reference_alias_ptr_type): Likewise.
13201         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13202         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
13203         MISALIGNED_INDIRECT_REF handling.
13204
13205 2010-09-06  Richard Guenther  <rguenther@suse.de>
13206
13207         PR tree-optimization/45534
13208         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
13209         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
13210         on the target.
13211         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
13212         valid on the target.
13213
13214 2010-09-06  Andreas Schwab  <schwab@redhat.com>
13215
13216         * configure.ac: Quote argument of AC_MSG_WARN.
13217         * configure: Regenerate.
13218
13219 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13220
13221         * sel-sched.c (move_cond_jump): Correct arguments to
13222         maybe_tidy_empty_bb.
13223         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13224
13225 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
13226
13227         PR rtl-optimization/44919
13228         * sel-sched.c (move_cond_jump): Remove assert, check that
13229         the several blocks case can only happen with mutually exclusive
13230         insns instead.  Rewrite the movement code to support moving through
13231         several basic blocks.
13232
13233 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13234
13235         * config/i386/i386.md (iptrsize): New mode attribute.
13236         (tp_seg): Ditto.
13237         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
13238         mode iterator.
13239         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
13240         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
13241         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
13242         (stack_tls_protect_set_<mode>): Ditto from
13243         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
13244         of thread base pointer load.
13245         (stack_tls_protect_test_<mode>): Ditto from
13246         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
13247         of thread base pointer load.
13248         (stack_protect_set): Rewrite using indirect functions.
13249         (stack_protect_test): Ditto.
13250         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
13251         (ix86_print_operand): Handle '@'.
13252
13253 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
13254
13255         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
13256         MINUS_EXPR.
13257
13258 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
13259
13260         * doc/invoke.texi: Document -Wdouble-promotion.
13261         * c-typeck.c (convert_arguments): Check for implicit conversions
13262         from float to double.
13263         (do_warn_double_promotion): New function.
13264         (build_conditional_expr): Use it.
13265         (build_binary_op): Likewise.
13266
13267 2010-09-05  Richard Guenther  <rguenther@suse.de>
13268
13269         PR tree-optimization/45535
13270         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
13271         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
13272         dereferencing it.
13273         (indirect_refs_may_alias_p): Likewise.
13274
13275 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
13276
13277         * config/sh/sh.c (sh_option_override): Make static.
13278         Adjust comments.  Declare.
13279         (sh_function_value_regno_p): Likewise.
13280         (sh_register_move_cost): Modify the arguments, make static.
13281         Adjust comments.  Declare.
13282         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
13283         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13284         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
13285         REGISTER_MOVE_COST): Delete.
13286         * config/sh/sh-protos.h (sh_override_options): Delete.
13287         (sh_register_move_cost): Delete.
13288         (sh_function_value_regno_p): Delete.
13289
13290 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
13291
13292         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13293         m32r_function_value_regno_p): New functions.
13294         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13295         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13296         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13297         FUNCTION_VALUE_REGNO_P): Remove.
13298
13299 2010-09-04  Jan Hubicka  <jh@suse.cz>
13300
13301         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13302         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13303         fold_read_from_constant_string.
13304
13305         * gimple.h (canonicalize_constructor_val): Declare.
13306         * gimple-fold.c (canonicalize_constructor_val): New function.
13307         (get_symbol_constant_value):Use it.
13308         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13309
13310 2010-09-04  Jan Hubicka  <jh@suse.cz>
13311
13312         * tree-switch-conversion.c (build_one_array): Set constructor to be
13313         static.
13314         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13315
13316 2010-09-04  Richard Guenther  <rguenther@suse.de>
13317
13318         PR bootstrap/45519
13319         * tree-flow.h (force_gimple_operand_1): Declare.
13320         (force_gimple_operand_gsi_1): Likewise.
13321         * gimplify.c (force_gimple_operand_1): New worker taking a
13322         gimple predicate for ...
13323         (force_gimple_operand): ... which now wraps it.
13324         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13325         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13326         last change.
13327         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13328         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13329         (create_mem_ref): Likewise.
13330
13331 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13332
13333         * config/i386/predicates.md (sse_reg_operand): New predicate.
13334         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13335         predicate for operand 1.
13336         (XFmode push splitter): Use fp_register_operand predicate
13337         for operand 1.
13338         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13339         (SF-DF float_extend push splitter): Add reload_completed insn
13340         predicate.
13341         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13342         MODEF mode macro.  Add reload_completed insn predicate.
13343
13344 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13345
13346         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13347         (struct df_extract_ref): Remove.
13348         (union df_ref_d): Remove extract_ref member.
13349         (df_ref_create): Remove last three arguments.
13350         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13351         * df-scan.c (df_ref_record): Remove last three arguments, do not
13352         pass them to df_ref_create_structure.
13353         (df_uses_record): Remove first and last three arguments.  Replace
13354         first argument with DF_REF_REGULAR, adjust calls to remove the
13355         width, offset and mode.  Always call recursively on the second
13356         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13357         (df_ref_create_structure): Remove first argument.
13358         (struct df_scan_problem_data): Remove ref_extract_pool.
13359         (df_scan_free_internal): Do not free it.
13360         (df_scan_alloc): Do not allocate it.
13361         (df_ref_create): Remove last three arguments, do not pass them to
13362         df_ref_create_structure.
13363         (df_free_ref): Remove DF_REF_EXTRACT case.
13364         (df_notes_rescan): Adjust call to df_uses_record.
13365         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13366         Remove DF_REF_EXTRACT case.
13367         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13368         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13369         and SUBREG definitions.
13370         (df_get_conditional_uses): Remove references to width/offset/mode,
13371         adjust call to df_ref_create_structure.
13372         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13373         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13374         calls to df_uses_record and df_ref_record.
13375         * fwprop.c (update_df): Remove references to width/offset/mode,
13376         adjust call to df_ref_create.
13377
13378 2010-09-03  Jan Hubicka  <jh@suse.cz>
13379
13380         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13381         (build_cdtor_fns): Update use of build_cdtor.
13382
13383 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13384
13385         * doc/options.texi (SeparateAlias): Document.
13386         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13387         * opth-gen.awk: Generate enumeration names for options marked
13388         SeparateAlias, but not for those marked Ignore.
13389         * opts-common.c (generate_canonical_option): Don't output separate
13390         argument for options marked CL_SEPARATE_ALIAS.
13391         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13392         * opts.h (CL_SEPARATE_ALIAS): New.
13393         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13394         CL_COMMON): Adjust definitions.
13395         * config/i386/darwin.opt, config/mips/sde.opt: New.
13396         * common.opt (fdump-final-insns): New.
13397         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13398         i386/darwin.opt.
13399         (mips*-sde-elf*): Add mips/sde.opt.
13400         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13401         -mno-data-in-code and -mcode-xonly here.
13402         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13403         * gcc.c (option_map): Add "j" to --dump entry.
13404         (translate_options): Don't translate -d to -foutput-class-dir= here.
13405
13406 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13407
13408         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13409         DR_IS_WRITE.
13410         (compute_all_dependences): Same.
13411         (create_rdg_edge_for_ddr): Same.
13412         * tree-data-ref.h (DR_IS_WRITE): New.
13413         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13414         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13415         (write_memrefs_written_at_least_once): Same.
13416         * tree-predcom.c (suitable_component_p): Same.
13417         (determine_roots_comp): Same.
13418         (execute_load_motion): Same.
13419         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13420         (vect_enhance_data_refs_alignment): Same.
13421         (vect_analyze_group_access): Same.
13422
13423 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13424
13425         PR testsuite/42843
13426         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13427         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13428
13429 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13430
13431         * dwarf2out.c (file scope): Remove #if0'd code.
13432         (gen_subprogram_die): Same.
13433
13434 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13435
13436         PR middle-end/45484
13437         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13438         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13439         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13440         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13441         * config/i386/i386.c (output_set_got): Call it.
13442
13443 2010-09-03  Michael Matz  <matz@suse.de>
13444
13445         PR middle-end/45415
13446         * tree-sra.c (sra_modify_assign): If we modify the statement,
13447         say so.
13448
13449         * tree-ssa.c (verify_ssa): Check number of operands and links
13450         per statement to agree.
13451
13452 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13453             Iain Sandoe  <iains@gcc.gnu.org>
13454
13455         PR target/45476
13456         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13457         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13458         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13459
13460 2010-09-03  Richard Guenther  <rguenther@suse.de>
13461
13462         * lto-streamer-out.c (output_function): Output function
13463         start and end loci.
13464         * lto-streamer-in.c (input_function): Input function start
13465         and end loci.
13466
13467 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13468
13469         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13470         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13471         * configure: Regenerate.
13472         * aclocal.m4: Regenerate.
13473
13474 2010-09-03  Jan Hubicka  <jh@suse.cz>
13475
13476         PR lto/44812
13477         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13478         on functions/variables in other partition.
13479
13480 2010-09-03  Jan Hubicka  <jh@suse.cz>
13481
13482         * cgraph.h (struct varpool_node): Add const_value_known.
13483         (varpool_decide_const_value_known): Declare.
13484         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13485         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13486         (input_varpool_node): Restore const_value_known.
13487         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13488         initializer folding.
13489         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13490         function_and_variable_visibility): Compute const_value_known.
13491         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13492         initializer folding.
13493         * varpool.c (varpool_decide_const_value_known): New function.
13494
13495 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13496
13497         * config/i386/i386.md: Remove empty preparation statements
13498         from splitters.
13499
13500 2010-09-03  Jan Hubicka  <jh@suse.cz>
13501
13502         * passes.c (rest_of_decl_compilation): Do not add local vars into
13503         varpool.
13504         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13505         static or extern vars are in varpool.
13506         (varpool_finalize_decl): Sanity check that only static vars are
13507         finalized.
13508
13509 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13510
13511         PR debug/45500
13512         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13513         not just generic vectors with BLKmode.
13514
13515 2010-09-03  Richard Guenther  <rguenther@suse.de>
13516
13517         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13518         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13519         * tree.h (TMR_SYMBOL): Remove.
13520         (TMR_BASE, TMR_OFFSET): Adjust.
13521         (TMR_INDEX2): New.
13522         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13523         * builtins.c (get_object_alignment): Merge TMR_BASE and
13524         TMR_SYMBOL handling.
13525         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13526         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13527         handling.  Also allow TARGET_MEM_REF as base address.
13528         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13529         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13530         base.  Gimplify TMR_INDEX2.
13531         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13532         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13533         (get_addr_base_and_unit_offset): Likewise.
13534         * tree-eh.c (tree_could_trap_p): Likewise.
13535         * tree-pretty-print.c (dump_generic_node): Likewise.
13536         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13537         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13538         base to index2.
13539         (get_address_description): Reconstruct addres description
13540         from merged TMR_BASE and TMR_INDEX2.
13541         (maybe_fold_tmr): Fold propagated addresses.
13542         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13543         MEM_REF and TARGET_MEM_REF paths.
13544         (indirect_refs_may_alias_p): Likewise.
13545         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13546         instead of TMR_SYMBOL.
13547         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13548         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13549         according to changes ...
13550         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13551         Split TARGET_MEM_REF into two fields plus the base.
13552         * tree.c (mem_ref_offset): Simplify.
13553         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13554         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13555         Strip NOPs when folding MEM_REF addresses.
13556         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13557         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13558         (fold_gimple_assign): ... not here.
13559
13560 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13561
13562         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13563         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13564         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13565
13566 2010-09-02  Richard Henderson  <rth@redhat.com>
13567
13568         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13569         instead of readelf in the test.
13570         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13571         in the .debug_frame section for coff targets.
13572         * configure: Rebuild.
13573
13574 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13575
13576         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13577         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13578         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13579         (m32c_class_likely_spilled_p): Make static. Change argument type to
13580         reg_class_t. Change result type to bool.
13581
13582 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13583
13584         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13585         to convert (double)(long) into a single FRIZ instruction or not
13586         when -ffast-math is used.
13587
13588         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13589         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13590         or FRIZ instruction if -ffast-math.
13591         * config/rs6000/rs6000.md (friz): Ditto.
13592
13593         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13594
13595 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13596
13597         * opth-gen.awk (quote, comma): Remove unused variables.
13598
13599 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13600
13601         * arm.c (arm_override_options): Correct fall-back code to use
13602         SUBTARGET_CPU_DEFAULT.
13603
13604 2010-09-02  Julian Brown  <julian@codesourcery.com>
13605
13606         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13607         unspecs.
13608         (vcond<mode>, vcondu<mode>): New expanders.
13609         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13610         comparisons with zero.
13611         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13612         * config/arm/constraints.md (Dz): New constraint.
13613
13614 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13615
13616         * target.def (class_likely_spilled_p): New hook.
13617         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13618         * doc/tm.texi: Regenerate.
13619         * targhooks.c (default_class_likely_spilled_p): New function.
13620         * targhooks.h (default_class_likely_spilled_p): Declare.
13621         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13622         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13623         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13624         Use fixed_reg_set instead of fixed_regs.
13625         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13626         * calls.c (avoid_likely_spilled_reg): Ditto.
13627         * ira-conflicts.c (ira_build_conflicts): Ditto.
13628         * ira.c (update_equiv_regs): Ditto.
13629         * mode-switching.c (create_pre_exit): Ditto.
13630         * regmove.c (find_matches): Ditto.
13631         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13632         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13633         (small_register_class_p): New inline function.
13634         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13635         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13636
13637         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13638         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13639         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13640
13641 2010-09-02  Richard Guenther  <rguenther@suse.de>
13642
13643         PR tree-optimization/44937
13644         PR tree-optimization/45412
13645         * ipa-split.c (split_function): Properly remove PHI nodes.
13646
13647 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13648
13649         * opts.h (struct cl_option): Add warn_message field.
13650         (struct cl_decoded_option): Add warn_message field.
13651         * doc/options.texi (Ignore, Warn): Document.
13652         * opt-functions.awk (needs_state_p): Don't consider aliases or
13653         ignored options to need state saved.
13654         * optc-gen.awk: Handle Warn and Ignore.
13655         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13656         * opts-common.c (decode_cmdline_option): Set warn_message field.
13657         Handle ignored options.
13658         (decode_cmdline_options_to_array, generate_option,
13659         generate_option_input_file): Set warn_message field.
13660         (read_cmdline_option): Generate warnings from warn_message field.
13661         Handle ignored options.
13662         * common.opt (Wunreachable-code, fargument-alias,
13663         fargument-noalias, fargument-noalias-global,
13664         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13665         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13666         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13667         ftree-salias): Mark Ignore.
13668         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13669         -mintel-syntax and -mno-intel-syntax here.
13670         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13671         using Warn.
13672         * opts.c (common_handle_option): Don't handle options marked as
13673         ignored.
13674         (enable_warning_as_error): Handle ignored options.
13675
13676 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13677
13678         PR driver/44076
13679         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13680         alias_target fields.
13681         * opt-functions.awk (opt_sanitized_name): Don't handle
13682         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13683         * optc-gen.awk: Generate alias fields.
13684         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13685         Don't generate such constants for aliases.
13686         * opts-common.c (generate_canonical_option): New.
13687         (decode_cmdline_option): Handle aliases.  Use
13688         generate_canonical_option for known options instead of copying the
13689         input option text.
13690         * doc/options.texi (Alias): Document.
13691         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13692         fstack-check, specs): Mark as aliases.
13693         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13694         arguments.
13695         (driver_handle_option): Don't handle OPT_specs.
13696         * opts.c (common_handle_option): Don't handle options marked as
13697         aliases.
13698         (enable_warning_as_error): Handle aliases.
13699         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13700         OPT_Wlarger_than_eq.
13701         * tree-optimize.c (tree_rest_of_compilation): Use
13702         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13703
13704 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13705
13706         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13707         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13708         (move immediate to memory peephole2): Macroize peepholes using
13709         SWI124 mode iterator.
13710         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13711         mode iterator.
13712         (simple lea add peephole2): Macroize peepholes using SWI48
13713         mode iterator.
13714         (simple lea mult peephole2): Ditto.
13715         (imul by 3,5,9 to lea peephole2): Ditto.
13716         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13717         mode iterator.
13718         (imul $32bit_imm,mem,reg peephole2): Ditto.
13719         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13720
13721 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13722
13723         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13724
13725 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13726
13727         PR middle-end/44763
13728         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13729         (allocno_priority_compare_func): Use it instead of a straight
13730         difference computation over priorities.
13731
13732 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13733
13734         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13735
13736 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13737
13738         * tree-vectorizer.h (get_later_stmt): New function.
13739         (vect_analyze_data_ref_dependences): Add argument.
13740         * tree-vect-loop.c (vect_analyze_loop): Update call to
13741         vect_analyze_data_ref_dependences.
13742         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13743         New function.
13744         (vect_analyze_data_ref_dependence): Add argument for basic block
13745         dependencies. Check dependencies in basic block vectorization.
13746         (vect_analyze_data_ref_dependences): Add argument and update call to
13747         vect_analyze_data_ref_dependences.
13748         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13749         (vect_bb_vectorizable_with_dependencies): New.
13750         (vect_slp_analyze_bb): Check dependencies in basic block.
13751         (vect_schedule_slp_instance): Insert stores before the last store in
13752         SLP instance.
13753
13754 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13755
13756         PR target/45476
13757         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13758         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13759
13760 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13761
13762         PR middle-end/45458
13763         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13764         bbs ending with throwing insns like blocks ending with a call.
13765         (fix_up_fall_thru_edges): Likewise.
13766
13767 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13768
13769         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13770         (m32c_function_arg_advance): Delete.
13771         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13772         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13773         comments.  Take a const_tree and a bool.  Declare.
13774         (m32c_function_arg_advance): Likewise.
13775         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13776
13777 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13778
13779         PR target/45476
13780         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13781         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13782         * config/i386/mingw32.h: ... here.
13783
13784 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13785
13786         PR lto/45475
13787         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13788         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13789         * lto-streamer-out (lto_output_ts_target_option): Add.
13790         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13791
13792 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13793
13794         PR/target 45452
13795         * config/i386/cygwin.h: Change order of specified import libraries.
13796         * config/i386/mingw32.h: Likewise.
13797         * config/i386/t-cygwin: Likewise.
13798         * config/i386/t-mingw32: Likewise.
13799         * config/i386/t-mingw-w32: Likewise.
13800         * config/i386/t-mingw-w64: Likewise.
13801
13802 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13803
13804         * config/arm/neon-schedgen.ml (core): New type.
13805         (allCores): List of supported cores.
13806         (availability_table): Add supported cores.
13807         (collate_bypasses): Accept core as a parameter.
13808         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13809         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13810         and coreStr to get tune attribute and prefix for functional units.
13811         (emit_bypasses): Accept core name and use it.
13812         (calculate_per_core_availability_table): New.
13813         (filter_core): New.
13814         (calculate_core_availability_table): New.
13815         (main): Use calculate_core_availablity_table.
13816         * config/arm/cortex-a8-neon.md: Update copyright year.
13817         Regenerated from ml file and merged in.
13818         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13819         cortex_a8_neon_mrc.
13820
13821 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13822
13823         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13824
13825 2010-09-01  Richard Guenther  <rguenther@suse.de>
13826
13827         * alias.c (ao_ref_from_mem): Adjust.
13828         * builtins.c (get_object_alignment): Likewise.
13829         * cfgexpand.c (expand_debug_expr): Likewise.
13830         * gimple.c (get_base_address): Likewise.
13831         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13832         (get_addr_base_and_unit_offset): Likewise.  Fix for
13833         both TMR_SYMBOL and TMR_BASE being set.
13834         * tree-eh.c (tree_could_trap_p): Likewise.
13835         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13836         TMR_SYMBOL.  Always gimplify TMR_BASE.
13837         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13838         TMR_BASE if there is a TMR_SYMBOL.
13839         * tree-pretty-print.c (dump_generic_node): Adjust.
13840         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13841         (tree_mem_ref_addr): Likewise.
13842         (create_mem_ref_raw): Likewise.
13843         (move_fixed_address_to_symbol): Likewise.
13844         (create_mem_ref): Likewise.
13845         (dump_mem_address): Likewise.
13846         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13847         Fix for both TMR_SYMBOL and TMR_BASE being set.
13848         (indirect_refs_may_alias_p): Likewise.
13849         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13850         * tree.def (TARGET_MEM_REF): Adjust documentation.
13851
13852 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13853
13854         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13855         Rename from X86_TUNE_ADD_ESP_4.
13856         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13857         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13858         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13859         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13860         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13861         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13862         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13863         * config/i386/i386.c (initial_ix86_tune_features)
13864         <X86_TUNE_SINGLE_POP>: Invert members.
13865         <X86_TUNE_DOUBLE_POP>: Ditto.
13866         <X86_TUNE_SINGLE_PUSH>: Ditto.
13867         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13868         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13869         No longer exported.
13870         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13871         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13872         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13873         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13874
13875 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13876
13877         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13878         a volatile LHS if the constructor has only one element.
13879
13880 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13881
13882         PR bootstrap/45321
13883         * tree.c (stdarg_p): Make fntype parameter const.
13884         * tree.h (stdarg_p): Likewise.
13885         (function_args_iterator): Remove unused fntype field.
13886         (function_args_iter_init): Do not initialize fntype
13887         field.  Make fntype parameter const.
13888
13889 2010-09-01  Richard Guenther  <rguenther@suse.de>
13890
13891         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13892         estimate.
13893         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13894         (execute_vrp): Compute number of iteration estimates.
13895         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13896         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13897         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13898         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13899         Infer loop bounds from undefined behavior based on a new parameter.
13900         (estimate_numbers_of_iterations): Likewise.
13901         (scev_probably_wraps_p): Adjust.
13902         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13903
13904 2010-09-01  Nick Clifton  <nickc@redhat.com>
13905
13906         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13907         where appropriate.
13908         (xstormy16_legitimate_address_p): Use true and false instead of 1
13909         and 0.
13910         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13911         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13912         magic constant 2.
13913         (xstormy16_expand_call): Fix comment at start of function.
13914
13915 2010-09-01  Nick Clifton  <nickc@redhat.com>
13916
13917         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13918         when pushing accumulator register.
13919         (rx_get_stack_layout): Always save call clobbered registers inside
13920         interrupt handlers.
13921         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13922
13923 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13924
13925         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13926         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13927
13928         * libgcc-std.ver (GCC_4.6.0): Define version.
13929
13930 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13931
13932         * tree-nested.c (convert_all_function_calls): Iterate until after the
13933         sum of static chains in the nest doesn't change.
13934
13935 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13936
13937         * config/m32c/m32c.c (classes_intersect): Remove.
13938         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13939         reg_classes_intersect_p instead of classes_intersect.
13940         (class_can_hold_mode): Change arguments type from enum reg_class to
13941         reg_class_t.  Use reg_class_contents instead of class_contents.
13942         (m32c_register_move_cost): Make static. Change arguments type from
13943         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13944         classes_intersect. Use reg_class_contents instead of class_contents.
13945         (m32c_memory_move_cost): Make static. Change arguments type from
13946         enum reg_class to reg_class_t.
13947         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13948         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13949         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13950         m32c_memory_move_cost): Remove.
13951
13952 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13953
13954         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13955         (arm_function_arg): Delete.
13956         (arm_needs_doubleword_align): Take a const_tree.
13957         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13958         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13959         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13960         (arm_function_arg): Make static.  Take a const_tree and a bool.
13961         (arm_function_arg_advance): Likewise.
13962         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13963
13964 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13965
13966         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13967         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13968         * lto-wrapper.c (run_gcc): Add jobserver mode.
13969         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13970         argument.
13971
13972 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13973
13974         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13975         (popsi1): Ditto.
13976         (*popdi1_epilogue): Ditto.
13977         (*popsi1_epilogue): Ditto.
13978         (popsi, popdi peephole2 patterns): Update peepholes for changed
13979         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13980
13981         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13982         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13983
13984         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13985         (override_options): Do not initialize removed ix86_gen_pop1.
13986         (gen_pop): New static function.
13987         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13988         (release_scratch_register_on_entry): Ditto.
13989         (ix86_restore_reg_using_pop): Ditto.
13990         (ix86_expand_epilogue): Ditto.
13991
13992 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13993
13994         PR middle-end/45461
13995         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13996
13997 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13998
13999         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
14000         semicolons.
14001
14002 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14003
14004         * doc/extend.texi: Fix documentation of the return value of
14005         __builtin_choose_expr.
14006
14007 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14008
14009         * config/v850/v850-protos.h (function_arg): Delete.
14010         * config/v850/v850.h (FUNCTION_ARG): Delete.
14011         (FUNCTION_ARG_ADVANCE): Move code to...
14012         * config/v850/v850.c (v850_function_arg_advance): ...here.
14013         (v850_function_arg): Make static.  Take a const_tree and a bool.
14014         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14015
14016 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14017
14018         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
14019         these...
14020         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14021         ...and these...
14022         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
14023         ..to here..
14024         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14025         ...and here.
14026         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14027
14028 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14029
14030         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
14031         Delete.
14032         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14033         * config/rx/rx.c (rx_function_arg_size): Make static.
14034         (rx_function_arg): Likewise.
14035         (rx_function_arg_advance): New function.
14036         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14037
14038 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
14039
14040         * config/arm/arm.c (arm_override_options): Remove superfluous test.
14041         Fix indentation.
14042
14043 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14044
14045         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
14046         (dwarf2out_decl) <CONST_DECL>: Likewise.
14047
14048 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
14049
14050         Stack usage support
14051         * common.opt (-fstack-usage): New option.
14052         * doc/invoke.texi (Debugging options): Document it.
14053         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
14054         allocate_dynamic_stack_space.
14055         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
14056         and propagate it to allocate_dynamic_stack_space.
14057         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
14058         * calls.c (initialize_argument_information): Pass TRUE as 4th
14059         argument to allocate_dynamic_stack_space.
14060         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
14061         to 1 when pushing a variable-sized argument onto the stack.  Pass
14062         TRUE as 4th argument to allocate_dynamic_stack_space.
14063         Update current_function_pushed_stack_size.
14064         (emit_library_call_value_1): Likewise.
14065         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
14066         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
14067         attempt to find an upper bound.  Remove redundant code for the
14068         SETJMP_VIA_SAVE_AREA case.
14069         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
14070         * function.h (struct stack_usage): New structure.
14071         (current_function_static_stack_size): New macro.
14072         (current_function_dynamic_stack_size): Likewise.
14073         (current_function_pushed_stack_size): Likewise.
14074         (current_function_dynamic_alloc_count): Likewise.
14075         (current_function_has_unbounded_dynamic_stack_size): Likewise.
14076         (current_function_allocates_dynamic_stack_space): Likewise.
14077         (struct function): Add new field 'su'.
14078         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
14079         add the value of the dynamic offset to the dynamic stack usage.
14080         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
14081         for variable-sized objects.
14082         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
14083         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
14084         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
14085         BUILT_IN_ALLOCA for variable-sized objects.
14086         * output.h (output_stack_usage): Declare.
14087         * toplev.c (stack_usage_file): New file pointer.
14088         (output_stack_usage): New function.
14089         (open_auxiliary_file): Likewise.
14090         (lang_dependent_init): Open file if flag_stack_usage is set.
14091         (finalize): Close file if stack_usage_file is not null.
14092         * tree.h (ALLOCA_FOR_VAR_P): New macro.
14093         * config/alpha/alpha.c (compute_frame_size): New function.
14094         (alpha_expand_prologue): Use it.
14095         (alpha_start_function): Likewise.
14096         (alpha_expand_epilogue): Likewise.  Set stack usage info.
14097         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14098         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14099         * config/mips/mips.c (mips_expand_prologue): Likewise.
14100         * config/pa/pa.c (hppa_expand_prologue): Likewise.
14101         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14102         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14103
14104 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
14105
14106         PR tree-optimization/45427
14107         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
14108         Handle the case that the exit is never taken correctly.
14109         (number_of_iterations_ne): Pass exit_must_be_taken to
14110         number_of_iterations_ne_max.
14111
14112 2010-08-30  Catherine Moore  <clm@codesourcery.com>
14113
14114         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
14115         Infer -mdspr2 for the the 74K.
14116
14117 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
14118
14119         PR debug/45419
14120         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
14121
14122         PR middle-end/45423
14123         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
14124         and TRUTH_{AND,OR,XOR}_EXPR.
14125         * c-parser.c (c_parser_omp_atomic): Handle boolean
14126         {PRE,POST}_{INC,DEC}REMENT.
14127
14128 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
14129
14130         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
14131         (function_arg): Delete.
14132         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14133         (FUNCTION_INCOMING_ARG): Delete.
14134         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
14135         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
14136         and a bool.
14137         (function_arg): Rename to...
14138         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
14139         a bool.
14140         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
14141         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14142         (TARGET_FUNCTION_INCOMING_ARG): Define.
14143
14144 2010-08-30  Richard Guenther  <rguenther@suse.de>
14145
14146         PR tree-optimization/21602
14147         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
14148         using points-to information.
14149
14150 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
14151
14152         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
14153
14154 2010-08-30  Richard Guenther  <rguenther@suse.de>
14155
14156         PR tree-optimization/45449
14157         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
14158         variables.
14159
14160 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
14161
14162         * opts.h (CL_ERR_NEGATIVE): Define.
14163         * opts.c (unknown_option_callback): Don't postpone warnings for
14164         options marked with CL_ERR_NEGATIVE.
14165         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
14166         for negative versions of CL_REJECT_NEGATIVE options.
14167
14168 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
14169
14170         * config/i386/i386.md (zero_extendsidi2_1): Rename from
14171         zero_extendsidi2_32.
14172         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
14173         using SWI12 mode iterator.
14174         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
14175         to define_insn_and_split pattern.
14176         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
14177         using SWI24 mode iterator.
14178         (*zero_extendqi<mode>2_and): Macroize insn from
14179         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
14180         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
14181         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
14182         SWI24 mode iterator.
14183         (*zero_extendqi<mode>2_movzbl): Ditto from
14184         *zero_extendqi{hi,si}2_movzbl.
14185         (extendsidi2_1): Rename from extendsidi2_32.
14186         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
14187         SWI12 mode iterator.
14188
14189 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
14190
14191         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
14192         general purpose registers.
14193         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
14194         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
14195         with general purpose registers and memory operands.  Add associated
14196         CCImode post-reload splitter.
14197         * config/ia64/div.md: Change BImode to CCImode throughout.
14198
14199 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
14200
14201         * config/ia64/ia64.md (cstorebi4): Fix thinko.
14202
14203 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
14204
14205         * config/picochip/picochip.c (reorder_var_tracking_notes): This
14206         function was dropping debug insns which caused PR45299.
14207
14208 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
14209
14210         * config/i386/sse.md (extsuffix): New code attribute.
14211         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
14212         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
14213         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
14214         and sse4_1_zero_extendv4qiv4si2.
14215         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
14216         and sse4_1_zero_extendv2qiv2di2.
14217         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
14218         and sse4_1_zero_extendv4hiv4si2.
14219         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
14220         and sse4_1_zero_extendv2hiv2di2.
14221         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
14222         and sse4_1_zero_extendv2siv2di2
14223
14224         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
14225         using any_extend code iterator.
14226         (*avx_<s>mulv8hi3_highpart): Macroize insn from
14227         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
14228         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
14229
14230         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
14231         gen_sse4_1_sign_extend* functions.
14232         (struct builtin_description bdesc_args): Ditto.
14233
14234 2010-08-27  Xinliang David Li  <davidxl@google.com>
14235
14236         PR/45422
14237         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
14238         (iv_ca_set_no_cp): Update used inv expr count.
14239         (iv_ca_set_cp): Ditto.
14240         (iv_ca_new): Initialize new member.
14241         (iv_ca_free): Free memory.
14242
14243 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14244
14245         * config/sh/sh-protos.h (sh_function_arg): Delete.
14246         (sh_function_arg_advance): Delete.
14247         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14248         (PASS_IN_REG_P): Eliminate cast.
14249         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
14250         const_tree and a bool.
14251         (sh_function_arg): Likewise.
14252         (sh_output_mi_thunk): Call sh_function_arg_advance) and
14253         sh_function_arg.
14254         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14255
14256 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
14257             Kaz Kojima  <kkojima@gcc.gnu.org>
14258
14259         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
14260         when possible.
14261         (sh_expand_epilogue): Likewise.
14262         * config/sh/sh.md (movml_push_banked): New insn.
14263         (movml_pop_banked): Likewise.
14264
14265 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
14266
14267         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
14268         gen_regexp_oneof, gen_regexp_sequence): Use the string found
14269         in vector element 0 rather than the original string when there's
14270         only one element.
14271         (gen_regexp): Remove extra semicolon.
14272
14273         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
14274         thumb2_movsf_vfp): Set attribute "insn".
14275         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
14276         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
14277         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
14278         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
14279         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
14280         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
14281         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
14282         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
14283         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
14284         if_not_arith, if_arith_not, cond_move_not): Likewise.
14285
14286 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14287
14288         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
14289         New declaration.
14290         (rs6000_allocate_stack_temp): Ditto.
14291         (rs6000_expand_convert_si_to_sfdf): Ditto.
14292
14293         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14294         line.  Update the options set if power6 or power7 server/embedded
14295         type options are used.  If we give a warning for no vsx under
14296         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14297         (rs6000_allocate_stack_temp): New function to allocate a stack
14298         tempoary and adjust the address so it meets either REG+OFFSET or
14299         REG+REG addressing requirements.
14300         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14301         that they can be used with the LFIWAX/LFIWZX instrucitons.
14302         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14303         converting signed/unsigned SImode to either SFmode/DFmode.
14304
14305         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14306         whether certain instructions can be generated.
14307         (TARGET_FCTIDZ): Ditto.
14308         (TARGET_STFIWX): Ditto.
14309         (TARGET_LFIWAX): Ditto.
14310         (TARGET_LFIWZX): Ditto.
14311         (TARGET_FCFIDS): Ditto.
14312         (TARGET_FCFIDU): Ditto.
14313         (TARGET_FCFIDUS): Ditto.
14314         (TARGET_FCTIDUZ): Ditto.
14315         (TARGET_FCTIWUZ): Ditto.
14316
14317         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14318         (UNSPEC_FCTID): Ditto.
14319         (UNSPEC_LFIWAX): Ditto.
14320         (UNSPEC_LFIWZX): Ditto.
14321         (UNSPEC_FCTIWUZ): Ditto.
14322         (rreg): Use correct constraints.
14323         (SI_CONVERT_FP): New mode attribute for floating point conversion
14324         tests.
14325         (E500_CONVERT): Ditto.
14326         (lfiwax): New insns for converting from integer to floating point
14327         utilizing newer instructions.  Attempt to optimize conversions
14328         that come from memory so that we don't load the value into a GPR,
14329         spill it to the stack and reload it into a FPR.
14330         (floatsi<mode>2_lfiwax): Ditto.
14331         (floatsi<mode>2_lfiwax_mem): Ditto.
14332         (floatsi<mode>2_lfiwax_mem2): Ditto.
14333         (lfiwzx): Ditto.
14334         (floatunssi<mode>2_lfiwzx): Ditto.
14335         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14336         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14337         (floatdidf2_mem): Ditto.
14338         (floatunsdidf2_fcfidu): Ditto.
14339         (floatunsdidf2_mem): Ditto.
14340         (floatunsdisf2): Ditto.
14341         (floatunsdisf2_fcfidus): Ditto.
14342         (floatunsdisf2_mem): Ditto.
14343         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14344         Use FCFID on 32-bit hosts that support it.
14345         (floatsidf2_internal): Ditto.
14346         (floatunssisf2): Ditto.
14347         (floatunssidf2): Ditto.
14348         (floatunssidf2_internal): Ditto.
14349         (floatsisf2): Ditto.
14350         (floatdidf2): Ditto.
14351         (floatdidf2_fpr): Ditto.
14352         (floatunsdidf2): Ditto.
14353         (floatdisf2): Ditto.
14354         (floatdisf2_fcfids): Ditto.
14355         (floatdisf2_internal1): Ditto.
14356         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14357         SF/DF.  Add power7 support.
14358         (fix_truncsfsi2): Ditto.
14359         (fixuns_truncdfsi2): Ditto.
14360         (fixuns_truncdfdi2): Ditto.
14361         (fix_truncdfsi2): Ditto.
14362         (fix_truncdfsi2_internal): Ditto.
14363         (fix_truncdfsi2_internal_gfxopt): Ditto.
14364         (fix_truncdfsi2_mfpgpr): Ditto.
14365         (fctiwz): Ditto.
14366         (btruncdf2): Ditto.
14367         (btruncdf2_fpr): Ditto.
14368         (btructsf2): Ditto.
14369         (ceildf2): Ditto.
14370         (ceildf2_fpr): Ditto.
14371         (ceilsf2): Ditto.
14372         (floordf2): Ditto.
14373         (floordf2_fpr): Ditto.
14374         (floorsf2): Ditto.
14375         (rounddf2): Ditto.
14376         (rounddf2_fpr): Ditto.
14377         (roundsf2): Ditto.
14378         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14379         (fix_trunc<mode>di2): Ditto.
14380         (fixuns_trunc<mode>si2): Ditto.
14381         (fixuns_trunc<mode>di2): Ditto.
14382         (fctiwz_<mode>): Ditto.
14383         (btrunc<mode>2): Ditto.
14384         (btrunc<mode>2_fpr): Ditto.
14385         (ceil<mode>2): Ditto.
14386         (ceil<mode>2_fpr): Ditto.
14387         (floor<mode>2): Ditto.
14388         (float<mode>2_fpr): Ditto.
14389         (round<mode>2): Ditto.
14390         (round<mode>2_fpr): Ditto.
14391         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14392         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14393         (fix_truncdfsi2_internal): Ditto.
14394         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14395         converted value on stack, loaded into GPR, and then stored into
14396         the final destination.
14397         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14398         FCTIDZ.
14399         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14400         (ftruncdf2): Delete, unused.
14401         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14402
14403         * config/rs6000/vsx.md (toplevel): Update copyright year.
14404         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14405         (VSr3): Ditto.
14406
14407 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14408             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14409
14410         * gengtype.c (output_type_enum): Test the right union member.
14411
14412 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14413
14414         PR target/41484
14415         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14416         operands for operand 1.
14417         (sse4_1_extendv4qiv4si2): Ditto.
14418         (sse4_1_extendv2qiv2di2): Ditto.
14419         (sse4_1_extendv4hiv4si2): Ditto.
14420         (sse4_1_extendv2hiv2di2): Ditto.
14421         (sse4_1_extendv2siv2di2): Ditto.
14422         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14423         (sse4_1_zero_extendv4qiv4si2): Ditto.
14424         (sse4_1_zero_extendv2qiv2di2): Ditto.
14425         (sse4_1_zero_extendv4hiv4si2): Ditto.
14426         (sse4_1_zero_extendv2hiv2di2): Ditto.
14427         (sse4_1_zero_extendv2siv2di2): Ditto.
14428         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14429         (*sse4_1_extendv4qiv4si2): Ditto.
14430         (*sse4_1_extendv2qiv2di2): Ditto.
14431         (*sse4_1_extendv4hiv4si2): Ditto.
14432         (*sse4_1_extendv2hiv2di2): Ditto.
14433         (*sse4_1_extendv2siv2di2): Ditto.
14434         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14435         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14436         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14437         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14438         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14439         (*sse4_1_zero_extendv2siv2di2): Ditto.
14440
14441 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14442
14443         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14444         (mips_function_arg): Delete.
14445         (mips_function_arg_boundary): Take a const_tree.
14446         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14447         (mips_arg_info): Likewise.
14448         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14449         instead of FUNCTION_ARG_ADVANCE.
14450         (mips_function_arg_advance): Adjust prototype.  Make static.
14451         (mips_function_arg): Likewise.
14452         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14453         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14454
14455 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14456
14457         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14458         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14459         (function_arg): Delete.
14460         (function_arg_boundary): Take a const_tree.
14461         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14462         (rs6000_spe_function_arg): Likewise.
14463         (rs6000_parm_start): Likewise.
14464         (rs6000_arg_size): Likewise.
14465         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14466         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14467         (rs6000_mixed_function_arg): Likewise.
14468         (function_arg): Rename to...
14469         (rs6000_function_arg): ...this.
14470         (function_arg_advance): Rename to...
14471         (rs6000_function_arg_advance_1): ...this
14472         (rs6000_function_arg_advance): New function.  Call it.
14473         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14474         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14475         (rs6000_function_value): Likewise.
14476         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14477
14478 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14479
14480         * config/arm/arm.md (enabled): Test the value of arch_enabled
14481         rather than just using it.
14482
14483 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14484             Eric Botcazou  <ebotcazou@adacore.com>
14485
14486         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14487         cover all the possible offsets from this base.
14488         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14489
14490 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14491
14492         PR tree-optimization/44485
14493         * calls.c (flags_from_decl_or_type): For const or pure
14494         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14495         together with ECF_CONST resp. ECF_PURE.
14496         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14497         instead of querying flags directly.
14498         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14499         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14500
14501 2010-08-26  Richard Guenther  <rguenther@suse.de>
14502
14503         PR tree-optimization/45255
14504         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14505         and externals are also invariant.
14506
14507 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14508
14509         PR rtl-optimization/44858
14510         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14511         newi2pat, make sure they don't affect newpat.
14512
14513         PR rtl-optimization/45400
14514         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14515         SUBREG_REG if both modes are of MODE_INT class.
14516
14517 2010-08-25  Julian Brown  <julian@codesourcery.com>
14518
14519         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14520         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14521         (generic_vfp): Likewise.
14522         (cortex-a5.md): Include.
14523         * config/arm/cortex-a5.md: New.
14524
14525 2010-08-25  Richard Guenther  <rguenther@suse.de>
14526
14527         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14528         * gimple.c (gimple_get_alias_set): Remove special handling
14529         for pointers.
14530
14531 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14532
14533         PR middle-end/45355
14534         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14535         dead_or_set_p when computing i0_feeds_i2_n.
14536
14537         * combine.c (find_split_point): Undo canonicalization of multiply-add
14538         to (minus x (mult)) when it seems likely that this will increase the
14539         chances of a split.
14540
14541 2010-08-25  Richard Guenther  <rguenther@suse.de>
14542
14543         PR lto/44562
14544         * lto-streamer.c (lto_record_common_node): Do not mess with
14545         TYPE_CANONICAL when not in lto.
14546         * gimple.c (gimple_register_type): Likewise.
14547
14548 2010-08-25  Richard Guenther  <rguenther@suse.de>
14549
14550         PR tree-optimization/45316
14551         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14552
14553 2010-08-25  Richard Guenther  <rguenther@suse.de>
14554
14555         PR tree-optimization/45393
14556         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14557         and clean EH info.  Avoid SSA update.
14558         (execute_cse_sincos): Cleanup the CFG if it has changed.
14559
14560 2010-08-25  Richard Guenther  <rguenther@suse.de>
14561
14562         PR middle-end/45379
14563         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14564         TARGET_MEM_REF in alignment computation.
14565
14566 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14567
14568         PR tree-optimization/45059
14569         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14570         type conversions from newop{1,2}.  Assert t is a comparison and
14571         newop{1,2} after the stripping are gimple vals.
14572
14573 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14574
14575         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14576         (V_unpack, US): New.
14577         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14578         (vec_unpack<US>_lo_<mode>): Likewise.
14579         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14580         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14581         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14582         (vec_widen_<US>mult_hi_<mode>): Likewise.
14583         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14584         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14585         (neon_unpack<US>_<mode>): Widening move intermediate step for
14586         vectorizing without -mvectorize-with-neon-quad.
14587         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14588         for vectorizing without -mvectorize-with-neon-quad.
14589         * config/arm/predicates.md (vect_par_constant_high): Check for
14590         high-half lanes of a vector.
14591         (vect_par_constant_low): Check for low-half lanes of a vector.
14592
14593 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14594
14595         * tree-if-conv.c (struct ifc_dr): New.
14596         (IFC_DR): New.
14597         (DR_WRITTEN_AT_LEAST_ONCE): New.
14598         (DR_RW_UNCONDITIONALLY): New.
14599         (memref_read_or_written_unconditionally): Use the cached values
14600         when possible.
14601         (write_memref_written_at_least_once): Same.
14602         (if_convertible_loop_p): Initialize and free DR->aux fields.
14603
14604 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14605
14606         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14607         Pass an extra bool parameter include_mem.
14608         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14609         (gimple_assign_rhs_could_trap_p): Same.
14610         * gimple.h (gimple_could_trap_p_1): Declared.
14611         * tree-data-ref.h (same_data_refs_base_objects): New.
14612         (same_data_refs): New.
14613         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14614         (write_memrefs_written_at_least_once): New.
14615         (ifcvt_memrefs_wont_trap): New.
14616         (operations_could_trap): New.
14617         (ifcvt_could_trap_p): New.
14618         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14619         Gets a vector of data refs.
14620         (if_convertible_stmt_p): Same.
14621         (if_convertible_loop_p_1): New.
14622         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14623
14624 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14625
14626         * common.opt (ftree-loop-if-convert-stores): New flag.
14627         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14628         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14629         the created statement before GSI.
14630         (if_convertible_phi_p): Allow virtual phi nodes when
14631         flag_loop_if_convert_stores is set.
14632         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14633         Do not handle types that do not match is_gimple_reg_type.
14634         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14635         when flag_loop_if_convert_stores is set, as LHS can contain
14636         memory refs.
14637         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14638         to if_convertible_gimple_assign_stmt_p.
14639         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14640         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14641         predicate_scalar_phi.  Do not handle virtual phi nodes.
14642         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14643         Call predicate_scalar_phi.
14644         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14645         just after the labels for flag_loop_if_convert_stores, otherwise
14646         insert the predicate in the end of the BB.
14647         (predicate_mem_writes): New.
14648         (combine_blocks): Call predicate_all_scalar_phis.  When
14649         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14650         (tree_if_conversion): Call mark_sym_for_renaming when
14651         flag_loop_if_convert_stores is set.
14652         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14653         flag_loop_if_convert_stores is set.
14654
14655 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14656
14657         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14658         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14659         (pa_function_value): Make static.
14660         (override_options): Rename to...
14661         (pa_option_override): ...this. Make static.
14662         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14663         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14664         TARGET_OPTION_OVERRIDE): Define.
14665         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14666         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14667         Remove.
14668         * config/pa/pa-protos.h (override_options): Remove.
14669
14670 2010-08-24  Richard Guenther  <rguenther@suse.de>
14671
14672         PR middle-end/45379
14673         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14674         if addr->index is NULL or zero.
14675         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14676         TARGET_MEM_REF more properly.
14677         (indirect_ref_may_alias_decl_p): Likewise.
14678         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14679         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14680
14681 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14682
14683         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14684         (m32c_override_options): Rename to...
14685         (m32c_option_override): ...this. Make static.
14686         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14687         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14688         Remove.
14689         * config/m32c/m32c-protos.h (m32c_override_options,
14690         m32c_function_value_regno_p): Remove.
14691
14692 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14693
14694         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14695         Fix a typo in a previous commit.
14696
14697 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14698
14699         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14700         Pre-initialize innerloop_iters to one.
14701
14702 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14703
14704         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14705         existing static function global.
14706
14707         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14708         is changed to global.
14709
14710         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14711         may_be_nonaddressable_p on base, and don't collect this reference
14712         if the address of the base could not be taken.
14713
14714 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14715
14716         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14717         enable the compiler to autovectorize mathmetical functions for
14718         power7 using the Mathematical Acceleration Subsystem library.
14719
14720         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14721         handle which vector math library we have.
14722         (rs6000_override_options): Add -mveclibabi=mass support.
14723         (rs6000_builtin_vectorized_libmass): New function to handle auto
14724         vectorizing math functions that are in the MASS library.
14725         (rs6000_builtin_vectorized_function): Call it.
14726
14727         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14728         -mveclibabi=mass.
14729
14730 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14731
14732         PR boehm-gc/34544
14733         * gthr-posix.h (__gthread_active_init): Delete.
14734         (__gthread_active_p): Do activity check here.
14735         Don't include errno.h on hppa-hpux.  Update comment.
14736         * gthr-posix95.h (__gthread_active_init): Delete.
14737         (__gthread_active_p): Do activity check here.
14738         Don't include errno.h on hppa-hpux.  Update comment.
14739         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14740         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14741         add -lpthread when -mt or -pthread is specified.
14742         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14743         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14744         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14745         (stublib.c, pthread_default_stacksize_np-stub.o,
14746         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14747         $(T)libgcc_stub.a): Add methods.
14748         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14749         (stublib.c, pthread_default_stacksize_np-stub.o,
14750         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14751         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14752         pthread_mutex_unlock): New stubs.
14753
14754 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14755
14756         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14757         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14758         options.
14759         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14760         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14761         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14762         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14763         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14764         "-l".
14765         * cppspec.c: Include opts.h.
14766         (lang_specific_driver): Use cl_decoded_option structures.
14767         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14768         * doc/tm.texi: Regenerate.
14769         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14770         (driver_handle_option): Allow driver options needing no special
14771         processing.
14772         (process_command): Decode options before call to
14773         lang_specific_driver.  Pass decoded options to
14774         lang_specific_driver.
14775         * gcc.h (lang_specific_driver): Update prototype.
14776         * gccspec.c: Include opts.h.
14777         (lang_specific_driver): Use cl_decoded_option structures.
14778         * opts-common.c (option_ok_for_language, generate_option,
14779         generate_option_input_file): New.
14780         (decode_cmdline_option): Use option_ok_for_language.
14781         (decode_cmdline_options_to_array): Use generate_option_input_file.
14782         (handle_generated_option): Use generate_option.
14783         * opts.h (generate_option, generate_option_input_file): Declare.
14784
14785 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14786
14787         * config/mips/mips.c (mips_override_options): Rename to...
14788         (mips_option_override): ...this. Make static.
14789         (TARGET_OPTION_OVERRIDE): Define.
14790         (mips_in_small_data_p): Update comment.
14791         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14792         (FIXED_REGISTERS): Update comment.
14793         * config/mips/mips-protos.h (mips_override_options): Remove.
14794
14795 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14796
14797         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14798
14799 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14800
14801         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14802         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14803
14804 2010-08-20  Jan Hubicka  <jh@suse.cz>
14805
14806         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14807         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14808         heap allocated.
14809         (record_cdtor_fn): Move to ipa.c; do not test for
14810         have_ctors_dtors.
14811         (build_cdtor): Move to ipa.c; add code avoiding construction
14812         when target have ctors/dtors and there is only one ctor/dtor at given
14813         priority.
14814         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14815         sort; reverse order of constructors.
14816         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14817         (cgraph_finalize_function): Do not call record_cdtor_fn.
14818         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14819         (cgraph_build_static_cdtor): Move to ipa.c.
14820         * ipa.c: Include target.h and tree-iterator.h.
14821         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14822         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14823         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14824         pass_ipa_cdtor_merge): New.
14825         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14826         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14827         bounds access.
14828
14829 2010-08-20  Jan Hubicka  <jh@suse.cz>
14830
14831         PR c++/45307
14832         PR c++/17736
14833         * cgraph.h (cgraph_only_called_directly_p,
14834         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14835         static cdtors.
14836         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14837         are not needed.
14838         (cgraph_finalize_function): Static cdtors are reachable.
14839         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14840
14841 2010-08-20  Jan Hubicka  <jh@suse.cz>
14842
14843         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14844         flag_wpa.
14845         * lto-streamer-out.c (lto_output): Likewise.
14846         * passes.c (ipa_write_optimization_summaries): Initialize statement
14847         uids.
14848
14849 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14850
14851         * tree.h (alias_diag_flags): New enum.
14852         (alias_pair): Add an 'emitted_diags' field.
14853         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14854         (assemble_alias): Initialize emitted_diags of new pairs.
14855
14856 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14857
14858         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14859         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14860         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14861         (STACK_CHECK_PROTECT): Define.
14862         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14863         (output_probe_stack_range): Likewise.
14864         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14865         builtin stack checking is enabled.
14866         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14867         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14868         (probe_stack_range): New insn.
14869
14870 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14871
14872         PR target/45336
14873         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14874         short first.
14875
14876         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14877         char first.
14878
14879 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14880
14881         PR target/45336
14882         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14883         to cover zero extension into 64-bit register.
14884         (*sse2_pextrw): Likewise.
14885         (*sse4_1_pextrd_zext): New insn.
14886
14887 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14888
14889         revert r163410, partially revert r163267.
14890         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14891         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14892         Darwin versions.
14893
14894 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14895
14896         PR middle-end/44974
14897         * builtins.c (expand_builtin): Don't optimize away
14898         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14899
14900 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14901
14902         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14903         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14904         alternative 1 of operand 2.
14905
14906 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14907             Paolo Bonzini  <bonzini@gnu.org>
14908
14909         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14910         (sign_extend (zero_extend (...)) and
14911         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14912
14913 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14914
14915         PR rtl-optimization/45353
14916         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14917         after bb_note is a BARRIER.
14918
14919 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14920
14921         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14922         linking libgcc.a.
14923
14924 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14925             Michael Matz  <matz@suse.de>
14926
14927         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14928
14929 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14930
14931         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14932         (ggc_mark_roots): ...here.
14933
14934 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14935
14936         * vec.h (FOR_EACH_VEC_ELT): Define.
14937         * c-decl.c: Use it.
14938         * cfgloop.c: Likewise.
14939         * cfgloopmanip.c: Likewise.
14940         * cgraph.c: Likewise.
14941         * cgraphunit.c: Likewise.
14942         * combine.c: Likewise.
14943         * config/bfin/bfin.c: Likewise.
14944         * config/mips/mips.c: Likewise.
14945         * config/rs6000/rs6000.c: Likewise.
14946         * dbxout.c: Likewise.
14947         * df-scan.c: Likewise.
14948         * dominance.c: Likewise.
14949         * dse.c: Likewise.
14950         * dwarf2out.c: Likewise.
14951         * except.c: Likewise.
14952         * expr.c: Likewise.
14953         * function.c: Likewise.
14954         * gcse.c: Likewise.
14955         * genattr.c: Likewise.
14956         * ggc-common.c: Likewise.
14957         * gimplify.c: Likewise.
14958         * graphite-blocking.c: Likewise.
14959         * graphite-clast-to-gimple.c: Likewise.
14960         * graphite-dependences.c: Likewise.
14961         * graphite-interchange.c: Likewise.
14962         * graphite-poly.c: Likewise.
14963         * graphite-scop-detection.c: Likewise.
14964         * graphite-sese-to-poly.c: Likewise.
14965         * graphite.c: Likewise.
14966         * haifa-sched.c: Likewise.
14967         * ifcvt.c: Likewise.
14968         * implicit-zee.c: Likewise.
14969         * ipa-prop.c: Likewise.
14970         * ipa-struct-reorg.c: Likewise.
14971         * ipa.c: Likewise.
14972         * ira-build.c: Likewise.
14973         * ira-color.c: Likewise.
14974         * ira-emit.c: Likewise.
14975         * lambda-code.c: Likewise.
14976         * loop-invariant.c: Likewise.
14977         * loop-unroll.c: Likewise.
14978         * lower-subreg.c: Likewise.
14979         * lto-cgraph.c: Likewise.
14980         * lto-opts.c: Likewise.
14981         * lto-streamer-in.c: Likewise.
14982         * lto-streamer-out.c: Likewise.
14983         * lto-streamer.c: Likewise.
14984         * lto-symtab.c: Likewise.
14985         * matrix-reorg.c: Likewise.
14986         * opts.c: Likewise.
14987         * predict.c: Likewise.
14988         * print-tree.c: Likewise.
14989         * sdbout.c: Likewise.
14990         * sel-sched-dump.c: Likewise.
14991         * sel-sched-ir.c: Likewise.
14992         * sel-sched.c: Likewise.
14993         * sese.c: Likewise.
14994         * stor-layout.c: Likewise.
14995         * tree-cfg.c: Likewise.
14996         * tree-cfgcleanup.c: Likewise.
14997         * tree-chrec.c: Likewise.
14998         * tree-data-ref.c: Likewise.
14999         * tree-emutls.c: Likewise.
15000         * tree-inline.c: Likewise.
15001         * tree-into-ssa.c: Likewise.
15002         * tree-loop-distribution.c: Likewise.
15003         * tree-loop-linear.c: Likewise.
15004         * tree-mudflap.c: Likewise.
15005         * tree-outof-ssa.c: Likewise.
15006         * tree-parloops.c: Likewise.
15007         * tree-predcom.c: Likewise.
15008         * tree-pretty-print.c: Likewise.
15009         * tree-scalar-evolution.c: Likewise.
15010         * tree-ssa-live.c: Likewise.
15011         * tree-ssa-loop-im.c: Likewise.
15012         * tree-ssa-loop-ivcanon.c: Likewise.
15013         * tree-ssa-loop-ivopts.c: Likewise.
15014         * tree-ssa-loop-manip.c: Likewise.
15015         * tree-ssa-loop-niter.c: Likewise.
15016         * tree-ssa-loop-prefetch.c: Likewise.
15017         * tree-ssa-phiprop.c: Likewise.
15018         * tree-ssa-pre.c: Likewise.
15019         * tree-ssa-reassoc.c: Likewise.
15020         * tree-ssa-sccvn.c: Likewise.
15021         * tree-ssa-structalias.c: Likewise.
15022         * tree-ssa.c: Likewise.
15023         * tree-vect-data-refs.c: Likewise.
15024         * tree-vect-loop-manip.c: Likewise.
15025         * tree-vect-loop.c: Likewise.
15026         * tree-vect-patterns.c: Likewise.
15027         * tree-vect-slp.c: Likewise.
15028         * tree-vect-stmts.c: Likewise.
15029         * tree-vrp.c: Likewise.
15030         * tree.c: Likewise.
15031         * value-prof.c: Likewise.
15032         * var-tracking.c: Likewise.
15033         * varasm.c: Likewise.
15034         * vmsdbgout.c: Likewise.
15035
15036 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15037             Richard Guenther  <richard.guenther@gmail.com>
15038
15039         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
15040         copy the src value and return a copy.
15041         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
15042         (C++ Volatiles): Adjust to describe C++ semantics only.
15043
15044 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
15045
15046         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
15047         be zero or nonzero.
15048         * doc/tm.texi: Regenerate.
15049         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
15050         * df-scan.c (df_get_exit_block_use_set), reginfo.c
15051         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
15052         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
15053         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
15054         to 1.
15055
15056 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15057
15058         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
15059         an extra nop past a sibling call at the very end.
15060
15061 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15062
15063         PR bootstrap/45350
15064         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
15065         a comment.
15066
15067 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15068
15069         * target.def (function_arg, function_incoming_arg): Remove const
15070         qualifier on CUMULATIVE_ARGS parameter.
15071         * targhooks.h (default_function_arg, default_function_incoming_arg):
15072         Likewise.
15073         * targhooks.c (default_function_arg, default_function_incoming_arg):
15074         Likewise.
15075         * config/i386/i386.c (ix86_function_arg): Likewise.
15076
15077 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
15078
15079         PR target/45336
15080         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
15081         SIGN_EXTENDs or ZERO_EXTENDs.
15082
15083 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15084
15085         PR target/42172
15086         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
15087         Take its cost into account if nonnull.
15088         (insn_a_feeds_b): New static function.
15089         (combine_instructions): Look for four-insn combinations.
15090         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
15091         them into account when computing all_adjacent and looking for other
15092         uses.
15093         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
15094         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
15095         (try_combine): New arg I0.  Handle four-insn combinations.
15096         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
15097         like ELIM_I1.
15098
15099 2010-08-19  Jason Merrill  <jason@redhat.com>
15100
15101         PR c++/45307
15102         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
15103         if ctor is empty.
15104         (gimplify_modify_expr_rhs): Adjust.
15105
15106 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15107
15108         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
15109         bitmap_bit_p.
15110         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
15111         * dominance.c (iterate_fix_dominators): Likewise.
15112         * dse.c (set_usage_bits): Likewise.
15113         (set_position_unneeded, record_store): Likewise.
15114         * gimple-fold.c (get_maxval_strlen): Likewise.
15115         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
15116         * ipa-inline.c (update_caller_keys): Likewise.
15117         * ipa-split.c (verify_non_ssa_vars): Likewise.
15118         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
15119         (close_type_exposed_parameter, close_type_full_escape): Likewise.
15120         (close_addressof_down): Likewise.
15121         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
15122         (setup_allocno_left_conflicts_size): Likewise.
15123         (ira_reassign_conflict_allocnos): Likewise.
15124         (ira_reassign_pseudos): Likewise.
15125         * ira-emit.c (change_loop): Likewise.
15126         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
15127         * lto-streamer-out.c (write_symbol): Likewise.
15128         * predict.c (expr_expected_value_1): Likewise.
15129         * regstat.c (regstat_bb_compute_ri): Likewise.
15130         * sel-sched.c (create_block_for_bookkeeping): Likewise.
15131         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
15132         * stmt.c (expand_case): Likewise.
15133         * tree-eh.c (emit_eh_dispatch): Likewise.
15134         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
15135         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
15136         Likewise.
15137         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
15138         (rdg_build_components): Likewise.
15139         * tree-object-size.c (collect_object_sizes_for): Likewise.
15140         * tree-sra.c (convert_callers): Likewise.
15141         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
15142         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
15143         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
15144
15145 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15146
15147         * config/i386/i386.md (*lea_1): Use P mode iterator.
15148         (lea add splitter): Also handle DImode operands.
15149         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
15150         predicate.  Do not use ix86_lea_for_add_ok.
15151         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
15152         (lea ashift splitter): Also handle DImode operands.
15153         (DImode lea ashift splitter): Remove splitter.
15154
15155 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15156
15157         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
15158         ix86_binary_operator_ok.
15159
15160 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
15161
15162         PR rtl-optimization/44691
15163         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
15164         is not a register.
15165
15166 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15167
15168         PR target/45070
15169         * config/arm/arm.c (arm_output_epilogue): Ensure that return
15170          value of size 1-3 is handled correctly.
15171
15172 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15173
15174         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
15175         type for the conditional has wide enough range.
15176
15177 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15178
15179         PR target/45327
15180         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
15181         ix86_binary_operator_ok.
15182
15183 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15184
15185         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
15186         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
15187         code to output insn mnemonic.  Fix comment.
15188         (*addsi_1_zext): Add r-r-0 alternative 1.
15189         <TYPE_LEA>: Split insn to lea.
15190         <default>: Handle alternative 1.
15191         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
15192         multi-level if_then_else RTX to set "type" attribute.
15193         <default>: Handle alternative 2.
15194         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
15195         Use cond RTX instead of multi-level if_then_else RTX to set
15196         "type" attribute.
15197         <default>: Handle alternatives 2 and 4.
15198         (lea splitters): Update calls to ix86_lea_for_add_ok.
15199
15200         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
15201         argument.
15202         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
15203
15204 2010-08-18  Richard Guenther  <rguenther@suse.de>
15205
15206         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
15207         use operand helpers.
15208
15209 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
15210
15211         PR middle-end/45292
15212         * optabs.c (expand_bool_compare_and_swap): Expand pending
15213         pops before trying the optab.
15214
15215 2010-08-18  Yao Qi  <yao@codesourcery.com>
15216
15217         PR target/45094
15218         * config/arm/arm.c (output_move_double): Fix typo generating
15219         instructions ('ldr'->'str').
15220
15221 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
15222
15223         PR rtl-optimization/42575
15224         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
15225         live ranges.
15226
15227 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15228
15229         * config/arm/arm-protos.h (arm_expand_sync): New.
15230         (arm_output_memory_barrier, arm_output_sync_insn): New.
15231         (arm_sync_loop_insns): New.
15232         * config/arm/arm.c (FL_ARCH7): New.
15233         (FL_FOR_ARCH7): Include FL_ARCH7.
15234         (arm_arch7): New.
15235         (arm_print_operand): Support %C markup.
15236         (arm_legitimize_sync_memory): New.
15237         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
15238         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
15239         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
15240         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
15241         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
15242         (arm_process_output_sync_insn, arm_output_sync_insn): New.
15243         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
15244         * config/arm/arm.h (struct arm_sync_generator): New.
15245         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
15246         (TARGET_HAVE_MEMORY_BARRIER): New.
15247         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
15248         * config/arm/arm.md: Include sync.md.
15249         (UNSPEC_MEMORY_BARRIER): New.
15250         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
15251         (VUNSPEC_SYNC_OP):New.
15252         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
15253         (sync_result, sync_memory, sync_required_value): New attributes.
15254         (sync_new_value, sync_t1, sync_t2): Likewise.
15255         (sync_release_barrier, sync_op): Likewise.
15256         (length): Add logic to length attribute defintion to call
15257         arm_sync_loop_insns when appropriate.
15258         * config/arm/sync.md: New file.
15259
15260 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15261
15262         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
15263         ENABLE_TREE_CHECKING.
15264         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
15265         and GCC >= 4.3.
15266
15267 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
15268
15269         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
15270         or optimizing for size, always avoid lea if possible.
15271
15272         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
15273
15274 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
15275
15276         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
15277         Dunmmy function with NULL return unless the target is
15278         OSX >= 10.6 (Darwin10).
15279
15280 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
15281
15282         * gcc.c (spec_function): Add remove-outfile.
15283         (remove_outfile_spec_function): New function.
15284         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
15285         * invoke.texi (replace-outfile): Document.
15286
15287 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
15288
15289         PR target/45296
15290         * reginfo.c (globalize_reg): Reject stack registers.
15291
15292 2010-08-17  Richard Guenther  <rguenther@suse.de>
15293
15294         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15295         list of conditional equivalences.
15296         (free_all_edge_infos): Adjust.
15297         (record_equivalences_from_incoming_edge): Likewise.
15298         (record_cond): Likewise.
15299         (build_and_record_new_cond): Likewise.
15300         (record_conditions): Likewise.
15301         (dom_opt_leave_block): Likewise.
15302
15303 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15304
15305         * doc/invoke.texi (ms-extension): Add documentation.
15306
15307 2010-08-17  Richard Guenther  <rguenther@suse.de>
15308
15309         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15310
15311 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15312
15313         PR c/40563
15314         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15315         (finish_decl): Use it to issue a -Wc++-compat warning about
15316         uninitialized const field in struct or union.
15317
15318         (finish_struct): Use strip_array_types.
15319
15320 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15321
15322         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15323         functions.
15324         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15325         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15326         call block_nreverse here.
15327         (blocks_nreverse): Rename decl temporary to block.
15328
15329 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15330
15331         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15332         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15333         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15334         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15335         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15336         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15337         thumb2_iorsi3): Delete.
15338         (orsi_notsi_si): No longer a named pattern.
15339         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15340         * config/arm/predicates.md (shift_amount_operand): New.
15341         (mult_operator): New.
15342         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15343         attr enabled): New.
15344         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15345         arch matches t2.
15346         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15347         (not_shiftsi_compare0): Likewise, renamed from
15348         arm_notsi_shiftsi_compare0.
15349         (not_shiftsi_compare0_scratch): Likweise, renamed from
15350         arm_notsi_shiftsi_compare0_scratch.
15351         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15352         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15353         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15354         so that the register alternative is disabled when the shift_operator
15355         is MULT.  Use "M" as the constraint for constants.
15356         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15357         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15358         constraint for constants.
15359         (arith_shiftsi_compare0_scratch): Likewise.
15360         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15361         Handle Thumb2 alternative.
15362
15363 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15364
15365         * doc/options.texi (NoDriverArg): Document.
15366         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15367         -MDX and -MMDX.
15368         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15369         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15370         marking for CL_NO_DRIVER_ARG options when in the driver.
15371         * opts.h (CL_NO_DRIVER_ARG): Define.
15372         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15373         CL_COMMON): Update values.
15374
15375 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15376
15377         * common.opt: Add driver options.
15378         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15379         * doc/options.texi (Driver, RejectDriver): Document.
15380         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15381         print_prog_name, print_multi_directory, print_sysroot,
15382         print_multi_os_directory, print_multi_lib,
15383         print_sysroot_headers_suffix, report_times, combine_flag,
15384         use_pipes, wrapper_string): Remove.
15385         (save_switch, driver_unknown_option_callback,
15386         driver_wrong_lang_callback, driver_post_handling_callback,
15387         driver_handle_option): New.
15388         (spec_lang, last_language_n_infiles): Make file-scope static
15389         instead of local to process_command.
15390         (process_command): Use decode_cmdline_options_to_array and
15391         read_cmdline_option for option processing.  Compute have_c in
15392         prescan of decoded options.
15393         * opt-functions.awk (switch_flags): Handle Driver and
15394         RejectDriver.
15395         (var_type, var_type_struct): Handle Separate options as generating
15396         const char * variables.
15397         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15398         CL_TARGET to be passed by caller if required.
15399         (decode_cmdline_options_to_array): Update comment.
15400         * opts.c (complain_wrong_lang): Handle options only valid for the
15401         driver.
15402         (decode_options): Update call to decode_cmdline_options_to_array.
15403         (print_filtered_help): Ignore driver-only options.
15404         (print_specific_help): Ignore CL_DRIVER.
15405         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15406         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15407         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15408         Update values.
15409
15410 2010-08-16  Richard Guenther  <rguenther@suse.de>
15411
15412         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15413         TARGET_MEM_REF a bit.
15414         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15415         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15416         alias pointer type via it.
15417         (copy_mem_ref_info): Adjust.
15418         (maybe_fold_tmr): Likewise.
15419         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15420         (reference_alias_ptr_type): Likewise.
15421         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15422         adjust documentation of TMR_OFFSET operand.
15423         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15424         use the alias pointer type.
15425         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15426         initialize mem attrs but the TMR itself.
15427         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15428         similar to MEM_REF.
15429         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15430         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15431         (unshare_and_remove_ssa_names): Likewise.
15432         (copy_ref_info): Adjust.
15433         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15434         TARGET_MEM_REF case.
15435         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15436         at TMR_ORIGINAL.
15437         * tree.h (TMR_ORIGINAL): Remove.
15438         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15439         symbol return that.
15440         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15441         with a symbol.
15442         (get_addr_base_and_unit_offset): Likewise.
15443         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15444         TARGET_MEM_REFs.
15445         (indirect_ref_may_alias_decl_p): Likewise.
15446         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15447
15448 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15449
15450         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15451         with GCC version 4.6, the default setting (when not optimizing
15452         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15453         been changed to -fomit-frame-pointer.
15454
15455 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15456
15457         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15458         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15459
15460 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15461
15462         * doc/invoke.texi (Warning Options): Fix terminology and markup
15463         in the description of how unknown warning options are handled.
15464
15465 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15466
15467         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15468         in basic blocks.
15469         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15470         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15471         data references.
15472         (vect_bb_vectorization_profitable_p): New function.
15473         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15474         check if it's worthwhile to vectorize the basic block.
15475
15476 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15477
15478         * reload.h (register_move_cost, memory_move_secondary_cost,
15479         secondary_reload_class): Adjust prototype.
15480         * rtl.h (reg_class_subset_p): Adjust prototype.
15481         * reload.c (secondary_reload_class): Change arguments type from
15482         enum reg_class to reg_class_t. Change result type to reg_class_t.
15483         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15484         arguments type from enum reg_class to reg_class_t.
15485         (memory_move_secondary_cost): Change arguments type from
15486         enum reg_class to reg_class_t. Change type of saved_flags to
15487         reg_class_t.
15488
15489         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15490         Remove macros.
15491         (mips_cost): Remove.
15492         (struct mips_rtx_cost_data): Moved to mips.c.
15493         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15494         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15495         (mips_cost): Make static.
15496         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15497         Change result type to reg_class_t.
15498         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15499         type from enum reg_class to reg_class_t.
15500         (mips_register_move_cost): Make static. Change arguments
15501         type from enum reg_class to reg_class_t.
15502         (mips_memory_move_cost): New function.
15503         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15504
15505 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15506
15507         PR rtl-optimization/43358
15508         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15509         of a single hard register, using simplify_subreg_regno to decide
15510         what that register should be.
15511
15512 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15513
15514         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15515         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15516         (loongson_pmull<V_suffix>): Rename to...
15517         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15518
15519 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15520
15521         * configure.ac: Enable -fomit-frame-pointer on darwin
15522         which support dwarf2.
15523         * config/i386/i386.c (override_options): Same.
15524
15525 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15526
15527         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15528
15529 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15530
15531         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15532         -MMD.
15533
15534 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15535
15536         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15537         up dot_prod pattern searching if a stmt is outside the loop.
15538
15539 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15540             Uros Bizjak  <ubizjak@gmail.com>
15541
15542         * config.gcc: Handle --enable-frame-pointer.
15543
15544         * configure.ac: Add --enable-frame-pointer.
15545         * configure: Regenerated.
15546
15547         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15548         (override_options): If not configured with --enable-frame-pointer,
15549         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15550         optimizing for size), -fasynchronous-unwind-tables and
15551         -maccumulate-outgoing-args by default.
15552
15553 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15554
15555         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15556
15557         PR middle-end/45262
15558         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15559         -a overflows.  Normalize the range.
15560
15561 2010-08-12  Richard Guenther  <rguenther@suse.de>
15562
15563         PR tree-optimization/45232
15564         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15565         for types with undefined overflow.
15566         (reassociate_bb): Allow re-associating of bit and min/max
15567         operations for types with undefined overflow.
15568         * tree-ssa-forwprop.c (associate_plusminus): New function.
15569         (tree_ssa_forward_propagate_single_use_vars): Call it.
15570
15571 2010-08-12  Richard Guenther  <rguenther@suse.de>
15572
15573         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15574         * tree-ssa-alias.c (get_ptr_info): Move ...
15575         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15576         align and misalign fields conservatively.
15577         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15578         derive alignment information.
15579         (evaluate_stmt): Derive alignment information from memory
15580         allocation functions.
15581         * tree.h (get_pointer_alignment): Make unsigned.
15582         * builtins.c (get_object_alignment): Use alignment information we
15583         have computed for pointers.
15584         (get_pointer_alignment): Likewise.  Make conservative, return
15585         and unsigned value.
15586         (expand_builtin_strlen): Adjust.
15587         (expand_builtin_memcmp): Likewise.
15588         (expand_builtin_strcmp): Likewise.
15589         (expand_builtin_strncmp): Likewise.
15590         (get_builtin_sync_mem): Use at least mode alignment.
15591         (fold_builtin_memset): Adjust.
15592         (fold_builtin_memory_op): Likewise.
15593         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15594         information also dump pointer alignment knowledge.
15595         (dump_gimple_stmt): Likewise.
15596
15597 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15598
15599         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15600         (EMPTY_FIELD_BOUNDARY): Remove.
15601         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15602
15603 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15604
15605         PR debug/45259
15606         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15607         DEBUG_INSNs if n_regs_saved.
15608
15609 2010-08-12  Wei Guozhi  <carrot@google.com>
15610
15611         PR target/44999
15612         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15613         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15614
15615 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15616
15617         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15618
15619         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15620
15621 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15622
15623         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15624         the case removed in the previous patch, when the only phi argument
15625         is defined in the same loop as the phi node itself.  Handle it
15626         separately from the invariant case by both propagating it outside
15627         the region and replacing the phi node with an assign.
15628
15629 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15630
15631         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15632         constant phi nodes with one argument are is_gimple_min_invariant
15633         and SSA_NAME_IS_DEFAULT_DEF.
15634
15635 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15636
15637         * graphite-cloog-util.c (oppose_constraint):
15638         Extend loop counter's value range (CLOOG_ORG).
15639         (cloog_matrix_to_ppl_constraint): Same.
15640         (new_Constraint_System_from_Cloog_matrix): Same.
15641         * graphite-cloog-compat.h (matrix_num_type): New.
15642
15643 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15644
15645         * graphite.c (graphite_initialize): Do not initialize
15646         CLooG and initialize the Parma Polyhedra Library
15647         manually when using CLOOG_ORG.
15648         (graphite_finalize): Do not finalize CLooG and finalize
15649         the Parma Polyhedra Library manually when using CLOOG_ORG.
15650         * graphite-cloog-compat.h (cloog_initialize): Hide function
15651         when using CLOOG_ORG.
15652         (cloog_finalize): Same.
15653
15654 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15655
15656         * graphite-clast-to-gimple.c (free_scattering): Change
15657         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15658         (CLOOG_ORG).
15659         (build_cloog_prog): Same.
15660         * graphite-cloog-compat.h (cloog_domain): Removed.
15661         (cloog_scattering): New.
15662         (cloog_set_domain): Removed.
15663         (cloog_set_scattering): New.
15664         (cloog_next_domain): Removed.
15665         (cloog_next_scattering): New.
15666         (cloog_set_next_domain): Removed.
15667         (cloog_set_next_scattering): New.
15668         (CloogScatteringList): New.
15669         (CloogScattering): New.
15670         (cloog_scattering_free): New.
15671         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15672         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15673         New.
15674
15675 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15676
15677         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15678         CloogState.
15679         (set_cloog_options): Same.
15680         (print_clast_stmt): Same.
15681         (scop_to_clast): Same.
15682         (print_generated_program): Same.
15683         (gloog): Same.
15684         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15685         (scop_to_clast): Extend with CloogState.
15686         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15687         (new_Cloog_Domain_from_ppl_Polyhedron):
15688         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15689         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15690         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15691         * graphite-cloog-util.h (build_cloog_prog): Same.
15692         * graphite-cloog-copat.h (build_cloog_prog): New.
15693         (CloogState): New.
15694         (cloog_state_malloc): New.
15695         (cloog_state_free): New.
15696         (cloog_loop_malloc): New.
15697         (cloog_options_malloc): New.
15698         (cloog_statement_alloc): New.
15699         (cloog_domain_from_cloog_matrix): New.
15700         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15701         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15702
15703 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15704
15705         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15706         type of NAME now depends on used CLooG version.
15707         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15708         (gcc_type_for_clast_expr): Same.
15709         (print_clast_stmt): Replace pprint with clast_pprint.
15710         * graphite-cloog-compat.h: Provide compatibility macros for
15711         CLooG Legacy.
15712         (clast_name_p): New.
15713         (clast_expr_term): New.
15714         (clast_expr_red): New.
15715         (clast_expr_bin): New.
15716         (clast_pprint): New.
15717
15718 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15719
15720         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15721         compatible to newer CLooG releases (CLOOG_ORG).
15722         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15723         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15724         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15725         (build_cloog_prog) : New.
15726         (cloog_program_extract_scalars): New.
15727         (cloog_program_scatter): New.
15728
15729 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15730
15731         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15732         conditionally (CLOOG_ORG).
15733         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15734         (cloog_statement_usr): New.
15735         (cloog_domain): Same.
15736         (cloog_set_domain): Same.
15737         (cloog_next_domain): Same.
15738         (cloog_set_next_domain): Same.
15739         (cloog_program_nb_scattdims): Same.
15740         (cloog_program_set_nb_scattdims): Same.
15741         (cloog_program_names): Same.
15742         (cloog_program_set_names): Same.
15743         (cloog_program_set_context): Same.
15744         (cloog_program_set_loop): Same.
15745         (cloog_program_blocklist): Same.
15746         (cloog_program_set_blocklist): Same.
15747         (cloog_program_scaldims): Same.
15748         (cloog_program_set_scaldims): Same.
15749         (cloog_names_nb_parameters): Same.
15750         (cloog_names_set_nb_parameters): Same.
15751         (cloog_names_parameters): Same.
15752         (cloog_names_set_parameters): Same.
15753         (cloog_names_set_nb_iterators): Same.
15754         (cloog_names_set_iterators): Same.
15755         (cloog_names_set_nb_scattering): Same.
15756         (cloog_names_set_scattering): Same.
15757         (cloog_statement_set_usr): Same.
15758         (cloog_loop_set_next): Same.
15759         (cloog_loop_set_domain): Same.
15760         (cloog_loop_set_block): Same.
15761         (cloog_block_list_next): Same.
15762         (cloog_block_list_set_next):
15763         (cloog_block_list_set_block): Same.
15764
15765 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15766
15767         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15768         a bool.
15769         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15770         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15771         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15772         when something has been changed.
15773         (rewrite_commutative_reductions_out_of_ssa): Same.
15774
15775 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15776
15777         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15778         handle the case when def is in the sese region.
15779         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15780         for invariant expressions.
15781         (rewrite_cross_bb_phi_deps): Removed.
15782         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15783         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15784         rewrite_cross_bb_phi_deps.
15785
15786 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15787
15788         * graphite-sese-to-poly.c
15789         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15790         scev_analyzable_p only on is_gimple_reg
15791
15792 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15793
15794         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15795         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15796         parametric expressions outside the scop region.
15797         (rewrite_cross_bb_scalar_deps): Same.
15798         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15799
15800 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15801
15802         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15803         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15804
15805 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15806
15807         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15808         instantiate default definitions.
15809
15810 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15811             Sebastian Pop  <sebastian.pop@amd.com>
15812
15813         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15814         (loop_exits_from_bb_p): New.
15815         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15816         (loop_exits_from_bb_p): Declared.
15817         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15818         loop_exits_to_bb_p.
15819
15820 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15821
15822         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15823         extra parameter for the region.  Call scev_analyzable_p.
15824         (rewrite_reductions_out_of_ssa): Update call to
15825         rewrite_close_phi_out_of_ssa.
15826         (rewrite_cross_bb_phi_deps): Same.
15827         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15828         parameter for the region.  Call scev_analyzable_p.
15829         (rewrite_commutative_reductions_out_of_ssa): Update call to
15830         rewrite_commutative_reductions_out_of_ssa_loop.
15831
15832 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15833
15834         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15835
15836 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15837
15838         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15839         SSA scalar phi nodes that can be scev_analyzable_p.
15840
15841 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15842
15843         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15844         handle SSA_NAME_IS_DEFAULT_DEF.
15845
15846 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15847
15848         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15849
15850 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15851
15852         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15853         case non close-phi nodes with one argument.
15854
15855 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15856
15857         * sese.h (scev_analyzable_p): Scevs could be expressions without
15858         chrecs and still be scev_analyzable_p.
15859
15860 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15861
15862         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15863
15864 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15865
15866         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15867         * cfgloop.h (struct loop): Remove single_iv field.
15868         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15869         (scop_canonicalize_loops): Removed.
15870         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15871         over all the loop phi nodes in loop->header.
15872         (build_poly_scop): Remove use of scop_canonicalize_loops.
15873
15874 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15875
15876         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15877         handle GIMPLE_CALL.
15878
15879 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15880
15881         * tree-chrec.c (chrec_apply): Should only apply to the specified
15882         variable.  Also handle multivariate chains of recurrences that
15883         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15884
15885 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15886
15887         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15888         (debug_clast_name_indexes_1): Removed.
15889         (debug_clast_name_indexes): Removed.
15890         (pbb_to_depth_to_oldiv): Removed.
15891         (build_iv_mapping): Replace the use of rename_map with iv_map.
15892         (translate_clast_user): Remove uses of rename_map.  Allocate and
15893         free iv_map.
15894         (translate_clast_for_loop): Remove uses of rename_map.
15895         (translate_clast_for): Same.
15896         (translate_clast_guard): Same.
15897         (translate_clast): Same.
15898         (gloog): Same.
15899         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15900         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15901         * sese.c (set_rename): Now static.
15902         (rename_variables_in_stmt): Removed.
15903         (rename_uses): New.
15904         (is_parameter): Removed.
15905         (is_iv): Removed.
15906         (expand_scalar_variables_call): Removed.
15907         (expand_scalar_variables_ssa_name): Removed.
15908         (expand_scalar_variables_expr): Removed.
15909         (expand_scalar_variables_stmt): Removed.
15910         (expand_scalar_variables): Removed.
15911         (rename_variables): Removed.
15912         (remove_condition): Removed.
15913         (get_true_edge_from_guard_bb): Removed.
15914         (get_false_edge_from_guard_bb): Removed.
15915         (struct igp): Removed.
15916         (default_before_guard): Removed.
15917         (convert_for_phi_arg): Removed.
15918         (add_guard_exit_phis): Removed.
15919         (insert_guard_phis): Removed.
15920         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15921         region.  Do not copy conditions.  Do not copy induction variables.
15922         Call rename_uses.
15923         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15924         the translated statement.  Use the iv_map for the induction
15925         variable renaming.
15926         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15927         (set_rename): Removed declaration.
15928         (scev_analyzable_p): ...here.
15929         * tree-chrec.c (chrec_apply_map): New.
15930         * tree-chrec.h (chrec_apply_map): Declared.
15931
15932 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15933
15934         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15935         insert_loop_close_phis.
15936         * sese.c (name_defined_in_loop_p): Removed.
15937         (expr_defined_in_loop_p): Removed.
15938         (alive_after_loop): Removed.
15939         (close_phi_not_yet_inserted_p): Removed.
15940         (struct alep): Removed.
15941         (add_loop_exit_phis): Removed.
15942         (insert_loop_close_phis): Removed.
15943
15944 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15945
15946         * graphite-cloog-util.c
15947         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15948         * graphite-poly.c
15949         (psct_scattering_dim_for_loop_depth): Same.
15950
15951 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15952
15953         * graphite-cloog-util.h: Added cloog.h.
15954         * graphite-blocking.c: Removed cloog.h.
15955         * graphite-dependences.c: Same.
15956         * graphite-interchange.c: Same.
15957         * graphite-poly.c: Same.
15958         * graphite-ppl.c: Same.
15959         * graphite-scop-detection.c: Same.
15960         * graphite-sese-to-poly.c:
15961         Removed cloog.h.
15962         Removed graphite-clast-to-gimple.h.
15963         (check_poly_representation): Removed (unused).
15964         * graphite-sese-to-poly.h
15965         (check_poly_representation): Removed (unused).
15966
15967 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15968
15969         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15970         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15971         (graphite-cloog-util.o): New.
15972         (graphite-ppl.o): Added graphite-cloog-util.h.
15973         * graphite-clast-to-gimple.c:
15974         Added graphite-cloog-util.h to include statements.
15975         * graphite-cloog-util.c: New.
15976         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15977         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15978         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15979         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15980         (insert_constraint_into_matrix): Same.
15981         (ppl_Constrain_System_number_of_constraints): Same.
15982         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15983         (oppose_constraint): Same.
15984         (cloog_matrix_to_ppl_constraint): Same.
15985         (new_Constraint_System_from_Cloog_Matrix): Same.
15986         * graphite-cloog-util.h: New.
15987         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15988         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15989         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15990         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15991         (insert_constraint_into_matrix): Same.
15992         * graphite-ppl.c:
15993         Added graphite-cloog-util.h to include statements.
15994         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15995         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15996         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15997         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15998         (insert_constraint_into_matrix): Same.
15999         (ppl_Constrain_System_number_of_constraints): Same.
16000         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16001         (oppose_constraint): Same.
16002         (cloog_matrix_to_ppl_constraint): Same.
16003         (new_Constraint_System_from_Cloog_Matrix): Same.
16004         * graphite-ppl.h:
16005         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
16006         graphite-cloog-util.h.
16007         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16008         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16009         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16010         (insert_constraint_into_matrix): Same.
16011
16012 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16013
16014         * graphite-clast-to-gimple.c
16015         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
16016         (precision_for_interval): Same.
16017         (gcc_type_for_interval): Same.
16018         (compute_type_for_level): Same.
16019         * graphite-interchange.c
16020         (lst_interchange_profitable_p): Same.
16021         * graphite-poly.c
16022         (psct_scattering_dim_for_loop_depth): Same.
16023         * graphite-ppl.c
16024         (ppl_max_for_le_pointset): Same.
16025         (ppl_min_for_le_pointset): Same.
16026
16027 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16028
16029         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
16030         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
16031
16032 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16033
16034         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
16035         rewrite_close_phi_out_of_ssa.
16036
16037 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16038
16039         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
16040
16041 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16042
16043         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
16044         rename_map.
16045         * sese.c (debug_rename_map): Same.
16046         (get_rename): Same.
16047         (set_rename): Same.
16048         (rename_variables_in_stmt): Same.
16049         (expand_scalar_variables_call): Same.
16050         (expand_scalar_variables_ssa_name): Same.
16051         (expand_scalar_variables_expr): Same.
16052         (expand_scalar_variables_stmt): Same.
16053         (expand_scalar_variables): Same.
16054         (rename_variables): Same.
16055         (graphite_copy_stmts_from_block): Same.
16056         (copy_bb_and_scalar_dependences): Same.
16057
16058 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16059
16060         * graphite-clast-to-gimple.c (copy_renames): Removed.
16061         (translate_clast_for): Do not call copy_renames.
16062         (translate_clast_guard): Same.
16063
16064 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16065
16066         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
16067         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
16068         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
16069         before rewrite_cross_bb_scalar_deps.
16070
16071 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16072
16073         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
16074         Early return in when flag_associative_math is not set.
16075
16076 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16077
16078         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
16079         of SSA copies on edges except for loop->latch.
16080
16081 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16082
16083         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
16084         Split out of rewrite_reductions_out_of_ssa.
16085         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
16086         Declared.
16087         * graphite.c (graphite_transform_loops): Call it.
16088
16089 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16090
16091         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
16092
16093 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
16094
16095         * dbgcnt.def (graphite_scop): New counter.
16096         * graphite.c: Include dbgcnt.h.
16097         (graphite_transform_loops): Use new counter to limit transformations.
16098         * Makefile.in (graphite.o): Depend on DBGCNT_H.
16099
16100 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16101
16102         * passes.c (init_optimization_passes): Add pass_graphite.
16103         Schedule a pass_copy_prop before pass_graphite_transforms.
16104         * timevar.def (TV_GRAPHITE): Declared.
16105         * tree-pass.h (pass_graphite): Declared.
16106         * tree-ssa-loop.c (pass_graphite): New.
16107
16108 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16109
16110         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
16111         Remove calls to rename_nb_iterations and rename_sese_parameters.
16112         * graphite-clast-to-gimple.h (gloog): Update declaration.
16113         * graphite.c (graphite_transform_loops): Update call to gloog.
16114         * sese.c (rename_variables_in_expr): Removed.
16115         (rename_nb_iterations): Removed.
16116         (rename_sese_parameters): Removed.
16117         * sese.h (rename_nb_iterations): Removed.
16118         (rename_sese_parameters): Removed.
16119
16120 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16121
16122         * graphite-clast-to-gimple.c (gloog): Remove call to
16123         sese_adjust_liveout_phis.
16124         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
16125         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
16126         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
16127         rewrite_phi_out_of_ssa.
16128         * sese.c (get_vdef_before_sese): Removed.
16129         (sese_adjust_vphi): Removed.
16130         (sese_adjust_liveout_phis): Removed.
16131         * sese.h (sese_adjust_liveout_phis): Removed.
16132
16133 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16134
16135         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
16136         argument for the place after which to insert the out of SSA copy.
16137         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
16138         (rewrite_phi_out_of_ssa): Same.
16139         (rewrite_cross_bb_scalar_deps): Same.
16140         (insert_copyout): Removed.
16141         (insert_copyin): Removed.
16142         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
16143         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
16144         insert_copyin.
16145
16146 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16147
16148         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
16149         (rewrite_reductions_out_of_ssa): Same.
16150         (rewrite_commutative_reductions_out_of_ssa): Same.
16151         (build_poly_scop): Do not call these functions.
16152         * graphite-sese-to-poly.h (build_poly_scop): Declared.
16153         (rewrite_reductions_out_of_ssa): Declared.
16154         (rewrite_commutative_reductions_out_of_ssa): Declared.
16155         * graphite.c (graphite_transform_loops): Call on every scop
16156         rewrite_commutative_reductions_out_of_ssa before calling
16157         rewrite_reductions_out_of_ssa and build_scop_bbs.
16158
16159 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16160
16161         * graphite-dependences.c (dot_deps): Make system call to dotty run
16162         in background.
16163         (dot_deps_stmt): Same.
16164         * graphite-poly.c (dot_lst): Same.
16165
16166 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16167
16168         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
16169         phi_arg_in_outermost_loop.
16170         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
16171         (remove_invariant_phi): Same.
16172
16173 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
16174
16175         * target.def (output_addr_const_extra): New hook.
16176         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
16177         * doc/tm.texi: Regenerate.
16178         * targhooks.c (default_asm_output_addr_const_extra): New function.
16179         * targhooks.h (default_asm_output_addr_const_extra): Declare.
16180         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
16181         target hook.
16182
16183         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16184         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
16185         * config/i386/i386.h (output_addr_const_extra): Rename to...
16186         (i386_asm_output_addr_const_extra): ...this. Make static.
16187         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16188
16189 2010-08-11  Richard Henderson  <rth@redhat.com>
16190
16191         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
16192
16193 2010-08-11  Nick Clifton  <nickc@redhat.com>
16194
16195         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
16196         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
16197         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16198         stormy16-lib2-cmpsi.c.
16199
16200         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
16201         -O2.
16202
16203 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
16204
16205         * opts.h (struct cl_option_handler_func): Make handler take
16206         cl_decoded_option structure as parameter, not individual elements.
16207         (struct cl_option_handlers): Make callbacks take cl_decoded_option
16208         structure as parameter, not individual elements.
16209         (handle_option): Take cl_decoded_option structure as parameter,
16210         not individual elements.
16211         (handle_generated_option): Declare.
16212         * opts-common.c (handle_option): Take cl_decoded_option structure
16213         as parameter, not individual elements.  Update calls to callback
16214         and handler functions.
16215         (handle_generated_option): New.
16216         (read_cmdline_option): Update calls to callback functions and
16217         handle_option.
16218         * opts.c (common_handle_option, complain_wrong_lang,
16219         unknown_option_callback, post_handling_callback,
16220         lang_handle_option, target_handle_option): Take cl_decoded_option
16221         structure as parameter, not individual elements.
16222         (lang_handle_option, target_handle_option, common_handle_option):
16223         Assert option has at most one argument.
16224         (enable_warning_as_error): Call handle_generated_option instead of
16225         handle_option.  Do not pass -Werror argument as argument of
16226         generated option.
16227
16228 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16229
16230         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16231         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16232         (SUBWORD_BOOL_CAS): Likewise.
16233         (SUBWORD_SYNC_OP): Likewise.
16234         (SUBWORD_TEST_AND_SET): Likewise.
16235         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16236         (SUBWORD_SYNC_OP): Likewise.
16237         (OP_AND_FETCH_WORD): Likewise.
16238
16239 2010-08-10  Xinliang David Li  <davidxl@google.com>
16240
16241         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
16242         compute max/min offset in address.
16243
16244 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
16245
16246         * ira-live.c: Include sbitmap.h.
16247         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
16248         Compress live ranges even more.
16249
16250 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16251
16252         * coverage.c (ctr_labels): Delete.
16253
16254 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16255
16256         PR bootstrap/45177
16257         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
16258         test here from arm_gen_load_multiple_1.
16259         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
16260         multiple_operation_profitable_p.
16261
16262 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16263
16264         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
16265         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
16266
16267 2010-08-10  Richard Henderson  <rth@redhat.com>
16268
16269         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
16270         after saving registers.  Assert that SSE registers are only saved
16271         with a sufficiently aligned frame.
16272         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
16273         remove stack_realign_fp handling.
16274         (ix86_expand_prologue): Save int registers before stack_realign_fp,
16275         and do not mark the stack alignment as frame related.
16276         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
16277
16278         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
16279         saves when re-aligning the stack.
16280
16281 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16282
16283         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
16284         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
16285         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
16286
16287 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16288
16289         * dwarf2out.c (struct die_struct): Move die_tag to the end.
16290
16291 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16292
16293         * config/arm/iterators.md: New file.
16294         * config/arm/arm.md: Include iterators.md.
16295         (QHSI): Move to new file.
16296         (LTUGEU, cnb, optab, ior_xor): Likewise.
16297         * config/arm/iwmmxt.md (VMMX): Move to new file.
16298         (VSHFT, MMX_char): Likewise.
16299         * config/arm/neon.md (VD): Move to new file.
16300         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16301         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16302         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16303         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16304         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16305         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16306         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16307         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16308         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16309         (Is_d_reg, V_mode_nunits): Likewise.
16310         * config/arm/vec-common.md (VALL): Move to new file.
16311         (VALLW, VINT, VINTW): Likewise.
16312
16313 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16314
16315         PR middle-end/45182
16316         * combine.c (make_compound_operation): Don't try to convert
16317         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16318
16319 2010-08-10  Richard Guenther  <rguenther@suse.de>
16320
16321         * tree.h (get_object_alignment): Adjust prototype.
16322         * builtins.c (get_object_alignment): Return unsigned int,
16323         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16324         and TARGET_MEM_REF properly.
16325         (get_pointer_alignment): Adjust.
16326         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16327         (set_mem_attributes_minus_bitpos): Adjust.
16328         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16329
16330 2010-08-10  Richard Guenther  <rguenther@suse.de>
16331
16332         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16333         (copy_prop_visit_assignment): Simplify.
16334         (copy_prop_visit_stmt): Also visit assignments from
16335         constants.
16336         (copy_prop_visit_phi_node): Use operand_equal_p.
16337
16338 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16339
16340         * ipa-split.c (find_split_points): Free stack.
16341
16342 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16343
16344         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16345         * tree.c (tree_node_kind): Delete corresponding entries.
16346
16347 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16348
16349         * alias.c (may_alias_p): Remove unused ret.
16350
16351 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16352
16353         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16354         alias_sets_conflict_p.
16355         (walk_mems_1): Moved from alias.c.
16356         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16357         in alias.c.
16358         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16359         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16360         * alias.c (walk_mems_2): Moved to ddg.c.
16361         (walk_mems_1): Ditto.
16362         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16363         to ddg.c.
16364         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16365         disambiguation.
16366         *(may_alias_p): New function to check whether two memory expression
16367         may alias or not. Currently used in buidling inter-iteration memory
16368         dependence.
16369         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16370         (insn_alias_sets_conflict_p): Removed
16371         *rtl.h (may_alias_p): New function prototype.
16372
16373 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16374
16375         * tree.c (nreverse): Assert that we don't have a BLOCK.
16376
16377 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16378
16379         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16380         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16381         * config/avr/avr.c (init_cumulative_args): Likewise.
16382         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16383         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16384         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16385         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16386         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16387         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16388         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16389         * dwarf2out.c (gen_subprogram_die): Likewise.
16390         * function.c (allocate_struct_function): Likewise.
16391         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16392         (deserves_ellipsis): Delete.
16393
16394 2010-08-09  Richard Guenther  <rguenther@suse.de>
16395
16396         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16397         (valueize_val): New function.
16398         (get_last_copy_of): Remove.
16399         (set_copy_of_val): Simplify.
16400         (dump_copy_of): Likewise.
16401         (copy_prop_visit_cond_stmt): Use valueize_val.
16402         (copy_prop_visit_phi_node): Properly handle unvisited names.
16403         Drop code managing copy-of chains.
16404         (init_copy_prop): Adjust.
16405         (fini_copy_prop): Likewise.
16406         (execute_copy_prop): Remove obsolete comment.
16407
16408 2010-08-09  Richard Guenther  <rguenther@suse.de>
16409
16410         PR middle-end/44632
16411         * function.c (gimplify_parameters): Do not clear addressable
16412         bit of the original parameter.
16413
16414 2010-08-09  Richard Guenther  <rguenther@suse.de>
16415
16416         PR middle-end/45212
16417         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16418         alignment from MEM_REF offset only if we took it from the
16419         base object.
16420
16421 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16422
16423         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16424
16425 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16426
16427         * c-tree.h (build_arg_info): Declare.
16428         * c-decl.c (build_arg_info): Define.
16429         (get_parm_info): Call it.  Delete initialization code.
16430         * c-parser.c (c_parser_parms_declarator): Likewise.
16431         (c_parser_parms_list_declaractor): Likewise.
16432
16433 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16434
16435         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16436         (struct c_arg_info): Change type of tags field.
16437         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16438         (get_parm_info): Likewise.
16439         (store_parm_decls_newstyle): Likewise.
16440
16441 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16442
16443         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16444         (branch_island_list): Delete.
16445         (branch_islands): Declare.
16446         (add_compiler_branch_island): Adjust for branch_islands instead of
16447         branch_island_list.
16448         (macho_branch_islands): Likewise.
16449         (no_previous_def): Likewise.
16450         (get_prev_label): Likewise.
16451
16452 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16453
16454         PR boehm-gc/34544
16455         * gthr-posix.h (__gthread_start): Delete.
16456         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16457         pthread_create to determine if hpux pthreads are active.
16458         * gthr-posix95.h (__gthread_start): Delete.
16459         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16460
16461 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16462
16463         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16464         _WIN64 not expanded.
16465
16466 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16467             H.J. Lu  <hongjiu.lu@intel.com>
16468
16469         PR target/45213
16470         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16471         to output 32bit SFmode immediate as 8 byte sign extended value.
16472
16473 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16474
16475         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16476         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16477         (SUBWORD_BOOL_CAS): Likewise.
16478         (SUBWORD_SYNC_OP): Likewise.
16479         (SUBWORD_TEST_AND_SET): Likewise.
16480         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16481         (SUBWORD_SYNC_OP): Likewise.
16482         (OP_AND_FETCH_WORD): Likewise.
16483
16484 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16485
16486         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16487         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16488         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16489         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16490         generic part.
16491         (cortex_a9_sched_adjust_cost): New function.
16492         (xscale_sched_adjust_cost): New function.
16493         * config/arm/arm-protos.h (struct tune_params): New field
16494         sched_adjust_cost.
16495         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16496
16497 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16498
16499         PR target/44942
16500         * config/sparc/sparc.c (function_arg_advance): Always take into account
16501         the padding, if any.
16502
16503 2010-08-06  Richard Guenther  <rguenther@suse.de>
16504
16505         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16506         (dump_lattice_value): Dump it.
16507         (get_default_value): Adjust.
16508         (get_constant_value): Likewise.
16509         (set_value_varying): Likewise.
16510         (set_lattice_value): Make sure to not go up the lattice
16511         with bitwise constant values.
16512         (get_value_for_expr): Handle ADDR_EXPRs.
16513         (value_to_double_int): New function.
16514         (get_value_from_alignment): Likewise.
16515         (do_dbg_cnt): Adjust.
16516         (ccp_lattice_meet): Handle partially constant values.
16517         (bit_value_unop_1): New function.
16518         (bit_value_binop_1): Likewise.
16519         (bit_value_unop): Likewise.
16520         (bit_value_binop): Likewise.
16521         (evaluate_stmt): Track partially constant values if
16522         flag_tree_bit_ccp is set.
16523         (ccp_fold_stmt): Dump if we folded a predicate.
16524         (ccp_visit_stmt): Adjust.
16525         * common.opt (ftree-bit-ccp): New flag.
16526         * doc/invoke.texi (ftree-bit-ccp): Document.
16527         * opts.c (decode_options): Enable bit-CCP at -O1.
16528
16529 2010-08-06  Alan Modra  <amodra@gmail.com>
16530
16531         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16532         and -mrelocatable-lib description.
16533
16534 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16535
16536         From Martin Thuresson  <martint@google.com>
16537         * postreload.c (reload_cse_simplify_operands): Use
16538         SET_REGNO_RAW instead of SET_REGNO.
16539         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16540         SET_REGNO.
16541         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16542         instead of SET_REGNO.
16543         * rtl.h (SET_REGNO_RAW): New macro.
16544
16545 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16546
16547         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16548         computations.  Fix formatting issues.
16549         (num_sign_bit_copies1): Likewise.
16550         (canonicalize_condition): Likewise.
16551
16552 2010-08-05  Richard Henderson  <rth@redhat.com>
16553
16554         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16555         (floor_log2): Use clz_hwi.
16556         (exact_log2): Use ctz_hwi.
16557         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16558         * builtins.c (fold_builtin_bitop): Use them.
16559         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16560         * combine.c (get_pos_from_mask): Use ctz_hwi.
16561         * double-int.c (double_int_ctz): Likewise.
16562         * explow.c (force_reg): Likewise.
16563         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16564
16565 2010-08-05  Richard Henderson  <rth@redhat.com>
16566
16567         PR target/45189
16568         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16569         the alignment constant is properly sign-extended.
16570
16571 2010-08-05  Richard Guenther  <rguenther@suse.de>
16572
16573         * expr.c (store_expr): Use emit_block_move only if both
16574         source and target are MEMs.  Use store_bit_field if only
16575         the target is a MEM.
16576
16577 2010-08-05  Richard Henderson  <rth@redhat.com>
16578
16579         PR debug/45188
16580         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16581         (INCOMING_RETURN_ADDR_RTX): Likewise.
16582         (dwarf2out_do_frame): Remove conditional compilation.
16583         (dwarf2out_frame_init): Likewise.
16584
16585 2010-08-05  Nicolas Setton  <setton@adacore.com>
16586
16587         * gcov.c (flag_display_progress): New static variable.
16588         (main): Display progress info on standard output if requested.
16589         (options): Add -d/--display-progress.
16590         (print_usage): Print them.
16591         (process_args): Handle them.
16592         * doc/gcov.texi: Document them.
16593
16594 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16595
16596         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16597         (ipcp_insert_stage): Redirect only edges not flagged with
16598         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16599         discovered constants.
16600
16601 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16602
16603         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16604         (struct ipa_param_descriptor): New fields types and
16605         cannot_devirtualize.
16606         (ipa_param_cannot_devirtualize_p): New function.
16607         (ipa_param_types_vec_empty): Likewise.
16608         (ipa_make_edge_direct_to_target): Declare.
16609         * ipa-cp.c: Fixed first stage driver name in initial comment,
16610         described devirtualization there too.
16611         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16612         (ipcp_print_all_lattices): Print devirtualization info.
16613         (ipa_set_param_cannot_devirtualize): New function.
16614         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16615         lattice to BOTTOM.
16616         (ipcp_init_stage): Merged into...
16617         (ipcp_generate_summary): ...its caller.
16618         (ipcp_change_tops_to_bottom): Also process type lists.
16619         (ipcp_add_param_type): New function.
16620         (ipcp_copy_types): Likewise.
16621         (ipcp_propagate_types): Likewise.
16622         (ipcp_propagate_stage): Also propagate types.
16623         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16624         Also return true if propagated types require it.
16625         (ipcp_update_callgraph): Dump redirection info.
16626         (ipcp_process_devirtualization_opportunities): New function.
16627         (ipcp_const_param_count): Include known type information.
16628         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16629         on new node.  Fixed formatting.
16630         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16631         ipa_make_edge_direct_to_target and changed all callers.  Made
16632         externally visible.
16633         (ipa_node_duplication_hook): Duplicate types vector.
16634         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16635         redirect outgoing calls for which we can't get a decl from the
16636         statement.  Check that we can get a decl from the call statement.
16637         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16638         ipa_analyze_params_uses only when ipa-cp is disabled.
16639         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16640         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16641         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16642         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16643
16644 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16645
16646         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16647         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16648         be attached to this insn in correct mode.
16649
16650 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16651
16652         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16653         using REGNO of base_reg directly.
16654
16655 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16656
16657         PR tree-optimization/45144
16658         * tree-sra.c (type_consists_of_records_p): Return false
16659         if the record contains bit-field.
16660
16661 2010-08-04  Richard Henderson  <rth@redhat.com>
16662
16663         * config/i386/i386.c (struct ix86_frame): Remove padding and
16664         to_allocate members.
16665         (ix86_compute_frame_layout): Don't store them.
16666         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16667         correct condition for the position of the stack pointer.
16668         (ix86_expand_prologue): Compute remaining stack allocation based
16669         on the ultimate stack pointer offset.
16670         (ix86_expand_epilogue): Use more obvious expressions testing for
16671         the stack pointer already pointing to the saved registers.
16672
16673         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16674         duplication deconstructing the frame pointer.  Simplify
16675         deallocation of the local stack frame.
16676
16677         * reg-notes.def (CFA_EXPRESSION): New.
16678         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16679         (dwarf2out_frame_debug_cfa_expression): New.
16680         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16681
16682         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16683         * config/i386/i386.c (ix86_expand_prologue): Set it.
16684         (ix86_expand_epilogue): Clear it.
16685         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16686         context, add REG_CFA_EXPRESSION notes.
16687
16688         * config/i386/i386.h (struct machine_frame_state): Rename from
16689         machine_cfa_state.  Add members tracking SP and FP regardless
16690         of the current CFA register.
16691         (ix86_cfa_state): Remove.
16692         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16693         and sse_reg_save_offset members.
16694         (ix86_compute_frame_layout): Set them.
16695         (gen_push): Increment sp_offset too.
16696         (choose_baseaddr_len, choose_baseaddr): New.
16697         (ix86_emit_save_reg_using_mov): New.
16698         (ix86_emit_save_regs_using_mov): Use it.
16699         (ix86_emit_save_sse_regs_using_mov): Likewise.
16700         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16701         compare vs the saved red_zone_offset.
16702         (pro_epilogue_adjust_stack): Adjust sp_offset.
16703         (ix86_adjust_stack_and_probe): Likewise.
16704         (ix86_expand_prologue): Set up, use, and validate the new
16705         frame_state_info members.  Use gen_frame_mem.
16706         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16707         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16708         new frame_state_info members.
16709         (ix86_emit_leave): Likewise.
16710         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16711         out-of-range stack pointer offsets here.
16712         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16713         (ix86_expand_epilogue): Use and validate the new frame_state_info
16714         members.  Break up and simplify the logic selecting the
16715         restore_regs_via_mov code path.  Ensure that there will be no
16716         out-of-range stack pointer offsets.
16717
16718         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16719
16720         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16721         argument name to reflect the expected tree; fix indentation.
16722         (ix86_asm_output_function_label): Output the entire 32-bit
16723         ms_hook here as bytes ...
16724         (ix86_expand_prologue): ... not here as insns.  Attach the
16725         unwind info for the ms_hook to a blockage insn.
16726         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16727         (ix86_ms_bitfield_layout_p): Fix indentation.
16728         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16729
16730         * config/i386/i386.c (ix86_using_red_zone): New.
16731         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16732         ix86_expand_prologue, ix86_force_to_memory): Use it.
16733
16734         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16735         saving the int registers.
16736
16737         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16738         and DWARF2_UNWIND_INFO conditional compilation.
16739
16740 2010-08-04  Richard Henderson  <rth@redhat.com>
16741
16742         PR debug/45171
16743         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16744         an is_naming_typedef_decl.
16745
16746 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16747
16748         PR rtl-optimization/45162
16749         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16750         * dce.c (word_dce_process_block): Likewise.
16751
16752 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16753
16754         PR target/44583
16755         * config/ia64/constraints.md (Z): New.
16756         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16757         (xfreg_or_signed_fp01_operand): New.
16758         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16759         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16760         (subsf3): Ditto.
16761         (*maddsf4): Ditto.
16762         (*msubsf4): Ditto.
16763         (adddf3): Ditto.
16764         (adddf3_trunc): Ditto.
16765         (subdf3): Ditto.
16766         (*subdf3_trunc): Ditto.
16767         (*madddf4): Ditto.
16768         (*madddf4_trunc): Ditto.
16769         (*msubdf4): Ditto.
16770         (*msubdf4_trunc): Ditto.
16771         (addxf3): Replace xfreg_or_fp01_operand with
16772         xfreg_or_signed_fp01_operand and constraint G with Z.
16773         (*addxf3_truncsf): Ditto.
16774         (*addxf3_truncdf): Ditto.
16775         (subxf3): Ditto.
16776         (*subxf3_truncsf): Ditto.
16777         (*subxf3_truncdf): Ditto.
16778         (*maddxf4): Ditto.
16779         (*maddxf4_truncsf): Ditto.
16780         (*maddxf4_truncdf): Ditto.
16781         (*msubxf4): Ditto.
16782         (*msubxf4_truncsf): Ditto.
16783         (*msubxf4_truncdf): Ditto.
16784
16785 2010-08-04  Richard Guenther  <rguenther@suse.de>
16786
16787         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16788         if either alias-set is zero.
16789
16790 2010-08-04  Richard Guenther  <rguenther@suse.de>
16791
16792         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16793         * tree-ssa-ccp.c: ... here.
16794         * tree-ssa-copy.c: ... and here.
16795         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16796         value_range_t): Move ...
16797         * tree-vrp.c: ... here.
16798         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16799         (substitute_and_fold): Adjust prototype.
16800         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16801         (replace_phi_args_in): Likewise.
16802         (substitute_and_fold): Take callback to query lattice instead
16803         of pointer to lattice.  Replace SSA name defs with lattice
16804         values first.
16805         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16806         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16807         (get_value): New function.
16808         (fini_copy_prop): Adjust.
16809         * tree-vrp.c (vrp_finalize): Adjust.
16810
16811 2010-08-04  Richard Guenther  <rguenther@suse.de>
16812
16813         PR middle-end/45176
16814         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16815         points-to set for original MEM_REF.
16816
16817 2010-08-04  Richard Guenther  <rguenther@suse.de>
16818
16819         * tree-ssa-ccp.c (get_constant_value): New function.
16820         (get_rhs_assign_op_for_ccp): Remove.
16821         (valueize_op): New function.
16822         (ccp_fold): Use get_constant_value and valueize_op.
16823         (fold_const_aggregate_ref): Likewise.
16824         (ccp_fold_stmt): Likewise.
16825         (visit_assignment): Simplify.
16826
16827 2010-08-04  Richard Guenther  <rguenther@suse.de>
16828
16829         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16830         * double-int.h (double_int_ctz): Declare.
16831         * double-int.c (double_int_ctz): New function.
16832
16833 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16834
16835         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16836         Define.
16837         picochip_expand_movmemhi : Expand movmem pattern.
16838         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16839         Declare.
16840         * config/picochip/picochip.md (movmemhi) : New pattern.
16841
16842 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16843
16844         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16845
16846 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16847
16848         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16849         NEG as operand of a MULT by merging it with the other operand.
16850         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16851         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16852         MULT.
16853         * config/arm/constraints.md (M): Examine only 32 bits of a
16854         HOST_WIDE_INT.
16855         * config/arm/predicates.md (power_of_two_operand): Likewise.
16856
16857 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16858
16859         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16860         non-NOTE insns.
16861
16862 2010-08-03  Jan Hubicka  <jh@suse.cz>
16863
16864         * ipa-split.c (struct split_point): Add split_part_set_retval.
16865         (find_retval): Forward declare.
16866         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16867         (consider_split): Compute current->split_part_set_retval.
16868         (visit_bb): Do not look into return value.
16869         (split_function): Handle !split_part_set_retval
16870
16871 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16872
16873         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16874         its own access->expr intead of using build_ref_for_offset.
16875
16876 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16877
16878         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16879         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16880         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16881         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16882         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16883         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16884         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16885         DEFAULT_SWITCH_TAKES_ARG.
16886         * config/rx/rx.opt (-patch=): Remove option.
16887         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16888         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16889         * doc/invoke.texi (RX Options): Remove -patch=.
16890         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16891         (option_map): Remove --profile-blocks, --quiet and --silent.
16892
16893 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16894
16895         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16896         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16897         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16898         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16899         Update calls to ix86_expand_compare and ix86_expand_branch.
16900         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16901         ix86_expand_compare.
16902         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16903         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16904         Make static.
16905         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16906         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16907         (ix86_expand_int_movcc): Ditto.
16908         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16909         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16910         (ix86_expand_setcc): Ditto.
16911         (ix86_expand_compare): Remove prototype.
16912         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16913         ix86_compare_op0 and ix86_compare_op1.  Update calls
16914         to ix86_expand_branch to directly pass operands[1] and operands[2].
16915         (cbranchxf4): Ditto.
16916         (cbranch<MODEF:mode>4): Ditto.
16917         (cbranchcc4): Ditto.
16918         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16919         Update calls to ix86_expand_setcc to directly pass operands[2] and
16920         operands[3].
16921         (cstorexf4): Ditto.
16922         (cstore<MODEF:mode>4): Ditto.
16923         (cstorecc4): Ditto.
16924
16925 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16926
16927         PR target/45063
16928         * caller-save.c (save_call_clobbered_regs): Remove regs from
16929         hard_regs_saved when they are set.
16930
16931 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16932
16933         PR target/41089
16934         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16935         as volatile.
16936
16937 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16938
16939         * common.opt (ftree-loop-distribute-patterns): New.
16940         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16941         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16942         at -O3.
16943         * tree-data-ref.c (stores_zero_from_loop): New.
16944         * tree-data-ref.h (stores_zero_from_loop): Declared.
16945         * tree-loop-distribution.c (tree_loop_distribution): Call
16946         stores_zero_from_loop.
16947         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16948
16949 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16950
16951         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16952         into account.
16953
16954         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16955         * config/arm/arm.c (thumb1_code): New variable.
16956         (arm_override_options): Set it.
16957         (thumb1_final_prescan_insn): Keep track of condition code status.
16958         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16959         jumps that depend on them.
16960         * config/arm/arm.h (thumb1_code): Declare variable.
16961         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16962         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16963         thumb1_cc_mode.
16964         (CC_STATUS_INIT): New macro.
16965         * config/arm/constraints.md (Pd): New constraint.
16966         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16967         * config/arm/arm.md (is_thumb1): New define_attr.
16968         (conds): Set default to "clob" when generating Thumb1 code.
16969         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16970         code are set.  Use two-operand assembly syntax.
16971         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16972         pattern.
16973         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16974         codes are set.  Use two-operand assembly syntax.
16975         (zero_extendhisi splitter): Remove constraints.
16976         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16977         thumb1_movsf_insn): Set conds attribute as appropriate.
16978         (cbranchsi4_insn): Use condition code status from struct
16979         machine_function to determine whether the comparison can be eliminated.
16980         Discourage the alternative using high registers.
16981         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16982         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16983         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16984         subsi3_cbranch): Delete.
16985         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16986         one subtract and one cbranch insn.
16987
16988         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16989         thumb2_movdf_soft_insn): Delete patterns.
16990         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16991         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16992         (pool_range, neg_pool_range): Use them to define defaults.
16993         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16994         and allow for TARGET_32BIT.
16995
16996         PR target/40457
16997         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16998         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16999         load_multiple_sequence, store_multiple_sequence): Delete
17000         declarations.
17001         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
17002         declarations.
17003         * config/arm/ldmstm.md: New file.
17004         * config/arm/arm.c (arm_regs_in_sequence): New array.
17005         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
17006         CHECK_REGS.  All callers changed.
17007         If SAVED_ORDER is nonnull, copy the computed order into it.
17008         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
17009         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
17010         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
17011         If SAVED_ORDER is nonnull, copy the computed order into it.
17012         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
17013         like REGS.  Handle Thumb mode.
17014         (arm_gen_load_multiple_1): New function, broken out of
17015         arm_gen_load_multiple.
17016         (arm_gen_store_multiple_1): New function, broken out of
17017         arm_gen_store_multiple.
17018         (arm_gen_multiple_op): New function, with code from
17019         arm_gen_load_multiple and arm_gen_store_multiple moved here.
17020         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
17021         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
17022         changed.
17023         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
17024         * config/arm/predicates.md (commutative_binary_operator): New.
17025         (load_multiple_operation, store_multiple_operation): Handle more
17026         variants of these patterns with different starting offsets.  Handle
17027         Thumb-1.
17028         * config/arm/arm.md: Include "ldmstm.md".
17029         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
17030         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
17031         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
17032         peepholes): Delete.
17033         * config/arm/ldmstm.md: New file.
17034         * config/arm/arm-ldmstm.ml: New file.
17035
17036         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
17037         if statement which adds extra costs to frame-related expressions.
17038
17039 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17040
17041         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
17042
17043 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
17044
17045         PR target/45142
17046         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
17047         alternative 2.
17048         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
17049         split V4SI operands.
17050
17051 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
17052
17053         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17054         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
17055         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
17056         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17057
17058 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
17059
17060         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
17061         LOCAL_INCLUDE_DIR.
17062
17063 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17064
17065         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
17066         used in the call to optab_for_tree_code.  Fix the second
17067         is_widening_mult_p call.  Check that both unwidened operands
17068         have the same sign.
17069
17070 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
17071
17072         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
17073
17074 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
17075
17076         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17077
17078 2010-07-30  DJ Delorie  <dj@redhat.com>
17079
17080         * config/rx/predicates.md (rx_constshift_operand): New.
17081         * config/rx/rx.md (zs_cond): New.
17082         (cbranchsi4): Remove mode.
17083         (*cbranchsi4_<code>): Likewise.
17084         (*tstbranchsi4_<code>): New.
17085         (*tstbranchsi4r_<code>): New.
17086         (*tstbranchsi4m_eq): New.
17087         (*tstbranchsi4m_ne): New.
17088         (cbranchsf4): Remove mode.
17089         (*cbranchsf4_<code>): Likewise.
17090
17091 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
17092
17093         * rtlanal.c (simplify_subreg_regno): Don't treat
17094         HARD_FRAME_POINTER_REGNUM specially.
17095
17096 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
17097
17098         * common.opt (-G): Don't define option here.
17099         * config/g.opt: New.
17100         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
17101         rs6000/powerpc and score targets.
17102         * opts.c (common_handle_option): Don't handle -G here.
17103         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
17104         * config/frv/frv.c (frv_handle_option): Handle -G.
17105         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
17106         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
17107         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
17108         * config/mips/mips.c (mips_handle_option): Handle -G.
17109         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
17110         * config/score/score.c (score_handle_option): Handle -G.
17111
17112 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
17113
17114         * config/mmix/mmix.c: Include basic-block.h.
17115
17116 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
17117
17118         PR debug/45055
17119         PR rtl-optimization/45137
17120         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
17121         prototypes.
17122         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
17123         New functions.
17124         * combine.c (next_nonnote_nondebug_insn): Removed.
17125         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
17126         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
17127         * sched-deps.c (sched_analyze_insn): Likewise.
17128         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
17129         * rtlanal.c (canonicalize_condition): Likewise.
17130         * postreload.c (reload_combine_recognize_pattern): Likewise.
17131         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
17132
17133 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
17134
17135         * config/i386/i386.md (int_cond): Remove code iterator.
17136         (fp_cond): Ditto.
17137         (cbranch<mode>4): Use ordered_comparison_operator predicate
17138         for operator0.
17139         (cstore<mode>4): Ditto for operator1.
17140         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
17141         (add<mode>cc): ditto.
17142
17143 2010-07-30  Richard Guenther  <rguenther@suse.de>
17144
17145         PR middle-end/45141
17146         * expr.c (expand_expr_real_1): Check for not handled base address.
17147
17148 2010-07-30  Richard Guenther  <rguenther@suse.de>
17149
17150         * ipa-prop.c (ipa_modify_formal_parameters): Use
17151         build_distinct_type_copy.
17152
17153 2010-07-30  Anthony Green  <green@moxielogic.com>
17154
17155         * config/moxie/rtems.h: New file.
17156         * config.gcc: Add moxie-rtems support.
17157
17158 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17159
17160         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
17161         df flags as in run_fast_df_dce.
17162
17163 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17164
17165         Revert:
17166         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17167
17168         * rtl.def (NOTE): Swap operands 4 and 5.
17169         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
17170         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
17171         Adjust accordingly.
17172         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
17173
17174 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17175
17176         PR debug/45110
17177         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
17178         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
17179         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
17180         formal parameters.
17181         (gen_decl_die): Change return type to dw_die_ref, return what
17182         gen_formal_parameter_die returned.
17183
17184 2010-07-29  Martin Jambor  <mjambor@suse.cz>
17185
17186         * dbgcnt.def (eipa_sra): New counter.
17187         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
17188
17189 2010-07-29  Xinliang David Li  <davidxl@google.com>
17190
17191         PR bootstrap/45119
17192         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
17193         in revision 162652.
17194
17195 2010-07-29  Richard Guenther  <rguenther@suse.de>
17196
17197         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
17198         (TV_TREE_STORE_CCP): Likewise.
17199         (TV_TREE_REDPHI): Likewise.
17200
17201 2010-07-29  Richard Guenther  <rguenther@suse.de>
17202
17203         * double-int.h (double_int_and_not): New function.
17204         * combine.c (try_combine): Use it.
17205         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
17206
17207 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17208
17209         PR rtl-optimization/42575
17210         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
17211         Argument AU removed.  All callers changed.  Ignore artificial refs.
17212         Use return value of df_word_lr_simulate_defs to decide whether an insn
17213         is necessary.
17214         (fast_dce): Rename arg to WORD_LEVEL.
17215         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
17216         static.
17217         (pass_fast_rtl_byte_dce): Delete.
17218         * dce.h (run_word_dce): Declare.
17219         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
17220         All callers changed.  Simplify code to only deal with two-word regs.
17221         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
17222         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
17223         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
17224         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
17225         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
17226         (df_word_lr_mark_ref): Declare.
17227         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
17228         df_word_lr_simulate_uses): Declare or rename from byte variants.
17229         (df_byte_lr_simulate_artificial_refs_at_top,
17230         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17231         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
17232         declarations.
17233         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
17234         (enum df_mm): Delete.
17235         * df-byte-scan.c: Delete file.
17236         * df-problems.c (df_word_lr_problem_data): Renamed from
17237         df_byte_lr_problem_data, all members deleted except for
17238         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
17239         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
17240         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17241         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
17242         df_byte_lr_confluence_0): Delete functions.
17243         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
17244         callers changed.
17245         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
17246         Don't initialize members that were deleted, don't try to discover data
17247         about registers.  Ignore hard regs.
17248         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
17249         (df_word_lr_mark_ref): New function.
17250         (df_word_lr_bb_local_compute): Renamed from
17251         df_byte_bb_lr_local_compute; all callers changed.  Use
17252         df_word_lr_mark_ref.  Assert that artificial refs don't include
17253         pseudos.  Ignore hard registers.
17254         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
17255         Assert that exit block uses don't contain pseudos.
17256         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
17257         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
17258         callers changed.  Ignore hard regs.
17259         (df_word_lr_transfer_function): Renamed from
17260         df_byte_lr_transfer_function; all callers changed.
17261         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
17262         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
17263         changed.
17264         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
17265         callers changed.
17266         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
17267         confluence operator 0 set to NULL.
17268         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
17269         callers changed.
17270         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
17271         Return bool, true if bitmap changed or insn otherwise necessary.
17272         All callers changed.  Simplify using df_word_lr_mark_ref.
17273         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
17274         all callers changed.  Simplify using df_word_lr_mark_ref.
17275         * lower-subreg.c: Include "dce.h"
17276         (decompose_multiword_subregs): Call run_word_dce if df available.
17277         * Makefile.in (lower-subreg.o): Adjust dependencies.
17278         (df-byte-scan.o): Delete.
17279         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
17280
17281 2010-07-29  Richard Guenther  <rguenther@suse.de>
17282
17283         * tree.c (build_vector): Assert that the vector constant
17284         has enough elements.
17285         (build_vector_from_ctor): Pad with trailing zeros.
17286
17287 2010-07-29  Richard Guenther  <rguenther@suse.de>
17288
17289         PR tree-optimization/45120
17290         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17291         Handle offset in DEREFs properly.
17292         (get_constraint_for_1): Handle MEM_REF offset properly.
17293
17294 2010-07-29  Richard Guenther  <rguenther@suse.de>
17295
17296         PR middle-end/45034
17297         * convert.c (convert_to_integer): Always use an unsigned
17298         type for narrowed negate and bitwise not.
17299
17300 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17301
17302         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17303         to outer loop when creating reduction epilogue for double reduction,
17304         and switch back to the inner loop when updating the phi nodes.
17305         Update uses of outer loop exit phi nodes in double reduction (instead
17306         of uses of reduction).
17307
17308 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17309
17310         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17311         popcount on power7 and parity on power6 systems.
17312         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17313         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17314         instructions.
17315
17316         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17317         (UNSPEC_PARITY): Ditto.
17318         (SFDF): New iterator for SF/DF.
17319         (rreg2): New mode attribute for floating register constraint.
17320         (TARGET_FLOAT): New mode attribute for whether single/double float
17321         is supported.
17322         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17323         pattern.
17324         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17325         machines.
17326         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17327         pattern.  Add support for fcpsgn instruction added in power6.
17328         (copysignsf3): Delete.
17329         (copysigndf3): Delete.
17330         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17331         instead of if_then_else in RTL to avoid problems with -0.
17332
17333         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17334         of if_then_else to mirror scalar code.
17335         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17336         rs6000.md.
17337
17338         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17339         instead of if_then_else.
17340
17341 2010-07-28  Xinliang David Li  <davidxl@google.com>
17342
17343         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17344         (dump_cand): Dump var_before/after.
17345         (htab_inv_expr_eq): New function.
17346         (htab_inv_expr_hash): New function.
17347         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17348         (add_candidate_1): consider base type precision.
17349         (set_use_iv_cost): New parameter.
17350         (adjust_setup_cost): Use profile information.
17351         (get_address_cost): Do not hard code width in computing address
17352         offset limits.
17353         (compare_aff_trees): New function.
17354         (get_loop_invariant_expr_id): New function.
17355         (get_computation_cost_at): New parameter and use profile information.
17356         (get_computation_cost): New parameter.
17357         (determine_use_iv_cost_generic): Pass new parameter.
17358         (determine_use_iv_cost_address): Ditto.
17359         (determine_use_iv_cost_condition): Ditto.
17360         (autoinc_possible_for_pair): Ditto.
17361         (determine_use_iv_costs): More dumps.
17362         (iv_ca_get_num_inv_exprs): New function.
17363         (iv_ca_recount_cost): Consider loop invariants in register pressure
17364         cost.
17365         (iv_ca_add_use): New parameter.
17366         (iv_ca_dump): Better dumping.
17367         (iv_ca_extend): New parameter.
17368         (try_add_cand_for): Attempt to get better partial solution.
17369         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17370         (create_new-ivs): More dumps.
17371         (rewrite_use_compare): Ditto.
17372         (free_loop_data): More cleanup.
17373         (treee_ssa_iv_optimize_finalize): Ditto.
17374
17375 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17376
17377         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17378         * config/i386/i386.c (ix86_profile_before_prologue): New.
17379         (override_options): Add special handling for -mfentry.
17380         (ix86_function_regparm): Likewise.
17381         (ix86_function_sseregparm): Likewise.
17382         (ix86_frame_pointer_required): Likewise.
17383         (ix86_expand_prologue): Check for ms_hook_prologue.
17384         (x86_function_profiler): Adjust mcount output.
17385         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17386         * config/i386/i386.opt (mfentry): New.
17387         * doc/invoke.texi (mfentry): Add documentation.
17388         * doc/tm.texi: Regenerated..
17389         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17390         * final.c (final_start_function): Replace macro
17391         PROFILE_BEFORE_PROLOGUE by target hook.
17392         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17393         * target.def (profile_before_prologue): New hook.
17394         * targhooks.c (default_profile_before_prologue): New.
17395         * targhooks.h (default_profile_before_prologue): New.
17396
17397 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17398
17399         PR debug/45105
17400         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17401
17402         PR debug/45103
17403         * dwarf2out.c (dwarf2out_var_location): Always consider
17404         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17405
17406 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17407
17408         PR rtl-optimization/45107
17409         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17410
17411 2010-07-28  Richard Guenther  <rguenther@suse.de>
17412
17413         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17414         (set_lattice_value): Do not query an old default value.
17415         (get_value_for_expr): New function.  Properly canonicalize
17416         float values.
17417         (ccp_visit_phi_node): Use it.
17418
17419 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17420
17421         * config/arm/arm.c (arm_pcs_default): Remove static.
17422         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17423         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17424         (arm_pcs_default): Declare.
17425
17426 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17427
17428         * config/rs6000/rs6000.c (rs6000_override_options):
17429         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17430         ... to darwin_rs6000_override_options.
17431         (rs6000_return_in_memory): Update preceding comment for darwin
17432         64 bit ABI.  Use TARGET_MACHO inline.
17433         (rs6000_darwin64_struct_check_p): New.
17434         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17435         (function_arg): Likewise.
17436         (rs6000_arg_partial_bytes): Likewise.
17437         (rs6000_function_value): Likewise.
17438
17439 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17440
17441         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17442
17443 2010-07-28  Richard Guenther  <rguenther@suse.de>
17444
17445         PR middle-end/44903
17446         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17447         targets try harder to not generate unaligned accesses.
17448
17449 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17450
17451         PR rtl-optimization/45101
17452         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17453         for gcse-las.
17454
17455 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17456
17457         PR tree-optimization/44885
17458         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17459         with non-aliased component.
17460
17461 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17462
17463         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17464         WORD_SWITCH_TAKES_ARG): Remove.
17465         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17466         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17467         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17468         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17469         definitions from gcc.c.
17470         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17471         defaults.h.
17472         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17473         Move to defaults.h.
17474         * opts-common.c: Include tm.h.
17475         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17476         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17477         Handle more than one argument.  Set canonical_option_num_elements.
17478         (decode_cmdline_options_to_array): Set
17479         canonical_option_num_elements and trailing elements of
17480         canonical_option.
17481         * opts.h (struct cl_decoded_option): Allow four elements in
17482         canonical_option.  Add field canonical_option_num_elements.
17483         * Makefile.in (opts-common.o): Update dependencies.
17484
17485 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17486
17487         PR middle-end/44790
17488         PR middle-end/44993
17489         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17490         sure the base has address_mode before adding the offset.
17491
17492 2010-07-27  Xinliang David Li  <davidxl@google.com>
17493
17494         * tree-flow.h (create_mem_ref): Add one new parameter.
17495         * tree-ssa-address.c (create_mem_ref): New parameter.
17496         (addr_to_parts): Ditto.
17497         (move_variant_to_index): New function.
17498         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17499
17500 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17501
17502         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17503         4 and 5.
17504         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17505         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17506         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17507         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17508         CODE_LABELs and NOTEs.
17509         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17510         * combine.c (try_combine): Likewise.
17511         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17512         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17513
17514 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17515
17516         * coretypes.h (struct cl_option_handlers): Declare.
17517         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17518         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17519         * langhooks-def.h (lhd_handle_option): Declare.
17520         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17521         * langhooks.c (lhd_handle_option): New.
17522         * langhooks.h (struct lang_hooks): Update prototype and return
17523         value type of handle_option hook.
17524         * optc-gen.awk: Generate target_flags_explicit definition for the
17525         driver.
17526         * opts-common.c: Include diagnostic.h.
17527         (handle_option): Move from opts.c.  Update prototype and return
17528         value type.  Use handlers structure.
17529         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17530         handlers structure.
17531         (set_option): Move from opts.c.
17532         * opts.c (common_handle_option): Update prototype and return value
17533         type.  Update calls to handle_option and enable_warning_as_error.
17534         (unknown_option_callback, post_handling_callback,
17535         lang_handle_option, target_handle_option): New.
17536         (handle_option, read_cmdline_option): Move to opts-common.c.
17537         (read_cmdline_options): Update prototype.  Update call to
17538         read_cmdline_option.
17539         (decode_options): Initialize and use handlers structure.
17540         (set_option): Move to opts-common.c.
17541         (enable_warning_as_error): Update prototype.  Update call to
17542         handle_option.
17543         * opts.h (struct cl_option_handler_func, struct
17544         cl_option_handlers): New.
17545         (handle_option, enable_warning_as_error): Update prototypes.
17546         (read_cmdline_option): Declare.
17547         * Makefile.in (opts-common.o): Update dependencies.
17548
17549 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17550
17551         * config/arm/arm.c (params.h): Include.
17552         (arm_override_options): Tune gcse-unrestricted-cost.
17553         * config/arm/t-arm (arm.o): Define dependencies.
17554
17555 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17556
17557         PR target/42495
17558         PR middle-end/42574
17559         * basic-block.h (get_dominated_to_depth): Declare.
17560         * dominance.c (get_dominated_to_depth): New function, use
17561         get_all_dominated_blocks as a base.
17562         (get_all_dominated_blocks): Use get_dominated_to_depth.
17563
17564         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17565         (hoist_exprs): Remove.
17566         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17567         (compute_code_hoist_vbeinout): Add debug print outs.
17568         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17569
17570         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17571         quadratic behavior.
17572         * params.h (MAX_HOIST_DEPTH): New macro.
17573         * doc/invoke.texi (max-hoist-depth): Document.
17574
17575 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17576
17577         PR rtl-optimization/40956
17578         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17579         constants.
17580
17581 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17582
17583         PR target/42495
17584         PR middle-end/42574
17585         * config/arm/arm.c (legitimize_pic_address): Use
17586         gen_calculate_pic_address pattern to emit calculation of PIC address.
17587         (will_be_in_index_register): New function.
17588         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17589         (thumb1_legitimate_address_p): Use it provided !strict_p.
17590         * config/arm/arm.md (calculate_pic_address): New expand and split.
17591
17592 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17593
17594         PR target/42495
17595         PR middle-end/42574
17596         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17597         * config/arm/arm.md (define_split "J", define_split "K"): Make
17598         IRA/reload friendly.
17599
17600 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17601
17602         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17603         unused checks.
17604         (pre_edge_insert, hoist_code): Update.
17605
17606 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17607
17608         PR target/42495
17609         PR middle-end/42574
17610         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17611
17612 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17613
17614         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17615
17616 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17617
17618         PR rtl-optimization/40956
17619         PR target/42495
17620         PR middle-end/42574
17621         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17622         for hoisting.
17623         (hoist_code): Count occurences in current block too.
17624
17625 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17626
17627         * gcse.c (struct expr:max_distance): New field.
17628         (doing_code_hoisting_p): New static variable.
17629         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17630         simple expressions, don't change behavior for PRE.  Set max_distance.
17631         (insert_expr_in_table): Set new max_distance field.
17632         (hash_scan_set): Update.
17633         (hoist_expr_reaches_here_p): Stop search after max_distance
17634         instructions.
17635         (find_occr_in_bb): New static function.  Use it in ...
17636         (hoist_code): Calculate sizes of basic block before any changes are
17637         done.  Pass max_distance to hoist_expr_reaches_here_p.
17638         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17639
17640         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17641         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17642         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17643         macros.
17644         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17645         Document.
17646
17647 2010-07-27  Jeff Law  <law@redhat.com>
17648             Maxim Kuvyrkov  <maxim@codesourcery.com>
17649
17650         * gcse.c (compute_transpout, transpout): Remove, move logic
17651         to prune_expressions.
17652         (compute_pre_data): Move pruning of trapping expressions ...
17653         (prune_expressions): ... here.  New static function.
17654         (compute_code_hoist_data): Use it.
17655         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17656
17657 2010-07-27  Xinliang David Li  <davidxl@google.com>
17658
17659         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17660         (rewrite_use_address): Adjust iv update position when needed.
17661
17662 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17663
17664         * dbgcnt.def (hoist_insn): New debug counter.
17665         * gcse.c (hoist_code): Use it.
17666
17667 2010-07-27  Xinliang David Li  <davidxl@google.com>
17668
17669         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17670         (niter_for_single_dom_exit): Passes additional parameter.
17671         (iv_period): Fix comments.
17672         (may_eliminate_iv): Handles multiple exit loops properly.
17673         (free_tree_niter_desc): New function.
17674         (free_loop_data): Frees up loop iteration descriptors.
17675
17676 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17677
17678         PR target/44542
17679         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17680         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17681         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17682         (expand_one_var): Don't consider DECL_ALIGN for variables for
17683         which expand_one_stack_var_at has been already called.
17684
17685         PR testsuite/44701
17686         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17687         constraints on IA-64.
17688
17689 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17690
17691         PR target/44290
17692         Revert:
17693         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17694
17695         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17696         false if ! tree_versionable_function_p.
17697
17698 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17699
17700         * dwarf2out.c (add_data_member_location_attribute): Use
17701         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17702
17703 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17704
17705         * postreload.c (try_replace_in_use): New static function.
17706         (reload_combine_recognize_const_pattern): Use it here.  Allow
17707         substituting into a final add insn, and substituting into a memory
17708         reference in an insn that sets the reg.
17709
17710 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17711
17712         * common.opt (o): Add MissingArgError.
17713         * doc/options.texi (MissingArgError): Document.
17714         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17715         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17716         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17717         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17718         * langhooks.h (struct lang_hooks): Remove missing_argument.
17719         * optc-gen.awk: Handle MissingArgError and output new structure
17720         field initializers.
17721         * opts.c (read_cmdline_option): Use missing_argument_error field
17722         instead of missing_argument langhook.
17723         * opts.h (struct cl_option): Add missing_argument_error field.
17724         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17725
17726 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17727
17728         PR target/29090
17729         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17730         Darwin64 ABI, for zero-sized objects.
17731
17732 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17733
17734         PR target/35491
17735         PR target/29090
17736
17737         Merge from Apple local 4.2.1.
17738         2005-05-11  Stan Shebs  <shebs@apple.com>
17739         Fix 64-bit varargs for Darwin (Radar 4028089).
17740         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17741         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17742         Add argument, add case for 8-byte register half-filled with a float.
17743         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17744         single-precision floats specially.
17745
17746 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17747
17748         PR tree-optimization/44152
17749         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17750         complex numbers for further check.
17751         (vect_supported_load_permutation_p): Check nodes with
17752         complex numbers.
17753
17754 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17755
17756         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17757         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17758         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17759         (LANG_HOOKS_INITIALIZER): Add new hooks.
17760         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17761         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17762         and complain_wrong_lang_p.  Update init_options prototype.
17763         * c-objc-common.c (c_initialize_diagnostics): First call
17764         c_common_initialize_diagnostics.
17765         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17766         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17767         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17768         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17769         (hook_uint_void_0): New.
17770         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17771         (hook_uint_void_0): New.
17772         * opts-common.c (decode_cmdline_option,
17773         decode_cmdline_options_to_array): Also fill in canonical_option field.
17774         * opts.c (complain_wrong_lang): Use langhook to determine whether
17775         to complain instead of special-casing LTO.
17776         (decode_options): Separate lang_mask determination with
17777         option_lang_mask hook from call of init_options hook.
17778         * opts.h (struct cl_decoded_option): Add canonical_option.
17779
17780 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17781
17782         PR tree-optimization/45083
17783         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17784
17785 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17786
17787         * postreload.c (reload_combine_recognize_const_pattern): Move test
17788         for limiting the insn movement to the right scope.
17789
17790         PR rtl-optimization/45051
17791         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17792         than reg_mentioned_p.
17793
17794 2010-07-26  Richard Henderson  <rth@redhat.com>
17795
17796         PR target/44132
17797         * tree-emutls.c: New file.
17798         * Makefile.in (OBJS-common): Add it.
17799         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17800         * passes.c (init_optimization_passes): Add it.
17801
17802         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17803         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17804         * expr.c (emutls_var_address): Delete.
17805         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17806         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17807         (emutls_finish): Delete.
17808         * toplev.c (compile_file): Don't call it.
17809         * tree.h (emutls_decl): Delete.
17810         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17811         (emutls_finish, emutls_finalize_control_var): Delete.
17812         (emutls_object_type): Move to tree-emutls.c.
17813         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17814         default_emutls_var_fields, get_emutls_object_type,
17815         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17816         default_emutls_var_init): Likewise.
17817         (get_variable_section): Don't special case emutls.
17818         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17819         default_elf_select_section, default_unique_section,
17820         default_encode_section_info): Likewise.
17821         * varpool.c (decide_is_variable_needed): Likewise.
17822         * gimple-iterator.c (update_call_edge_frequencies): New
17823         (gsi_insert_on_edge_immediate): Use it.
17824         (gsi_insert_seq_on_edge_immediate): Likewise.
17825         (gsi_commit_one_edge_insert): Likewise.
17826
17827         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17828         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17829         (x86_64_elf_unique_section): Likewise.
17830
17831 2010-07-26  Jan Hubicka  <jh@suse.cz>
17832
17833         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17834         GTY((skip)).
17835
17836 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17837
17838         * target.def (output_source_filename): New hook.
17839         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17840         * doc/tm.texi: Regenerate.
17841         * toplev.c (output_file_directive) Remove function.
17842         * toplev.h (output_file_directive) Remove.
17843         * output.h (default_asm_output_source_filename,
17844         output_file_directive): Declare.
17845         * varasm.h (default_asm_output_source_filename,
17846         output_file_directive): New functions.
17847
17848         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17849         * config/mips/mips-protos.h (mips_output_filename): Remove.
17850         * config/mips/mips.c (mips_output_filename): Make Static.
17851         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17852
17853 2010-07-26  Richard Guenther  <rguenther@suse.de>
17854
17855         PR tree-optimization/43784
17856         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17857         if the destination is used by the call.
17858
17859 2010-07-26  Richard Guenther  <rguenther@suse.de>
17860
17861         PR middle-end/45073
17862         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17863         SSA updating on being in SSA form.
17864
17865 2010-07-26  Richard Guenther  <rguenther@suse.de>
17866
17867         PR middle-end/45056
17868         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17869
17870 2010-07-26  Richard Guenther  <rguenther@suse.de>
17871
17872         PR tree-optimization/45071
17873         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17874         adjust op->opcode.
17875
17876 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17877
17878         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17879         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17880         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17881         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17882         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17883         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17884         save_r31, return_r31, save_interrupt, return_interrupt,
17885         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17886         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17887         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17888         new ABI requirements.
17889         (save_r6_r9, L_callt_save_r6_r9): Remove.
17890         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17891         const_float_1_operand const_float_0_operand): New Predicates.
17892         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17893         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17894         * config/v850/t-v850: Update multilibs for new target variants.
17895         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17896         * config/v850/t-v850e: Likewise.
17897         * config/v850/v850.c (v850_issue_rate): New.
17898         (v850_strict_argument_naming): New.
17899         (function_arg): Modify to generate a different ABI.
17900         (print_operand): Update case 'z' to support float modes.
17901         (output_move_single): Modify to generate appropriate and better
17902         assembly.
17903         (v850_float_z_comparison_operator, v850_select_cc_mode,
17904         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17905         v850_gen_compare): New functions to support comparison of float values.
17906         (ep_memory_offset): Add support for V850E2 targets.
17907         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17908         (INTERRUPT_REGPARM_NUM): Remove.
17909         (compute_register_save_size): Add extra case to save/restore long call.
17910         (use_prolog_function): New function to support prologue.
17911         (expand_prologue): Add support for V850E2 targets and modified
17912         as per the current ABI requirements.
17913         (expand_epilogue): Likewise.
17914         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17915         (construct_save_jarl): Likewise.
17916         (construct_dispose_instruction): Update as per the current ABI
17917         requirements.
17918         (construct_prepare_instruction): Likewise.
17919         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17920         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17921         (CPP_SPEC): Updated to support v850e2 targets.
17922         (STRICT_ALIGNMENT): Modified.
17923         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17924         (FIXED_REGISTERS): Likewise.
17925         (CALL_USED_REGISTERS): Likewise.
17926         (CONDITIONAL_REGISTER_USAGE): Updated.
17927         (HARD_REGNO_MODE_OK): Updated.
17928         (reg_class): Updated to add even registers.
17929         (REG_CLASS_NAMES): Likewise.
17930         (REG_CLASS_CONTENTS): Likewise.
17931         (REGNO_REG_CLASS): Updated for CC registers.
17932         (REG_CLASS_FROM_LETTER): Added support for even registers.
17933         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17934         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17935         ARG_POINTER_REGNUM): Updated.
17936         (FUNCTION_ARG_ADVANCE): Define.
17937         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17938         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17939         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17940         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17941         (SELECT_CC_MODE): Define.
17942         (REGISTER_NAMES): Updated to add psw and fcc registers.
17943         (ADDITIONAL_REGISTER_NAMES): Updated.
17944         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17945         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17946         * config/v850/v850.md (define_constants): Define new constants.
17947         (type): Update store,bit1,macc,div,fpu and single attributes.
17948         (cpu): New attribute.
17949         (cc): Add set_z attribute.
17950         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17951         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17952         23word_store): New instructions for 23-bit displacement load and store.
17953         (movqi_internal, movhi_internal): Update the attributes.
17954         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17955         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17956         the attributes.
17957         (v850_tst1): Modified using CC_REGNUM.
17958         (tstsi): Remove.
17959         (cmpsi): Modified as define_expand from define_insn.
17960         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17961         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17962         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17963         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17964         one_cmplsi2): Clobber the CC_REGNUM register.
17965         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17966         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17967         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17968         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17969         v850e2v3 target.
17970         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17971         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17972         targets.
17973         (sasf_1, sasf_2): Remove.
17974         (sasf): New instruction.
17975         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17976         targets. CC_REGNUM register is clobbered and attributes are
17977         updated.
17978         (branch_z_normal, branch_z_invert, branch_nz_normal,
17979         branch_nz_invert): New branch related instructions.
17980         (jump): Updated the attributes.
17981         (switch): Update to support new targets. CC_REGNUM register is
17982         clobbered and attributes are updated.
17983         (call_internal_short, call_internal_long, call_value_internal_short,
17984         call_value_internal_long): Updated the attributes.
17985         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17986         clobbered and attributes are updated.
17987         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17988         Update to support new targets. CC_REGNUM register is clobbered.
17989         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17990         instructions.
17991         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17992         are updated.
17993         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17994         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17995         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17996         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17997         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17998         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17999         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
18000         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
18001         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
18002         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
18003         point instructions defined for V850e2v3 target.
18004         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
18005         Add support for V850E2 targets and CC_REGNUM register is clobbered.
18006         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
18007         support for new targets.
18008         * config/v850/v850-modes.def: New file.
18009         * config/v850/v850.opt(mstrict-align): Remove.
18010         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
18011         mv850e2v3): New command line options for V850.
18012         * config.gcc: Update the newly added files.
18013         * doc/invoke.texi: Update the newly added command line options for
18014         V850 target.
18015
18016 2010-07-26  Richard Guenther  <rguenther@suse.de>
18017
18018         PR tree-optimization/45052
18019         * ipa-pure-const.c (check_stmt): Check volatileness.
18020
18021 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18022
18023         PR target/44707
18024         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
18025         * config/sparc/sparc.c: Include reload.h.
18026         (legitimize_tls_address): Rename into...
18027         (sparc_legitimize_tls_address): ...this.
18028         (legitimize_pic_address): Rename into...
18029         (sparc_legitimize_pic_address): ...this.
18030         (sparc_expand_move): Adjust to above renaming.
18031         (sparc_tls_referenced_p): Likewise.
18032         (sparc_legitimize_tls_address): Likewise.
18033         (sparc_legitimize_pic_address): Likewise.
18034         (sparc_legitimize_address): Likewise.
18035         (sparc_output_mi_thunk): Likewise.
18036         (sparc_legitimize_reload_address): New global function.  Recognize
18037         (lo_sum (high ...) ...) patterns generated by earlier passes.
18038         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
18039
18040 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18041
18042         PR target/44484
18043         * config/sparc/predicates.md (memory_reg_operand): Delete.
18044         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
18045         (*sync_compare_and_swap): Encode the address form in the pattern.
18046         (*sync_compare_and_swapdi_v8plus): Likewise.
18047
18048 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
18049
18050         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
18051         Streamline paragraph on compatibility with the system compiler.
18052
18053 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
18054
18055         PR middle-end/45035
18056         * alias.c (true_dependence_1): Fix thinko in merge of old
18057         true_dependence and canon_true_dependence.
18058
18059 2010-07-23  Jan Hubicka  <jh@suse.cz>
18060
18061         * lto-streamer-out.c (write_symbol): Fix visibilities of external
18062         references.
18063
18064 2010-07-23  Le-Chun Wu  <lcwu@google.com>
18065
18066         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
18067         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
18068         and an unnecessary assignment.
18069         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
18070         self-assign warning.
18071         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
18072         unnecessary self-init.
18073
18074 2010-07-23  Richard Guenther  <rguenther@suse.de>
18075
18076         PR lto/43071
18077         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
18078         for -flto and -fwhopr.
18079
18080 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
18081
18082         PR target/41943
18083         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
18084         (stmp-int-hdrs): Prefix/postfix headers by include_next.
18085         * config.gcc (user_headers_inc_next_pre): New.
18086         (user_headers_inc_next_post): Likewise.
18087         (*-w64-mingw*): Use for float.h post-fixing, and for
18088         stddef.h/stdarg.h pre-fixing by include_next.
18089         * configure.ac (user_headers_inc_next_post): New.
18090         (user_headers_inc_next_pre): New.
18091         * configure: Regenerated.
18092
18093 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18094
18095         * configure.ac: Don't disable TLS on Solaris 8/9 by default
18096         Set tga_func for Solaris 2/x86 resp. SPARC.
18097         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
18098         (LIB_THREAD_LDFLAGS_SPEC): Define.
18099         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
18100         * configure: Regenerate.
18101         * config.in: Regenerate.
18102         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
18103         -pthread, -threads, LIB_TLS_SPEC with -pthread.
18104         * doc/install.texi (Specific, *-*-solaris2*): Document use of
18105         alternate thread libraries on Solaris 8.
18106         Document TLS patch requirements.
18107         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
18108         Document tls.
18109
18110         PR target/18788
18111         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
18112         -shared.
18113
18114 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
18115
18116         * tree.h (struct tree_base): Add nameless_flag bitfield.
18117         (TYPE_NAMELESS, DECL_NAMELESS): Define.
18118         * omp-low.c (create_omp_child_function, scan_omp_parallel,
18119         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
18120         DECL_ARTIFICIAL where needed.
18121         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
18122         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
18123         has DECL_NAMELESS set.
18124
18125 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18126
18127         PR tree-optimization/44915
18128         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
18129         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
18130         (analyze_function): Likewise.
18131
18132 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18133
18134         PR tree-optimization/44914
18135         * tree-sra.c (sra_modify_function_body): Return true if CFG was
18136         changed, add purging dead eh edges.
18137         (ipa_sra_modify_function_body): Return true if CFG was changed,
18138         simplify purging dead eh edges.
18139         (modify_function): Return true if CFG was changed.
18140         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
18141         was changed.
18142         (ipa_early_sra): Likewise.
18143
18144 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18145
18146         PR target/44290
18147         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
18148         if "naked".
18149         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18150         false if ! tree_versionable_function_p.
18151
18152 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
18153
18154         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
18155         * ipa-pure-const.c (special_builtlin_state): Remove
18156         BUILT_IN_ARGS_INFO case.
18157         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
18158         * builtins.c (expand_builtin): Likewise.
18159         (expand_builtin_args_info): Remove.
18160         * doc/tm.texi (__builtin_args_info): Remove.
18161         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
18162         * doc/tm.text.in: Likewise.
18163
18164 2010-07-23  Richard Guenther  <rguenther@suse.de>
18165
18166         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
18167         (lto_symtab_merge_decls_2): Likewise.
18168         * tree-ssa.c (useless_type_conversion_p): Likewise.
18169         * lto-streamer-in.c (input_gimple_stmt): Likewise.
18170         * gimple.c (gtc_visited2, gtc_ob2): Remove.
18171         (struct type_pair_d): Make same_p an array indexed by mode.
18172         Update comment.
18173         (lookup_type_pair): Update initialization.
18174         (struct sccs): Adjust same_p type.
18175         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
18176         Adjust.
18177         (print_gimple_types_stats): Likewise.
18178         * gimple.h (enum gtc_mode): New.
18179         (gimple_types_compatible_p): Adjust prototype.
18180
18181 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
18182
18183         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
18184         again after processing insn.
18185
18186 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18187
18188         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
18189         proper words when !tree_versionable_function_p.
18190
18191 2010-07-23  Richard Guenther  <rguenther@suse.de>
18192
18193         PR tree-optimization/45037
18194         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
18195
18196 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18197
18198         * doc/extend.texi: Remove IP2K from the description of naked attribute.
18199         Add MCORE instead.
18200
18201 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18202
18203         PR lto/44992
18204         * lto-opts.c (lto_write_options): Add NULL file_data argument to
18205         lto_get_section_name.
18206         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
18207         * lto-streamer-out.c (produce_asm): Likewise.
18208         (copy_function): Likewise.
18209         (produce_symtab): Likewise.
18210         (produce_asm_for_decls): Likewise.
18211         * lto-streamer.c (lto_get_section_name): Add file_data argument.
18212         Rewrite to add random postfix to LTO sections.
18213         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
18214         (lto_get_section_name): Add file_data argument to prototype.
18215
18216 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18217
18218         * lto-section-in.c (lto_section_name): Synchronize names
18219         with lto_get_section_name.
18220
18221 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18222
18223         * lto-opts.c (lto_read_file_options): Check for missing section.
18224
18225 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18226
18227         * ira.c (check_allocation): Correctly handle the case where an allocno
18228         with two objects was allocated to a single reg.
18229
18230 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
18231
18232         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
18233         (is_widening_mult_p): Likewise.
18234         (convert_to_widen): Use them.
18235         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
18236         well as integer ones.
18237
18238 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
18239
18240         * alias.c (true_dependence_1): New function, merged version of
18241         true_dependence and canon_true_dependence.
18242         (true_dependence): Simplify.
18243         (canon_true_dependence): Simplify.
18244
18245 2010-07-22  Richard Henderson  <rth@redhat.com>
18246
18247         PR target/45027
18248         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
18249         of V4SFmode for the SSE saves; increase stack alignment if needed.
18250         (ix86_gimplify_va_arg): Don't increase stack alignment here.
18251
18252 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
18253
18254         PR bootstrap/45028
18255         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
18256         call cprop_find_used_regs again via note_uses.
18257
18258 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
18259
18260         * alias.c (get_alias_set): Fix formatting issues.
18261
18262 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
18263
18264         PR middle-end/44878
18265         * stmt.c (expand_value_return):  Call promote_function_mode with
18266         a for_return argument of 2 when returning by reference.
18267
18268 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
18269
18270         PR debug/45024
18271         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
18272         unit DIE if we can find the scope DIE.
18273
18274 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18275
18276         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
18277         changed.  Initialize OBJECT_SUBWORD.
18278         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
18279         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
18280         all callers changed.
18281         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
18282         (finish_allocno): Likewise.
18283         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
18284         (remove_low_level_allocnos): Likewise.
18285         (update_bad_spill_attribute): Likewise.
18286         (setup_min_max_allocno_live_range_point): Likewise.
18287         (sort_conflict_id_map): Likewise.
18288         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
18289         (ior_hard_reg_conflicts): New function.
18290         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18291         (compress_conflict_vecs): Iterate over objects, not allocnos.
18292         (ira_add_live_range_to_object): New function.
18293         (object_range_compare_func): Renamed from allocno_range_compare_func.
18294         All callers changed.
18295         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18296         subobjects, widen the min/max range of the lowest-order object to
18297         potentially include all other such low-order objects.
18298         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18299         (check_allocation): Likewise.  Use more fine-grained tests for register
18300         conflicts.
18301         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18302         allocno subobjects.
18303         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18304         choices about which bits to set in each set.  Don't use
18305         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18306         using the multiple sets we computed.
18307         (push_allocno_to_stack): Iterate over allocno subobjects.
18308         (all_conflicting_hard_regs_coalesced): New static function.
18309         (setup_allocno_available_regs_num): Use it.
18310         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18311         subobjects.
18312         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18313         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18314         by ALLOCNO_NUM_OBJECTS.
18315         (calculate_spill_cost): Likewise.
18316         (color_pass): Express if statement in a more normal way.
18317         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18318         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18319         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18320         (allocno_reload_assign): Likewise.
18321         (ira_reassign_pseudos): Likewise.
18322         (fast_allocation): Likewise.
18323         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18324         (print_allocno_conflicts): Likewise.
18325         (ira_build_conflicts): Likewise.
18326         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18327         callers changed.  Test subword 0 of each allocno for conflicts.
18328         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18329         callers changed.  Iterate over allocno subobjects.
18330         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18331         * ira-int.h (struct ira_allocno): New member: num_objects.
18332         Rename object to objects and change it into an array.
18333         (ALLOCNO_OBJECT): Add new argument N.
18334         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18335         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18336         (ior_hard_reg_conflicts): Declare.
18337         (ira_add_live_range_to_object): Declare.
18338         (ira_allocno_object_iterator): New.
18339         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18340         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18341         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18342         uses changed.
18343         (allocnos_processed): New sparseset.
18344         (make_object_born): Renamed from make_allocno_born; take an
18345         ira_object_t argument.  All callers changed.
18346         (make_object_dead): Renamed from make_allocno_dead; take an
18347         ira_object_t argument.  All callers changed.
18348         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18349         All callers changed.
18350         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18351         (mark_pseudo_regno_dead): Likewise.
18352         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18353         functions.
18354         (mark_ref_live): Detect subword accesses and call
18355         mark_pseudo_regno_subword_live as appropriate.
18356         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18357         (process_bb_nodes_live): Deal with object-related updates first; set
18358         and test bits in allocnos_processed to avoid computing allocno
18359         statistics more than once.
18360         (create_start_finish_chains): Iterate over objects, not allocnos.
18361         (print_object_live_ranges): New function.
18362         (print_allocno_live_ranges): Use it.
18363         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18364         and objects_live.
18365
18366 2010-07-22  Richard Guenther  <rguenther@suse.de>
18367
18368         PR lto/42451
18369         * gimple.c (gtc_next_dfs_num): New global.
18370         (struct sccs): Make value a union, add integer same_p member.
18371         (gtc_visit): New function.
18372         (gimple_types_compatible_p_1): New function, split out from ...
18373         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18374         (iterative_hash_gimple_type): Adjust for sccs change.
18375
18376 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18377
18378         PR tree-optimization/44891
18379         * tree-sra.c: Include gimple-pretty-print.h.
18380         (replace_uses_with_default_def_ssa_name): Renamed to
18381         get_repl_default_def_ssa_name, return the new SSA name instead of
18382         replacing the old one.
18383         (sra_modify_assign): Dump a message when removing a load, if the LHS
18384         is an SSA_NAME, do not do any propagation, just set the RHS to a
18385         default definition SSA NAME, type convert if necessary.
18386         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18387
18388 2010-07-22  Richard Guenther  <rguenther@suse.de>
18389
18390         PR tree-optimization/45017
18391         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18392         TYPE_PRECISION of integral types in addition to size.
18393
18394 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18395
18396         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18397         when no C library is specified.
18398
18399 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18400
18401         * ipa-prop.h (struct ipa_node_params): Updated comment.
18402         (struct ipa_edge_args): Likewise.
18403         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18404
18405 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18406
18407         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18408         (verify_cgraph_node): Verify frequencies of indirect edges.
18409         * tree-inline.c (tree_function_versioning): Update frequencies of
18410         indirect edges.
18411
18412 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18413
18414         PR target/43698
18415         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18416         Set *arm_rev to be predicable.
18417
18418 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18419
18420         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18421         (LINK_COMMAND_SPEC_A): New.
18422         (DSYMUTIL): New.
18423         (DSYMUTIL_SPEC): New.
18424         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18425         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18426
18427 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18428
18429         * calls.c (load_register_parameters): Move check for zero
18430         sized items so that only the call to
18431         mem_overlaps_already_clobbered_arg_p () is protected.
18432
18433 2010-07-22  Jan Hubicka  <jh@suse.cz>
18434
18435         * ipa-pure-const.c (varying_state): Break out from ...
18436         (get_function_state): ... here; always return varying_state
18437         when state would be NULL otherwise.
18438         (remove_node_data): Do not free varying state.
18439
18440 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18441
18442         PR bootstrap/44970
18443         PR middle-end/45009
18444         * postreload.c: Include "target.h".
18445         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18446         into account.
18447         (fixup_debug_insns): Don't copy the rtx.
18448         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18449         Don't copy when replacing.  Call fixup_debug_insns in the case where
18450         we merged one add with another.
18451         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18452         Try harder to determine whether we're picking a valid index register.
18453         Don't set store_ruid for an insn we're going to scan in the
18454         next iteration.
18455         (reload_combine): Remove unused code.
18456         (reload_combine_note_use): When updating use information for
18457         an old insn, ignore a use that occurs after store_ruid.
18458         * Makefile.in (postreload.o): Update dependencies.
18459
18460         * function.c (record_hard_reg_sets): Restrict the previous change
18461         to cases where the incoming nominal mode is the same as the
18462         incoming promoted mode and everything happens in MODE_INT.
18463
18464 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18465
18466         PR debug/45015
18467         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18468         ASM_OPERANDS_OUTPUT_IDX.
18469         (adjust_insn): For inline asm with multiple sets ensure first
18470         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18471         the insn.
18472
18473 2010-07-21  Richard Henderson  <rth@redhat.com>
18474
18475         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18476         comparison for avoiding xmm register saves.  Emit the xmm register
18477         saves explicitly.
18478         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18479         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18480         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18481         Remove patterns and the associated splitters.
18482
18483 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18484
18485         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18486         and imagine parts of a complex, so that they can have the same
18487         base and fall into the same group.
18488
18489 2010-07-21  Richard Guenther  <rguenther@suse.de>
18490
18491         PR lto/45018
18492         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18493         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18494         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18495
18496 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18497
18498         PR tree-optimization/44900
18499         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18500         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18501
18502 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18503
18504         PR middle-end/44738
18505         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18506
18507 2010-07-21  Richard Guenther  <rguenther@suse.de>
18508
18509         PR middle-end/45013
18510         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18511         gimple_types_compatible_p only when in lto.
18512         * gimple.c (gimple_types_compatible_p): Use canonical types
18513         to speed up comparison.
18514
18515 2010-07-21  Richard Guenther  <rguenther@suse.de>
18516
18517         * tree-flow.h (referenced_var): Move define ...
18518         * tree-flow-inline.h (referenced_var): ... here as an inline
18519         function.  Assert here ...
18520         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18521         * tree-ssa.c (maybe_optimize_var): Check if the variable
18522         is in referenced vars.
18523         (execute_update_addresses_taken): Remove old broken check.
18524         * gimple-pretty-print.c (pp_points_to_solution): Use
18525         referenced_var_lookup.
18526         * tree-into-ssa.c (dump_decl_set): Likewise.
18527
18528 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18529
18530         PR debug/45003
18531         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18532         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18533         ZERO_EXTEND here.
18534
18535 2010-07-20  Richard Henderson  <rth@redhat.com>
18536
18537         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18538
18539 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18540
18541         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18542         computing the sum of the stack pointer and a large constant.
18543         * config/arm/constraints.md (M): Remove superfluous parentheses.
18544         (Pc): New constraint.
18545
18546 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18547
18548         PR debug/45006
18549         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18550         operand's type if exp is tcc_unary class tree.
18551
18552 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18553
18554         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18555         Reverse sense of if_then_else condition.
18556
18557 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18558
18559         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18560         * config/rs6000/rs6000.c (rs6000_override_options): Set
18561         rs6000_block_move_inline_limit appropriately.
18562         (expand_block_move): Use rs6000_block_move_inline_limit.
18563         * doc/invoke.texi (mblock-move-inline-limit): Document.
18564
18565 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18566
18567         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18568         FROM and TO.  All callers changed.  Don't look for tracked uses,
18569         just scan the RTL for DEBUG_INSNs and substitute.
18570         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18571         (reload_combine): Ignore DEBUG_INSNs.
18572
18573 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18574
18575         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18576         depth to 8 from 5.
18577
18578         PR debug/45003
18579         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18580         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18581         instead of the result's type.
18582
18583 2010-07-20  Richard Guenther  <rguenther@suse.de>
18584
18585         PR tree-optimization/44977
18586         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18587         SSA form.
18588
18589 2010-07-20  Richard Guenther  <rguenther@suse.de>
18590
18591         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18592         (lto_symtab_merge_decls_2): Likewise.
18593         * gimple.h (gimple_types_compatible_p): Declare.
18594         * gimple.c (gimple_queue_type_fixup): Remove.
18595         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18596         (gimple_compatible_complete_and_incomplete_type_p): New function.
18597         (gimple_types_compatible_p): Adjust.
18598         (gimple_register_type): Remove type fixup code.
18599         (print_gimple_types_stats): Adjust.
18600         (free_gimple_type_tables): Likewise.
18601         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18602         * tree-ssa.c (useless_type_conversion_p): Likewise.
18603
18604 2010-07-20  Richard Guenther  <rguenther@suse.de>
18605
18606         PR middle-end/44971
18607         PR middle-end/44988
18608         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18609         (execute_update_addresses_taken): ... here.
18610         (non_rewritable_mem_ref_base): Likewise.
18611         (execute_update_addresses_taken): Do not iterate over all referenced
18612         vars but just all local decls and parms.
18613         Properly check call and asm arguments and rewrite call arguments.
18614
18615 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18616
18617         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18618         to top level.
18619         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18620         definitions ...
18621         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18622         New macro.
18623         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18624
18625 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18626
18627         * gengtype.c (start_root_entry): New function, split out from
18628         write_root.  Check whether V is null and raise an error if so.
18629         (write_field_root): Check for V being null.  Don't raise an error here;
18630         set V to null instead.
18631         (write_root): Update comment above function.  Use start_root_entry.
18632
18633 2010-07-19  Xinliang David Li  <davidxl@google.com>
18634
18635         PR testsuite/44932
18636         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18637         def edges.
18638         (find_uninit_use): Add dump.
18639         (is_use_properly_guarded): Ditto.
18640         (warn_uninitialized_phi): Ditto.
18641         (execute_late_warn_uninitialized): Ditto.
18642
18643 2010-07-19  Richard Guenther  <rguenther@suse.de>
18644
18645         PR middle-end/44941
18646         * expr.c (emit_block_move_hints): Move zero size check first.
18647         Move asserts to more useful places.
18648         * calls.c (load_register_parameters): Check for zero size.
18649
18650 2010-07-19  Richard Henderson  <rth@redhat.com>
18651
18652         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18653         cgraph_state here ...
18654         (execute_early_local_optimizations): ... not here.  Remove.
18655         (pass_early_local_passes, pass_all_early_optimizations): Update.
18656
18657 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18658
18659         * postreload.c (reload_combine_closest_single_use): Ignore the
18660         number of uses for DEBUG_INSNs.
18661         (fixup_debug_insns): New static function.
18662         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18663         main loop be affected by DEBUG_INSNs.
18664         Really disallow moving adds past a jump insn.
18665         (reload_combine_recognize_pattern): Don't update use_ruid here.
18666         (reload_combine_note_use): Do it here.
18667         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18668
18669 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18670
18671         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18672         of a loop.
18673         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18674
18675 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18676
18677         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18678         (TARGET_MACHO_BRANCH_ISLANDS): New.
18679         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18680         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18681         default value.
18682         * config/i386/i386.c (output_pic_addr_const): Do not emit
18683         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18684         (x86_output_mi_thunk): Adjust symbol creation.
18685         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18686         Remove out of date comment.
18687         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18688         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18689         (DARWIN_GENERATE_ISLANDS): Ditto.
18690         (output_call):  Do not emit branch islands unless
18691         darwin_emit_branch_islands is set.
18692         * config/darwin.c: Declare darwin_emit_branch_islands.
18693         (machopic_indirect_data_reference): Do not emit unless
18694         darwin_emit_branch_islands is set.
18695         (darwin_override_options): Set darwin_emit_branch_islands
18696         where it is needed.
18697         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18698
18699 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18700
18701         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18702         sse_runtime, sse2_runtime.
18703
18704 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18705
18706         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18707         low half of a single-register SCmode return value before ORing
18708         it with the high half.
18709         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18710
18711 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18712
18713         PR target/44805
18714         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18715         on all targets.
18716
18717 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18718
18719         PR target/42235
18720         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18721         changed.  All callers changed.
18722         (move2add_use_add2_insn): Likewise.
18723         (move2add_use_add3_insn): Likewise.
18724         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18725         reload_combine.
18726         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18727         (last_jump_ruid): New static variable.
18728         (struct reg_use): New members CONTAINING_MEM and RUID.
18729         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18730         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18731         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18732         reload_combine_purge_reg_uses_after_ruid,
18733         reload_combine_recognize_const_pattern): New static functions.
18734         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18735         is true for our reg and that we have available index regs.
18736         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18737         callers changed.  Use them to initialize fields in struct reg_use.
18738         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18739         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18740         Call reload_combine_recognize_const_pattern.
18741         (reload_combine_note_store): Update REAL_STORE_RUID field.
18742
18743 2010-07-16  Jason Merrill  <jason@redhat.com>
18744
18745         * Makefile.in (opts-common.o): Depend on options.h.
18746
18747 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18748
18749         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18750         instead of build_function_type.
18751         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18752         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18753
18754 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18755
18756         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18757         do all the work.
18758         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18759         Don't force values into registers unnecessarily.
18760         (output_isel): Assert that we're not given conditions we can't handle.
18761         Delete corresponding code.
18762         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18763         scc_comparison_operator constraint.  Permit 0 for the consequent
18764         operand.  Permit any GPR for the alternative operand.
18765         (isel_unsigned_<mode>): Likewise.
18766
18767 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18768
18769         PR target/44942
18770         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18771         argument to const_tree.
18772         * config/i386/i386.c (function_arg_advance): If padding needs to be
18773         inserted before argument, increment cum->words by number of padding
18774         words as well.
18775         (contains_aligned_value_p): Change argument to const_tree.
18776         (ix86_function_arg_boundary): Change second argument to const_tree.
18777
18778 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18779
18780         PR target/42235
18781         * function.c (record_hard_reg_sets): New static function.
18782         (assign_parm_setup_reg): If an optab for extending exists and the
18783         generated code clobbbers no hard regs, emit the insn directly and
18784         create a REG_EQUIV note.
18785
18786 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18787
18788         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18789         TREE_CHAIN.
18790         * c-typeck.c (push_init_level): Likewise.
18791         (process_init_element): Likewise.
18792
18793 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18794
18795         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18796         (integer_three_node): Add.
18797         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18798         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18799         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18800         of call build_int_cst.
18801         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18802         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18803         (find_interesting_uses_address): Ditto.
18804         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18805         * tree-eh.c (lower_eh_constructs_2): Ditto.
18806         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18807         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18808         * expmed.c (expand_divmod): Ditto.
18809         * tree-mudflap.c (mx_register_decls): Ditto.
18810         * varasm.c (array_size_for_constructor): Ditto.
18811         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18812         * c-parser.c (c_parser_postfix_expression): Ditto.
18813
18814 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18815
18816         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18817         New static variables.
18818         (reload_combine_recognize_pattern): New static function, broken out
18819         of reload_combine.
18820         (reload_combine): Use it.  Only initialize first_index_reg and
18821         last_index_reg once.
18822
18823 2010-07-15  Richard Henderson  <rth@redhat.com>
18824
18825         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18826         when done.
18827
18828 2010-07-15  Jan Hubicka  <jh@suse.cz>
18829
18830         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18831         comdats for broken gold.
18832         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18833
18834 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18835
18836         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18837
18838 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18839
18840         * tree.h (DECL_CHAIN): Define.
18841         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18842         * c-decl.c: Likewise.
18843         * c-parser.c: Likewise.
18844         * c-typeck.c: Likewise.
18845         * cfgexpand.c: Likewise.
18846         * cgraph.c: Likewise.
18847         * cgraphunit.c: Likewise.
18848         * combine.c: Likewise.
18849         * config/alpha/alpha.c: Likewise.
18850         * config/arm/arm.c: Likewise.
18851         * config/frv/frv.c: Likewise.
18852         * config/i386/i386.c: Likewise.
18853         * config/i386/winnt-cxx.c: Likewise.
18854         * config/ia64/ia64.c: Likewise.
18855         * config/iq2000/iq2000.c: Likewise.
18856         * config/mep/mep.c: Likewise.
18857         * config/mips/mips.c: Likewise.
18858         * config/pa/som.h: Likewise.
18859         * config/rs6000/rs6000.c: Likewise.
18860         * config/s390/s390.c: Likewise.
18861         * config/sh/sh.c: Likewise.
18862         * config/sh/symbian-cxx.c: Likewise.
18863         * config/sparc/sparc.c: Likewise.
18864         * config/spu/spu.c: Likewise.
18865         * config/stormy16/stormy16.c: Likewise.
18866         * config/vxworks.c: Likewise.
18867         * config/xtensa/xtensa.c: Likewise.
18868         * coverage.c: Likewise.
18869         * dbxout.c: Likewise.
18870         * dwarf2out.c: Likewise.
18871         * emit-rtl.c: Likewise.
18872         * expr.c: Likewise.
18873         * function.c: Likewise.
18874         * gimple-low.c: Likewise.
18875         * gimple-pretty-print.c: Likewise.
18876         * gimplify.c: Likewise.
18877         * integrate.c: Likewise.
18878         * ipa-inline.c: Likewise.
18879         * ipa-prop.c: Likewise.
18880         * ipa-split.c: Likewise.
18881         * ipa-struct-reorg.c: Likewise.
18882         * ipa-type-escape.c: Likewise.
18883         * langhooks.c: Likewise.
18884         * lto-cgraph.c: Likewise.
18885         * omp-low.c: Likewise.
18886         * stor-layout.c: Likewise.
18887         * tree-cfg.c: Likewise.
18888         * tree-complex.c: Likewise.
18889         * tree-dfa.c: Likewise.
18890         * tree-dump.c: Likewise.
18891         * tree-inline.c: Likewise.
18892         * tree-mudflap.c: Likewise.
18893         * tree-nested.c: Likewise.
18894         * tree-object-size.c: Likewise.
18895         * tree-pretty-print.c: Likewise.
18896         * tree-sra.c: Likewise.
18897         * tree-ssa-live.c: Likewise.
18898         * tree-ssa-loop-niter.c: Likewise.
18899         * tree-ssa-math-opts.c: Likewise.
18900         * tree-ssa-reassoc.c: Likewise.
18901         * tree-ssa-sccvn.c: Likewise.
18902         * tree-ssa-structalias.c: Likewise.
18903         * tree-tailcall.c: Likewise.
18904         * tree-vrp.c: Likewise.
18905         * tree.c: Likewise.
18906         * var-tracking.c: Likewise.
18907         * varasm.c: Likewise.
18908
18909 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18910
18911         PR target/44877
18912         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18913         (as well as pointers) as argument to mask_for_load builtins.
18914
18915 2010-07-15  Richard Guenther  <rguenther@suse.de>
18916
18917         PR tree-optimization/44946
18918         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18919         with accessing only padding properly.
18920
18921 2010-07-15  Jan Hubicka  <jh@suse.cz>
18922
18923         * ipa.c (function_and_variable_visibility): Variables marked as used
18924         should not be localized.
18925
18926 2010-07-15  Jan Hubicka  <jh@suse.cz>
18927
18928         * cgraph.c: Include lto-streamer.h
18929         (change_decl_assembler_name): Work when assembler name hash is at place.
18930         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18931         be sure to rename it to avoid name clash.
18932         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18933         Localize hidden symbols only when locally defined.
18934
18935 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18936
18937         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18938
18939 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18940             Kevin F. Quinn  <kevquinn@gentoo.org>
18941
18942         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18943         * common.opt: Add -Wtrampolines.
18944         * doc/invoke.texi: Add -Wtrampolines.
18945
18946 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18947
18948         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18949         cortex_a8_issue_ls.
18950
18951 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18952
18953         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18954         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18955
18956 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18957
18958         * config/spu/spu.c (reg_names): Remove prototype.
18959         (call_used_regs): Likewise.
18960
18961 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18962
18963         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18964         "unused" with attribute "used".
18965         (__JCR_END__): Likewise.
18966         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18967         "used" attribute.
18968         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18969
18970 2010-07-14  Richard Guenther  <rguenther@suse.de>
18971
18972         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18973         (maybe_fixup_decls): Likewise.
18974         (input_gimple_stmt): Do not fixup anything.
18975         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18976         non-automatic variable uses are wrapped inside a MEM_REF.
18977
18978 2010-07-14  Richard Henderson  <rth@redhat.com>
18979
18980         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18981         for functions.
18982         * varasm.c (assemble_variable): Remove early exit for functions;
18983         assert that we're given a variable.
18984
18985 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18986
18987         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18988         cortex_a8_default when neon_type is not none.
18989
18990 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18991
18992         * lower-subreg.c (subreg_context): New static bitmap.
18993         (decompose_multiword_subregs): Allocate and free it.
18994         (find_decomposable_subregs): Set a bit in it for a register that
18995         occurs in a subreg that changes mode but not size.
18996         (can_decompose_p): Test it instead of non_decomposable_context.
18997
18998 2010-07-14  Richard Guenther  <rguenther@suse.de>
18999
19000         PR tree-optimization/44824
19001         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
19002         is_gimple_mem_ref_addr.
19003         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
19004         non-decl_address_invariant_p addresses.
19005
19006 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19007
19008         * reload.c (find_reloads): Revert code to penalize small register
19009         classes that was brought in with the IRA merge.
19010
19011 2010-07-14  Richard Guenther  <rguenther@suse.de>
19012
19013         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
19014         as base of ARRAY_REFs.
19015
19016 2010-07-14  Richard Guenther  <rguenther@suse.de>
19017
19018         PR middle-end/44930
19019         * tree-pretty-print.c (do_niy): Do not print a newline.
19020
19021 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19022
19023         * ira-int.h (struct ira_object): New.
19024         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
19025         (struct ira_allocno): Remove members min, max,
19026         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
19027         conflict_allocnos_num and conflict_vec_p.  Add new member object.
19028         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
19029         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
19030         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
19031         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
19032         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
19033         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
19034         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
19035         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
19036         an ira_object_t rather than ira_allocno_t.  All uses changed.
19037         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19038         contains a vector of ira_object_t; all uses changed.
19039         (ira_objects_num): Declare variable.
19040         (ira_create_allocno_object): Declare function.
19041         (ira_conflict_vector_profitable_p): Adjust prototype.
19042         (ira_allocate_conflict_vec): Renamed from
19043         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
19044         (ira_allocate_object_conflicts): Renamed from
19045         ira_allocate_allocno_conflicts; first arg now ira_object_t.
19046         (struct ira_object_iterator): New.
19047         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
19048         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
19049         to conflict_vec_p.  All uses changed.
19050         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
19051         Changed to take into account that conflicts are now tracked for
19052         objects.
19053         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
19054         Args changed to accept ira_object_t.  All uses changed.
19055         (allocnos_conflict_p): New static function.
19056         (collected_conflict_objects): Renamed from collected_allocno_objects;
19057         now a vector of ira_object_t.  All uses changed.
19058         (build_conflict_bit_table): Changed to take into account that
19059         conflicts are now tracked for objects.
19060         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
19061         (print_allocno_conflicts, ira_build_conflicts): Likewise.
19062         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
19063         setup_allocno_left_conflicts_size, allocno_reload_assign,
19064         fast_allocation): Likewise.
19065         * ira-lives.c (make_hard_regno_born, make_allocno_born)
19066         process_single_reg_class_operands, process_bb_node_lives): Likewise.
19067         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
19068         Likewise.
19069         * ira-build.c (ira_objects_num): New variable.
19070         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19071         contains a vector of ira_object_t; all uses changed.
19072         (ira_object_id_map_vec): Corresponding change.
19073         (object_pool): New static variable.
19074         (initiate_allocnos): Initialize it.
19075         (finish_allocnos): Free it.
19076         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
19077         New functions.
19078         (ira_create_allocno): Don't set members that were removed.
19079         (ira_set_allocno_cover_class): Don't change conflict hard regs.
19080         (merge_hard_reg_conflicts): Changed to take into account that
19081         conflicts are now tracked for objects.
19082         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
19083         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
19084         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
19085         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
19086         setup_min_max_conflict_allocno_ids, ):  Likewise.
19087         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
19088         to ira_object_t; all callers changed.
19089         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
19090         to ira_object_t, all callers changed.
19091         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
19092         to ira_object_t, all callers changed.
19093         (conflict_check, curr_conflict_check_tick): Renamed from
19094         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
19095         changed.
19096         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
19097         arg changed to ira_object_t, all callers changed.
19098         (create_cap_allocno): Call ira_create_allocno_object.
19099         (finish_allocno): Free the corresponding object.
19100         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
19101         callers changed.  Adjusted for dealing with objects.
19102         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
19103         dealing with objects.
19104         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
19105
19106         * ira-int.h (struct live_range): Rename allocno member to object
19107         and change type to ira_object_t.
19108         (struct ira_object): New member live_ranges.
19109         (struct ira_allocno): Remove member live_ranges.
19110         (ALLOCNO_LIVE_RANGES): Remove.
19111         (OBJECT_LIVE_RANGES): New macro.
19112         (ira_create_live_range, ira_copy_live_range_list,
19113         ira_merge_live_range_list, ira_live_ranges_intersect_p,
19114         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
19115         * ira-build.c (ira_create_object): Initialize live ranges here.
19116         (ira_create_allocno): Not here.
19117         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
19118         changed to ira_object_t, all callers changed.
19119         (copy_live_range): Rename from copy_allocno_live_range, all callers
19120         changed.
19121         (ira_copy_live_range_list): Rename from
19122         ira_copy_allocno_live_range_list, all callers changed.
19123         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
19124         all callers changed.
19125         (ira_live_ranges_intersect_p): Rename from
19126         ira_allocno_live_ranges_intersect_p, all callers changed.
19127         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
19128         callers changed.
19129         (ira_finish_live_range_list): Rename from
19130         ira_finish_allocno_live_range_list, all callers changed.
19131         (change_object_in_range_list): Rename from change_allocno_in_range_list,
19132         last arg changed to ira_object_t, all callers changed.
19133         (finish_allocno): Changed to expect live ranges in the allocno's object.
19134         (move_allocno_live_ranges, copy_allocno_live_ranges,
19135         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
19136         ira_flattening, ira_build): Likewise.
19137         * ira-color.c (allocnos_have_intersected_live_ranges_p,
19138         slot_coalesced_allocno_live_ranges_intersect,
19139         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
19140         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19141         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
19142         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
19143         make_allocno_dead, create_start_finish_chains,
19144         remove_some_program_points_and_update_live_ranges,
19145         ira_debug_live_range_list): Likewise.
19146
19147         * ira-int.h (ira_object_conflict_iterator): Rename from
19148         ira_allocno_conflict_iterator.
19149         (ira_object_conflict_iter_init): Rename from
19150         ira_allocno_conflict_iter_init, second arg changed to
19151         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
19152         FOR_EACH_ALLOCNO_CONFLICT.
19153         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
19154         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
19155         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
19156         * ira-conflicts.c (print_allocno_conflicts): Likewise.
19157
19158 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
19159
19160         PR other/44874
19161         * tree-dump.c (dump_options): Add enumerate_locals entry.
19162         Add TDF_NOID exclusion to all entry.
19163         * tree-dump.h (dump_enumerated_decls): Declare.
19164         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
19165         Don't display type uid.
19166         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
19167         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
19168         * tree-ssa-live.c: Include gimple.h.
19169         (numbered_tree_d): New struct.
19170         (numbered_tree): New typedef.
19171         (DEF_VEC_O (numbered_tree): New.
19172         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
19173         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
19174         (dump_enumerated_decls): Likewise.
19175         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
19176         debug info and flag_dump_final_insns, call dump_enumerated_decls.
19177         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
19178         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
19179
19180 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
19181
19182         * expmed.h (MAX_BITS_PER_WORD): Move to...
19183         * defaults.h (MAX_BITS_PER_WORD): ...here.
19184
19185 2010-07-13  DJ Delorie  <dj@redhat.com>
19186
19187         * config/h8300/h8300.c (h8300_init_once): Default to
19188         -fstrict_volatile_bitfields.
19189
19190         * config/sh/sh.c (sh_override_options): Default to
19191         -fstrict_volatile_bitfields.
19192
19193         * config/rx/rx.c (rx_option_override): New.
19194
19195         * config/m32c/m32c.c (m32c_override_options): Default to
19196         -fstrict_volatile_bitfields.
19197
19198 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
19199
19200         * tree.h (build_function_call_expr): Delete.
19201         (build_call_expr_loc_array): New function.
19202         (build_call_expr_loc_vec): New function.
19203         * tree-flow.h (struct omp_region): Change type of ws_args field
19204         to a VEC.
19205         * builtins.c (build_function_call_expr): Delete.
19206         (build_call_expr_loc_array): New function.
19207         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
19208         (build_call_expr): Likewise.
19209         (build_call_expr_loc_vec): New function.
19210         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
19211         build_function_call_expr.
19212         * expr.c (emutls_var_address): Likewise.
19213         * varasm.c (emutls_common_1): Likewise.
19214         * omp-low.c (expand_omp_atomic_mutex): Likewise.
19215         (expand_omp_taskreg): Adjust for new type of region->ws_args.
19216         (get_ws_args_for): Return a VEC instead of a tree.
19217         (expand_parallel_call): Call build_call_expr_loc_vec instead of
19218         build_function_call_expr.
19219         * stor-layout.c (self_referential_size): Likewise.
19220
19221 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19222
19223         PR testsuite/44701
19224         * recog.c (constrain_operands): Allow side-effects in memory
19225         operands if either < or > constraint is used, rather than if
19226         both < and > is used.
19227
19228 2010-07-13  Richard Guenther  <rguenther@suse.de>
19229
19230         PR middle-end/44911
19231         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
19232         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
19233         without name.
19234
19235 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
19236
19237         PR target/44761
19238         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
19239         to variable emited.
19240         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
19241         * config/sh/sh.md (symGOT_load): Likewise.
19242         (symDTPOFF2reg): Likewise.
19243         (symTPOFF2reg): Likewise.
19244
19245 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19246
19247         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
19248         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
19249
19250 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19251
19252         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
19253         explanation.
19254         Find ucontext_t * on Solaris 11.
19255         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
19256         Handle new Solaris 11 __sighndlr patterns.
19257
19258 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19259
19260         PR debug/44901
19261         * vec.h (VEC_block_remove): Fix comment.
19262         * tree-ssa-live.c (remove_unused_locals): Don't use
19263         VEC_unordered_remove on local_decls, instead replace a single
19264         vector element in each iteration if at least one element had
19265         to be removed and VEC_truncate at the end.
19266         * omp-low.c (expand_omp_taskreg): Likewise.
19267
19268 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19269
19270         * c-decl.c (finish_function): Fix typo in comment.
19271
19272 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
19273
19274         PR bootstrap/44921
19275         * postreload.c (move2add_use_add3_insn): Silence gcc warning
19276         on min_regno.
19277
19278 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
19279
19280         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
19281         (simplify_stmt_using_ranges): Use it.
19282
19283 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19284
19285         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
19286         member.  Do not mark as GTY(()).
19287         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
19288         (spu_builtin_decls): New static variable.
19289         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
19290         (spu_init_builtins): Likewise.
19291         (spu_builtin_mul_widen_even): Likewise.
19292         (spu_builtin_mul_widen_odd): Likewise.
19293         (spu_builtin_mask_for_load): Likewise.
19294         (spu_builtin_vec_perm): Likewise.
19295         * config/spu/spu-c.c: Include "target.h".
19296         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19297         of using spu_builtins[].fndecl.
19298
19299 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19300
19301         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19302         imply -minterlink-mips16.
19303
19304 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19305
19306         * config/mips/mips.h (mips16_globals): Declare.
19307         (SWITCHABLE_TARGET): Define.
19308         * config/mips/mips.c: Include target-globals.h.
19309         (mips16_globals): New variable.
19310         (mips_set_mips16_mode): Use save_target_globals and
19311         restore_target_globals instead of target_reinit.
19312
19313 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19314
19315         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19316         to say that the function can be called more than once.
19317         * target-globals.c (save_target_globals): Call init_reg_sets.
19318
19319 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19320
19321         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19322         * bb-reorder.h: New file.
19323         * bb-reorder.c (default_target_bb_reorder): New variable.
19324         (this_target_bb_reorder): New conditional variable.
19325         (uncond_jump_length): Redefine as a macro.
19326         * target-globals.h (this_target_bb_reorder): Declare.
19327         (target_globals): Add a bb_reorder field.
19328         (restore_target_globals): Copy the bb_reorder field to
19329         this_target_bb-reorder.
19330         * target-globals.c: Include bb-reorder.h.
19331         (default_target_globals): Initialize the bb_reorder field.
19332         (save_target_globals): Likewise.
19333
19334 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19335
19336         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19337         * gcse.h: New file.
19338         * gcse.c: Include gcse.h.
19339         (default_target_gcse): New variable.
19340         (this_target_gcse): New conditional variable.
19341         (can_copy): Redefine as a macro.
19342         (can_copy_init_p): New macro.
19343         (can_copy_p): Remove can_copy_init_p.
19344         * target-globals.h (this_target_gcse): Declare.
19345         (target_globals): Add a gcse field.
19346         (restore_target_globals): Copy the gcse field to this_target_gcse.
19347         * target-globals.c: Include gcse.h.
19348         (default_target_globals): Initialize the gcse field.
19349         (save_target_globals): Likewise.
19350
19351 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19352
19353         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19354         and x_ira_prohibited_mode_move_regs_initialized_p.
19355         (ira_prohibited_mode_move_regs): Redefine as a macro.
19356         * ira.c (ira_prohibited_mode_move_regs): Delete.
19357         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19358
19359 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19360
19361         * reload.h (target_reload): Add x_cached_reg_save_code and
19362         x_cached_reg_restore_code.
19363         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19364         Redefine as macros.
19365
19366 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19367
19368         * Makefile.in (target-globals.o): Depend on builtins.h.
19369         * builtins.h: New file.
19370         * builtins.c: Include builtins.h.
19371         (default_target_builtins): New variable.
19372         (this_target_builtins): New conditional variable.
19373         (apply_args_mode, apply_result_mode): Redefine as macros.
19374         * target-globals.h (this_target_builtins): Declare.
19375         (target_globals): Add a builtins field.
19376         (restore_target_globals): Copy the builtins field to
19377         this_target_builtins.
19378         * target-globals.c: Include builtins.h.
19379         (default_target_globals): Initialize the builtins field.
19380         (save_target_globals): Likewise.
19381
19382 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19383
19384         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19385         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19386         from expmed.c.
19387         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19388         (alg_hash, alg_hash_used_p): New macros.
19389         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19390         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19391         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19392
19393 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19394
19395         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19396         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19397         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19398         (this_op_costs, costs_classes): Redefine as macros.
19399         (record_reg_classes): Don't take op_costs as a parameter.
19400         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19401         (scan_one_insn): Update call to record_operand_costs.
19402
19403 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19404
19405         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19406         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19407         (target_ira_int): New structure.
19408         (default_target_ira_int): Declare.
19409         (this_target_ira_int): Declare as a variable or define as a macro.
19410         (ira_reg_mode_hard_regset, ira_register_move_cost)
19411         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19412         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19413         (prohibited_class_mode_regs, ira_important_classes_num)
19414         (ira_important_classes, ira_reg_class_intersect)
19415         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19416         (ira_reg_class_union): Redefine as macros.
19417         * ira.h (target_ira): New structure.
19418         (default_target_ira): Declare.
19419         (this_target_ira): Declare as a variable or define as a macro.
19420         (ira_available_class_regs, ira_hard_regno_cover_class)
19421         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19422         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19423         (ira_class_hard_regs_num): Redefine as macros.
19424         * ira.c (default_target_ira, default_target_ira_int): New variables.
19425         (this_target_ira, this_target_ira_int): New conditional variables.
19426         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19427         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19428         (ira_class_subset_p): Delete.
19429         (no_unit_alloc_regs): Redefine as a macro.
19430         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19431         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19432         (ira_available_class_regs): Delete.
19433         (alloc_reg_class_subclasses): Redefine as a macro.
19434         (ira_reg_class_cover_size, ira_reg_class_cover)
19435         (ira_important_classes_num, ira_important_classes)
19436         (ira_important_class_nums, ira_class_translate): Delete.
19437         (cover_class_order): Document the variable's lifetime.
19438         (reorder_important_classes): Don't set ira_important_class_nums.
19439         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19440         (ira_reg_class_super_classes, ira_reg_class_union)
19441         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19442         Delete.
19443         (setup_reg_class_nregs): Don't set ira_max_regs.
19444         (prohibited_class_mode_regs): Delete.
19445         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19446         (target_globals): Add ira and ira_int fields.
19447         (restore_target_globals): Copy the ira field to this_target_ira
19448         and the ira_int field to this_target_ira_int.
19449         * target-globals.c: Include ira-int.h.
19450         (default_target_globals): Initialize the ira and ira_int fields.
19451         (save_target_globals): Likewise.
19452
19453 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19454
19455         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19456         * cfgloop.h (target_cfgloop): New structure.
19457         (default_target_cfgloop): Declare.
19458         (this_target_cfgloop): Declare as a variable or define as a macro.
19459         (target_avail_regs, target_clobbered_regs, target_res_regs)
19460         (target_reg_cost, target_spill_cost): Redefine as macros.
19461         * cfgloopanal.c (default_target_cfgloop): New variable.
19462         (this_target_cfgloop): New conditional variable.
19463         (target_avail_regs, target_clobbered_regs, target_res_regs)
19464         (target_reg_cost, target_spill_cost): Delete.
19465         * target-globals.h (this_target_cfgloop): Declare.
19466         (target_globals): Add a cfgloop field.
19467         (restore_target_globals): Copy the cfgloop field to
19468         this_target_cfgloop.
19469         * target-globals.c: Include cfgloop.h.
19470         (default_target_globals): Initialize the cfgloop field.
19471         (save_target_globals): Likewise.
19472
19473 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19474
19475         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19476         x_float_extend_from_mem.
19477         (direct_load, direct_store, float_extend_from_mem): New macros.
19478         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19479
19480 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19481
19482         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19483         (target-globals.o): Depend on $(LIBFUNCS_H).
19484         * libfuncs.h: Include hashtab.h.
19485         (libfunc_entry): Moved from optabs.c.
19486         (target_libfuncs): New structure.
19487         (default_target_libfuncs): Declare.
19488         (this_target_libfuncs): Declare as a variable or define as a macro.
19489         (libfunc_table): Redefine as a macro.
19490         * optabs.c (default_target_libfuncs): New variable.
19491         (this_target_libfuncs): New conditional variable.
19492         (libfunc_table): Delete.
19493         (libfunc_entry): Moved to optabs.h.
19494         (libfunc_hash): Redefine as a macro.
19495         (hash_libfunc, eq_libfunc): Fix comments.
19496         (init_optabs): Use libfunc_hash to detect cases where the function
19497         has already been called.  Clear the hash table instead of
19498         recreating it.
19499         * target-globals.h (this_target_libfuncs): Declare.
19500         (target_globals): Add a libfuncs field.
19501         (restore_target_globals): Copy the libfuncs field to
19502         this_target_libfuncs.
19503         * target-globals.c: Include libfuncs.h.
19504         (default_target_globals): Initialize the libfuncs field.
19505         (save_target_globals): Likewise.
19506
19507 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19508
19509         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19510         in all dependency lists.
19511
19512 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19513
19514         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19515         * optabs.h (target_optabs): New structure.
19516         (default_target_optabs): Declare.
19517         (this_target_optabs): Declare as a variable or define as a macro.
19518         (optab_table, convert_optab_table, direct_optab_table): Redefine
19519         as macros.
19520         * optabs.c (default_target_optabs): New variable.
19521         (this_target_optabs): New conditional variable.
19522         (optab_table, convert_optab_table, direct_optab_table): Delete.
19523         * target-globals.h (this_target_optabs): Declare.
19524         (target_globals): Add a optabs field.
19525         (restore_target_globals): Copy the optabs field to
19526         this_target_optabs.
19527         * target-globals.c: Include expr.h and optabs.h.
19528         (default_target_globals): Initialize the optabs field.
19529         (save_target_globals): Likewise.
19530
19531 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19532
19533         * flags.h (target_flagstate): Add x_flag_excess_precision.
19534         (flag_excess_precision): Redefine as a macro.
19535         * toplev.c (flag_excess_precision): Delete.
19536
19537 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19538
19539         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19540         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19541         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19542         (no_caller_save_reg_set): Redefine as a macro.
19543         * reload.h (target_reload): Add x_caller_save_initialized_p and
19544         x_regno_save_mode.
19545         (caller_save_initialized_p): Redefine as a macro.
19546         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19547         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19548         (regno_save_mode): Redefine as a macro.
19549
19550 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19551
19552         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19553         * expmed.h: New file.
19554         * expmed.c (default_target_costs): New variable.
19555         (this_target_costs): New conditional variable.
19556         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19557         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19558         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19559         * target-globals.h (this_target_expmed): Declare.
19560         (target_globals): Add a expmed field.
19561         (restore_target_globals): Copy the expmed field to
19562         this_target_expmed.
19563         * target-globals.c: Include expmed.h.
19564         (default_target_globals): Initialize the expmed field.
19565         (save_target_globals): Likewise.
19566
19567 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19568
19569         * Makefile.in (target-globals.o): Depend on reload.h.
19570         * reload.h (target_reload): New structure.
19571         (default_target_reload): Declare.
19572         (this_target_reload): Declare as a variable or define as a macro.
19573         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19574         * reload1.c (default_target_reload): New variable
19575         (this_target_reload): New conditional variable.
19576         (indirect_symref_ok, double_reg_address_ok): Delete.
19577         (spill_indirect_levels): Redefine as a macro.
19578         * target-globals.h (this_target_reload): Declare.
19579         (target_globals): Add a reload field.
19580         (restore_target_globals): Copy the reload field to
19581         this_target_reload.
19582         * target-globals.c: Include hard-reg-set.h.
19583         (default_target_globals): Initialize the reload field.
19584         (save_target_globals): Likewise.
19585
19586 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19587
19588         * rtl.h (target_rtl): Add x_static_reg_base_value.
19589         * alias.c (static_reg_base_value): Redefine as a macro.
19590
19591 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19592
19593         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19594         (GTFILES): Remove reginfo.c.
19595         * rtl.h (target_rtl): Add x_top_of_stack.
19596         (top_of_stack): New macro.
19597         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19598         (top_of_stack): Delete.
19599
19600 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19601
19602         * regs.h (target_regs): Add x_hard_regs_of_mode,
19603         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19604         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19605         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19606         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19607         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19608         (may_move_in_cost, may_move_out_cost): Delete.
19609         (last_mode_for_init_move_cost): Redefine as a macro.
19610
19611 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19612
19613         * hard-reg-set.h (target_hard_regs): New structure.
19614         (default_target_hard_regs): Declare.
19615         (this_target_hard_regs): Declare as a variable or define as a macro.
19616         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19617         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19618         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19619         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19620         (reg_class_superunion, reg_names): Redefine as macros.
19621         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19622         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19623         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19624         (reg_class_contents, reg_class_size, reg_class_subclasses)
19625         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19626         (default_target_hard_regs): New variable
19627         (this_target_hard_regs, initial_call_really_used_regs)
19628         (initial_reg_alloc_order): New conditional variables.
19629         (initial_reg_names): New variable.
19630         (init_reg_sets): Assert that initial_call_really_used_regs,
19631         initial_reg_alloc_order and initial_reg_names
19632         are all the same size as their variable counterparts.  Use them to
19633         initialize those counterparts.
19634         * target-globals.h (this_target_hard_regs): Declare.
19635         (target_globals): Add a hard_regs field.
19636         (restore_target_globals): Copy the hard_regs field to
19637         this_target_hard_regs.
19638         * target-globals.c: Include hard-reg-set.h.
19639         (default_target_globals): Initialize the hard_regs field.
19640         (save_target_globals): Likewise.
19641
19642 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19643
19644         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19645         * rtl.h (target_rtl): New structure.
19646         (default_target_rtl): Declare.
19647         (this_target_rtl): Declare as a variable or define as a macro.
19648         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19649         Redefine as macros.
19650         * emit-rtl.c (default_target_rtl): New variable.
19651         (this_target_rtl): New conditional variable.
19652         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19653         (return_address_pointer_rtx): Delete.
19654         (initial_regno_reg_rtx): New macro.
19655         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19656         (init_emit_regs): Likewise.
19657         * target-globals.h (this_target_rtl): Declare.
19658         (target_globals): Add a rtl field.
19659         (restore_target_globals): Copy the rtl field to this_target_rtl.
19660         * target-globals.c: Include rtl.h.
19661         (default_target_globals): Initialize the rtl field.
19662         (save_target_globals): Likewise.
19663
19664 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19665
19666         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19667         * regs.h (target_reg_modes): New structure.
19668         (default_target_reg_modes): Declare.
19669         (this_target_reg_modes): Declare as a variable or define as a macro.
19670         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19671         * reginfo.c (default_target_reg_modes): New variable.
19672         (this_target_reg_modes): New conditional variable.
19673         (hard_regno_nregs, reg_raw_mode): Delete.
19674         * target-globals.h (this_target_regs): Declare.
19675         (target_globals): Add a regs field.
19676         (restore_target_globals): Copy the regs field to this_target_regs.
19677         * target-globals.c: Include regs.h.
19678         (default_target_globals): Initialize the regs field.
19679         (save_target_globals): Likewise.
19680
19681 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19682
19683         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19684         * doc/tm.texi: Regenerate.
19685         * Makefile.in (OBJS-common): Add target-globals.o.
19686         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19687         and target-globals.h.
19688         (target-globals.o): New rule.
19689         (GTFILES): Include $(srcdir)/target-globals.h.
19690         * defaults.h (SWITCHABLE_TARGET): Define.
19691         * gengtype.c (open_base_files): Add target-globals.h to the
19692         list of includes.
19693         * target-globals.h: New file.
19694         * target-globals.c: Likewise.
19695
19696         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19697         * flags.h (target_flag_state): New structure.
19698         (default_target_flag_state): Declare.
19699         (this_target_flag_state): Declare as a variable or define as a macro.
19700         (align_loops_log): Redefine as a macro.
19701         (align_loops_max_skip, align_jumps_log): Likewise.
19702         (align_jumps_max_skip, align_labels_log): Likewise.
19703         (align_labels_max_skip, align_functions_log): Likewise.
19704         * toplev.c (default_target_flag_state): New variable.
19705         (this_target_flag_state): New conditional variable.
19706         (align_loops_log): Delete.
19707         (align_loops_max_skip, align_jumps_log): Likewise.
19708         (align_jumps_max_skip, align_labels_log): Likewise.
19709         (align_labels_max_skip, align_functions_log): Likewise.
19710         * target-globals.h (this_target_flag_state): Declare.
19711         (target_globals): Add a flag_state field.
19712         (restore_target_globals): Copy the flag_state field to
19713         this_target_flag_state.
19714         * target-globals.c: Include flags.h.
19715         (default_target_globals): Initialize the flag_state field.
19716         (save_target_globals): Likewise.
19717
19718 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19719
19720         * postreload.c (reg_symbol_ref[]): New.
19721         (move2add_use_add2_insn): New.
19722         (move2add_use_add3_insn): New.
19723         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19724         (move2add_note_store): Likewise.
19725
19726 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19727
19728         PR rtl-optimization/44752
19729         * genautomata.c (main): Don't emit an empty file even if there
19730         is no automaton.
19731
19732 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19733
19734         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19735         ix86_solaris_return_in_memory.
19736         * config/i386-protos.h: Reflect this.
19737         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19738         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19739         Move ...
19740         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19741
19742 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19743
19744         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19745         align the stack when it's going to be saved.
19746
19747 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19748
19749         PR pch/14940
19750         * config/host-solaris.c (mmap_fixed): New function.
19751         (sol_gt_pch_get_address): Use it.
19752         (sol_gt_pch_use_address): Likewise.
19753
19754 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19755
19756         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19757         pentiumpro on Solaris 8 and 9/x86.
19758         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19759         Document SSE/SSE2 support.
19760         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19761
19762 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19763
19764         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19765         instead of gcc_assert to print better error message for multiple
19766         prevailing defs.
19767
19768 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19769
19770         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19771         string placeholder from 0x%x to %#x.
19772         (ix86_code_end): Use putc to output '\n'.
19773         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19774
19775 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19776
19777         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19778         in directive -export.
19779
19780 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19781
19782         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19783         reg_class_t.
19784         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19785
19786         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19787         Remove macros.
19788         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19789         rs6000_memory_move_cost): Remove
19790         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19791         TARGET_MEMORY_MOVE_COST): Define.
19792         (rs6000_register_move_cost): Make static. Change arguments type from
19793         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19794         (rs6000_memory_move_cost): Make static. Change arguments type from
19795         'enum reg_class' to reg_class_t.
19796
19797 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19798
19799         PR middle-end/42505
19800         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19801         lookup code into....
19802         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19803         new functions.
19804         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19805         * cfgloopanal.c (target_clobbered_regs): Define.
19806         (init_set_costs): Initialize target_clobbered_regs.
19807         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19808         adjust the number of available registers to exclude the
19809         call-clobbered registers.
19810         * cfgloop.h (target_clobbered_regs): Declare.
19811         (estimate_reg_pressure_cost): Adjust declaration.
19812         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19813         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19814         (determine_set_costs): Dump target_clobbered_regs.
19815         (loop_body_includes_call): New function.
19816         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19817         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19818         call_p flag through.
19819         (best_gain_for_invariant): Likewise.
19820         (find_invariants_to_move): Likewise.
19821         (move_single_loop_invariants): Likewise, using already-computed
19822         has_call field.
19823
19824 2010-07-10  Richard Guenther  <rguenther@suse.de>
19825             Joern Rennecke  <joern.rennecke@embecosm.com>
19826
19827         PR debug/44832
19828         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19829         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19830         unless they have DECL_IGNORED_P set.
19831
19832 2010-07-10  Richard Guenther  <rguenther@suse.de>
19833
19834         PR lto/44889
19835         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19836         helper function.
19837         (gimple_types_compatible_p): Similar to pointed-to
19838         types allow and merge a mix of complete and incomplete aggregate.
19839         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19840         (iterative_hash_gimple_type): Adjust for that.
19841
19842 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19843
19844         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19845
19846 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19847
19848         PR objc/44140
19849         * config/darwin.c (output_objc_section_asm_op): Save and restore
19850         section when outputting ObjC section list.
19851
19852 2010-07-09  Jan Hubicka  <jh@suse.cz>
19853
19854         * lto-streamer-out.c (produce_symtab): Do not write alias
19855         cgraph/varpool nodes.
19856
19857 2010-07-09  Jan Hubicka  <jh@suse.cz>
19858
19859         * tree-inline.c (declare_return_variable): Fix ICE while
19860         inlining DECL_BY_VALUE function not in SSA form
19861
19862 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19863
19864         PR tree-optimization/44576
19865         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19866         New.  Pull out from is_loop_prefetching_profitable to implement
19867         the trip count to ahead ratio heuristic.
19868         (mem_ref_count_reasonable_p): New.  Pull out from
19869         is_loop_prefetching_profitable to implement the instruction to
19870         memory reference ratio heuristic.  Also consider not reasonable if
19871         the memory reference count is above a threshold (to avoid
19872         explosive compilation time.
19873         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19874         is_loop_prefetching_profitable to implement the instruction to
19875         prefetch ratio heuristic.
19876         (is_loop_prefetching_profitable): Removed.
19877         (loop_prefetch_arrays): Distribute the cost analysis across the
19878         function to allow early exit of the prefetch analysis.
19879         is_loop_prefetching_profitable is splitted into three functions,
19880         with each one called as early as possible.
19881         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19882         number of memory references in a loop is considered too many.
19883
19884 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19885
19886         * reload.c (find_reloads): Don't clear badop if we have a winreg
19887         alternative, but not win, and the class only has fixed regs.
19888         * hard-reg-set.h (class_only_fixed_regs): Declare.
19889         * reginfo.c (class_only_fixed_regs): New array.
19890         (init_reg_sets_1): Initialize it.
19891         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19892         discourage alternatives using the stack pointer.
19893
19894         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19895
19896         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19897
19898         * config/arm/arm.md (cbranchqi4): Fix array size.
19899         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19900         calculating length.
19901
19902 2010-07-09  Richard Guenther  <rguenther@suse.de>
19903
19904         * gimple.c (struct type_fixup_s): New struct and VEC type.
19905         (gimple_register_type_fixups): New static global.
19906         (gimple_queue_type_fixup): New function.
19907         (gimple_types_compatible_p): Queue type fixups instead of
19908         applying them here.
19909         (gimple_register_type): Apply queued fixups for the
19910         canonical type.  Empty the type fixup queue.
19911
19912 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19913
19914         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19915         * configure: Regenerate.
19916         * config.in: Ditto.
19917
19918 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19919             Denys Vlasenko  <dvlasenk@redhat.com>
19920             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19921
19922         PR tree-optimization/28632
19923         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19924         (extract_range_from_binary_expr): Further optimize
19925         BIT_AND_EXPR and BIT_IOR_EXPR.
19926
19927 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19928
19929         * tree-if-conv.c (fold_or_predicates): New.
19930         (add_to_predicate_list): Call it.
19931
19932 2010-07-09  Richard Guenther  <rguenther@suse.de>
19933
19934         PR middle-end/44890
19935         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19936         if base is a pointer.
19937         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19938
19939 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19940
19941         PR target/44877
19942         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19943         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19944         builtin mask for load/store builtins.
19945
19946 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19947
19948         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19949         for "lock addl".
19950         * configure: Regenerate.
19951         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19952         Remove TARGET_MACHO.
19953
19954 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19955
19956         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19957         default ISA flags.
19958         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19959
19960 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19961
19962         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19963
19964 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19965
19966         * config/picochip/picochip.md (commsTestPort): Emit more
19967         efficient sequence for tstport instruction.
19968
19969 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19970
19971         * config/i386/i386.c (ix86_veclib_handler): Make static.
19972
19973 2010-07-09  Richard Guenther  <rguenther@suse.de>
19974
19975         PR tree-optimization/44852
19976         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19977         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19978         in MEM_REF.
19979         (indirect_refs_may_alias_p): Likewise.
19980         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19981
19982 2010-07-09  Richard Guenther  <rguenther@suse.de>
19983
19984         PR tree-optimization/44882
19985         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19986         sets do conflict.
19987         (vectorizable_load): Likewise.
19988
19989 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19990
19991         PR target/40657
19992         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19993         All callers changed.
19994         Handle the case when we're called for the epilogue.
19995         (thumb_unexpanded_epilogue): Use it.
19996         (thumb1_expand_epilogue): Likewise.
19997
19998 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19999
20000         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
20001         both ranges are range_int_cst_p with non-negative minimum,
20002         try harder to derive smaller range.
20003
20004 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20005
20006         * genrecog.c: Include diagnostic-core.h before toplev.h.
20007         * genoutput.c: Likewise.
20008         * genextract.c: Likewise.
20009         * genautomata.c: Likewise.
20010         * genemit.c: Likewise.
20011         * genpeep.c: Likewise.
20012         * genattrtab.c: Likewise.
20013         * genconditions.c: Likewise.
20014         * genpreds.c: Likewise.
20015
20016 2010-07-08  Andi Kleen  <ak@linux.intel.com>
20017
20018         * lto-section-in.c (lto_section_name): Add missing comma.
20019
20020 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
20021
20022         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
20023         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
20024         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
20025         (ia64_override_options): Rename to...
20026         (ia64_option_override): ... this one. Make static.
20027
20028 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20029
20030         PR middle-end/44843
20031         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
20032         pointed-to type of the offset in a MEM_REF to compute the alignment.
20033
20034 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
20035
20036         * final.c (final_scan_insn): Replace
20037         TARGET_UNWIND_INFO macro check by unwind_emit
20038         hook NULL check.
20039         * targhooks.c (default_unwind_emit): Removed.
20040         * targhooks.h (default_unwind_emit): Likewise.
20041         * target.def (unwind_emit): Set default value to NULL.
20042
20043         * config/i386/i386-protos.h (ix86_asm_output_function_label):
20044         New prototype.
20045         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
20046         for NULL fntype argument and allow 64-bit targets.
20047         (ix86_asm_output_function_label): New function.
20048         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
20049         (ix86_handle_fndecl_attribute): Likewise.
20050         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
20051         * doc/doc/tm.texi: Regenerated.
20052         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
20053         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
20054         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
20055         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
20056         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20057         * config/elfos.h: Likewise.
20058         * config/i386/cygming.h: Likewise.
20059         * config/netbsd-aout.h: Likewise.
20060         * config/openbsd.h: Likewise.
20061         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
20062         by ix86_asm_output_function_label function call.
20063         * varasm.c (assemble_start_function): Use
20064         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20065
20066 2010-07-08  Jan Hubicka  <jh@suse.cz>
20067
20068         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
20069         New function.
20070         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
20071         Declare.
20072         * ipa-cp.c (ipcp_estimate_growth): Use it.
20073         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
20074         Likewise.
20075
20076 2010-07-08  Jan Hubicka  <jh@suse.cz>
20077
20078         * tree-inline.c (declare_return_variable): Allocate annotation for new
20079         temporary.
20080
20081 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20082
20083         PR tree-optimization/44710
20084         * tree-if-conv.c (parse_predicate): New.
20085         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
20086         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
20087
20088 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20089
20090         * common.opt (ftree-loop-if-convert): New flag.
20091         * doc/invoke.texi (ftree-loop-if-convert): Documented.
20092         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
20093         when flag_tree_loop_if_convert is set.
20094
20095 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
20096
20097         * config/i386/i386.c: Use short syntax for function calls
20098         through function pointers.
20099         * config/i386/i386.md: Ditto.
20100
20101 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20102
20103         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
20104
20105 2010-07-08  Richard Guenther  <rguenther@suse.de>
20106
20107         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
20108         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
20109
20110 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
20111
20112         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
20113         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
20114         (loc_list_from_tree): Likewise.
20115         (output_loc_operands): Handle outputting DW_OP_const[48]u
20116         with loc->dtprel set.
20117         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
20118
20119 2010-07-08  Jan Hubicka  <jh@suse.cz>
20120
20121         * ipa.c: Include pointer-set.h
20122         (cgraph_externally_visible_p): New attribute ALIASED;
20123         when in LTO, hidden symbols are local unless they are aliased.
20124         (function_and_variable_visibility): Compute aliased nodes;
20125         handle LTO and hidden symbol on functions and vars.
20126         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
20127         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
20128
20129 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20130
20131         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20132         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20133         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20134         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20135         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20136         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
20137         (ix86_gen_probe_stack_range): Likewise.
20138         (override_options): Set them.
20139         (ix86_target_stack_probe): New function.
20140         (ix86_compute_frame_layout): Force use of push instructions to
20141         save registers if stack checking with probes is enabled.
20142         (get_scratch_register_on_entry): New function.
20143         (release_scratch_register_on_entry): Likewise.
20144         (ix86_adjust_stack_and_probe): Likewise.
20145         (output_adjust_stack_and_probe): Likewise.
20146         (ix86_emit_probe_stack_range): Likewise.
20147         (output_probe_stack_range): Likewise.
20148         (ix86_expand_prologue): Emit stack checking code if static built-in
20149         stack checking is enabled.
20150         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
20151         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
20152         (output_adjust_stack_and_probe): Likewise.
20153         (output_probe_stack_range): Likewise.
20154         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20155         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
20156         TARGET_STACK_PROBE.
20157         (allocate_stack_worker_64): Likewise.
20158         (allocate_stack): Likewise.
20159         (adjust_stack_and_probe): New insn.
20160         (probe_stack_range): Likewise.
20161
20162 2010-07-08  Richard Guenther  <rguenther@suse.de>
20163
20164         PR tree-optimization/44831
20165         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
20166         a MEM_REF preserving TBAA info of the original dereference.
20167         Dereference the original pointer if the address is not invariant.
20168         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
20169         at least one invariant address that we are going to dereference.
20170
20171 2010-07-08  Richard Guenther  <rguenther@suse.de>
20172
20173         PR tree-optimization/44861
20174         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
20175         information when building MEM_REFs.
20176         (vectorizable_load): Likewise.
20177         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
20178
20179 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20180
20181         * config/sol2-c.c: Do not include diagnostic-core.h.
20182
20183 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20184
20185         PR bootstrap/44768
20186         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
20187         with respect to current_function_decl. Pass decl of the function.
20188         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
20189         * ipa-inline.c (compute_inline_parameters): Pass decl to
20190         estimated_stack_frame_size.
20191
20192 2010-07-08  Richard Guenther  <rguenther@suse.de>
20193
20194         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
20195         New function.
20196         (valueize_refs): Call it.
20197
20198 2010-07-08  Richard Guenther  <rguenther@suse.de>
20199
20200         PR rtl-optimization/44838
20201         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
20202         SSA form do not use pointer equivalence.
20203
20204 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20205
20206         * dwarf2out.c (AT_linkage_name): Delete.
20207         (add_linkage_attr): New function.
20208         (add_linkage_name): Call it to emit the linkage attribute.
20209         (dwarf2out_finish): Likewise.
20210         (move_linkage_attr): Explicitly accept both attribute variants.
20211
20212 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20213
20214         * toplev.h: Do not include diagnostic-core.h.
20215         Include diagnostic-core.h in every file that includes toplev.h.
20216         * c-tree.h: Do not include toplev.h.
20217         * pretty-print.h: Update comment.
20218         * Makefile.in: Update dependencies.
20219         * alias.c: Include diagnostic-core.h in every file that includes
20220         toplev.h.
20221         * attribs.c: Likewise.
20222         * auto-inc-dec.c: Likewise.
20223         * bb-reorder.c: Likewise.
20224         * bt-load.c: Likewise.
20225         * caller-save.c: Likewise.
20226         * calls.c: Likewise.
20227         * cfg.c: Likewise.
20228         * cfganal.c: Likewise.
20229         * cfgbuild.c: Likewise.
20230         * cfgcleanup.c: Likewise.
20231         * cfghooks.c: Likewise.
20232         * cfgloop.c: Likewise.
20233         * combine.c: Likewise.
20234         * config/alpha/alpha.c: Likewise.
20235         * config/arc/arc.c: Likewise.
20236         * config/arm/arm.c: Likewise.
20237         * config/arm/pe.c: Likewise.
20238         * config/avr/avr.c: Likewise.
20239         * config/bfin/bfin.c: Likewise.
20240         * config/cris/cris.c: Likewise.
20241         * config/crx/crx.c: Likewise.
20242         * config/darwin-c.c: Likewise.
20243         * config/darwin.c: Likewise.
20244         * config/fr30/fr30.c: Likewise.
20245         * config/frv/frv.c: Likewise.
20246         * config/h8300/h8300.c: Likewise.
20247         * config/host-darwin.c: Likewise.
20248         * config/i386/i386.c: Likewise.
20249         * config/i386/netware.c: Likewise.
20250         * config/i386/nwld.c: Likewise.
20251         * config/i386/winnt-cxx.c: Likewise.
20252         * config/i386/winnt-stubs.c: Likewise.
20253         * config/i386/winnt.c: Likewise.
20254         * config/ia64/ia64-c.c: Likewise.
20255         * config/ia64/ia64.c: Likewise.
20256         * config/iq2000/iq2000.c: Likewise.
20257         * config/lm32/lm32.c: Likewise.
20258         * config/m32c/m32c-pragma.c: Likewise.
20259         * config/m32c/m32c.c: Likewise.
20260         * config/m32r/m32r.c: Likewise.
20261         * config/m68hc11/m68hc11.c: Likewise.
20262         * config/m68k/m68k.c: Likewise.
20263         * config/mcore/mcore.c: Likewise.
20264         * config/mep/mep-pragma.c: Likewise.
20265         * config/mep/mep.c: Likewise.
20266         * config/mmix/mmix.c: Likewise.
20267         * config/mn10300/mn10300.c: Likewise.
20268         * config/moxie/moxie.c: Likewise.
20269         * config/pa/pa.c: Likewise.
20270         * config/pdp11/pdp11.c: Likewise.
20271         * config/picochip/picochip.c: Likewise.
20272         * config/rs6000/rs6000-c.c: Likewise.
20273         * config/rs6000/rs6000.c: Likewise.
20274         * config/rx/rx.c: Likewise.
20275         * config/s390/s390.c: Likewise.
20276         * config/score/score.c: Likewise.
20277         * config/score/score3.c: Likewise.
20278         * config/score/score7.c: Likewise.
20279         * config/sh/sh.c: Likewise.
20280         * config/sh/symbian-base.c: Likewise.
20281         * config/sh/symbian-c.c: Likewise.
20282         * config/sh/symbian-cxx.c: Likewise.
20283         * config/sol2-c.c: Likewise.
20284         * config/sol2.c: Likewise.
20285         * config/sparc/sparc.c: Likewise.
20286         * config/spu/spu.c: Likewise.
20287         * config/stormy16/stormy16.c: Likewise.
20288         * config/v850/v850-c.c: Likewise.
20289         * config/v850/v850.c: Likewise.
20290         * config/vax/vax.c: Likewise.
20291         * config/vxworks.c: Likewise.
20292         * config/xtensa/xtensa.c: Likewise.
20293         * convert.c: Likewise.
20294         * cse.c: Likewise.
20295         * cselib.c: Likewise.
20296         * dbgcnt.c: Likewise.
20297         * dbxout.c: Likewise.
20298         * ddg.c: Likewise.
20299         * dominance.c: Likewise.
20300         * emit-rtl.c: Likewise.
20301         * explow.c: Likewise.
20302         * expmed.c: Likewise.
20303         * fixed-value.c: Likewise.
20304         * fold-const.c: Likewise.
20305         * fwprop.c: Likewise.
20306         * gcse.c: Likewise.
20307         * ggc-common.c: Likewise.
20308         * ggc-page.c: Likewise.
20309         * ggc-zone.c: Likewise.
20310         * gimple-low.c: Likewise.
20311         * gimplify.c: Likewise.
20312         * graph.c: Likewise.
20313         * haifa-sched.c: Likewise.
20314         * ifcvt.c: Likewise.
20315         * implicit-zee.c: Likewise.
20316         * integrate.c: Likewise.
20317         * ira-build.c: Likewise.
20318         * ira-color.c: Likewise.
20319         * ira-conflicts.c: Likewise.
20320         * ira-costs.c: Likewise.
20321         * ira-lives.c: Likewise.
20322         * ira.c: Likewise.
20323         * lists.c: Likewise.
20324         * loop-doloop.c: Likewise.
20325         * loop-iv.c: Likewise.
20326         * lto-opts.c: Likewise.
20327         * lto-symtab.c: Likewise.
20328         * main.c: Likewise.
20329         * modulo-sched.c: Likewise.
20330         * optabs.c: Likewise.
20331         * params.c: Likewise.
20332         * plugin.c: Likewise.
20333         * postreload-gcse.c: Likewise.
20334         * postreload.c: Likewise.
20335         * predict.c: Likewise.
20336         * profile.c: Likewise.
20337         * real.c: Likewise.
20338         * regcprop.c: Likewise.
20339         * reginfo.c: Likewise.
20340         * regmove.c: Likewise.
20341         * reorg.c: Likewise.
20342         * resource.c: Likewise.
20343         * rtl.c: Likewise.
20344         * rtlanal.c: Likewise.
20345         * sched-deps.c: Likewise.
20346         * sched-ebb.c: Likewise.
20347         * sched-rgn.c: Likewise.
20348         * sdbout.c: Likewise.
20349         * sel-sched-dump.c: Likewise.
20350         * sel-sched-ir.c: Likewise.
20351         * simplify-rtx.c: Likewise.
20352         * stmt.c: Likewise.
20353         * stor-layout.c: Likewise.
20354         * store-motion.c: Likewise.
20355         * targhooks.c: Likewise.
20356         * tree-cfg.c: Likewise.
20357         * tree-cfgcleanup.c: Likewise.
20358         * tree-dump.c: Likewise.
20359         * tree-eh.c: Likewise.
20360         * tree-inline.c: Likewise.
20361         * tree-nomudflap.c: Likewise.
20362         * tree-object-size.c: Likewise.
20363         * tree-optimize.c: Likewise.
20364         * tree-outof-ssa.c: Likewise.
20365         * tree-phinodes.c: Likewise.
20366         * tree-profile.c: Likewise.
20367         * tree-ssa-ccp.c: Likewise.
20368         * tree-ssa-coalesce.c: Likewise.
20369         * tree-ssa-live.c: Likewise.
20370         * tree-ssa-loop-niter.c: Likewise.
20371         * tree-ssa-loop-prefetch.c: Likewise.
20372         * tree-ssa-loop.c: Likewise.
20373         * tree-ssa-structalias.c: Likewise.
20374         * tree-ssa-uninit.c: Likewise.
20375         * tree-ssa.c: Likewise.
20376         * tree-vect-data-refs.c: Likewise.
20377         * tree-vect-loop-manip.c: Likewise.
20378         * tree-vect-loop.c: Likewise.
20379         * tree-vect-patterns.c: Likewise.
20380         * tree-vect-stmts.c: Likewise.
20381         * tree-vrp.c: Likewise.
20382         * varasm.c: Likewise.
20383         * vec.c: Likewise.
20384         * web.c: Likewise.
20385         * xcoffout.c: Likewise.
20386
20387 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20388
20389         * gengtype.c (write_field_root): New function.
20390         (write_root): Use it.
20391
20392 2010-07-07  Wei Guozhi  <carrot@google.com>
20393
20394         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20395         of lowest bits to lshift/compare): Add a missing line.
20396
20397 2010-07-07  Wei Guozhi  <carrot@google.com>
20398
20399         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20400         of lowest bits to lshift/compare): New.
20401
20402 2010-07-07  Tom Tromey  <tromey@redhat.com>
20403
20404         * doc/tm.texi: Update.
20405         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20406         Add @hook.
20407         * target.def (want_debug_pub_sections): New hook.
20408         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20409         * dwarf2out.c (add_pubname_string): Check
20410         targetm.want_debug_pub_sections.
20411         (add_pubname): Likewise.
20412         (add_pubtype): Likewise.
20413
20414 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20415
20416         * genautomata.c (output_automata_list_min_issue_delay_code):
20417         Correctly decompress min_issue_delay.
20418
20419 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20420
20421         PR rtl-optimization/44404
20422         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20423         possible, use reg_overlap_mentioned_p instead.
20424
20425 2010-07-07  Duncan Sands  <baldrick@free.fr>
20426
20427         PR middle-end/41355
20428         * tree.c (build_function_type_skip_args): Copy the original type using
20429         build_distinct_type_copy rather than copy_node.
20430
20431 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20432
20433         PR target/44850
20434         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20435         revision 161876.
20436         (ix86_expand_prologue): Likewise.
20437         (ix86_handle_fndecl_attribute): Likewise.
20438         (ix86_asm_declare_function_name): Likewise.
20439         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20440         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20441         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20442         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20443         * doc/extend.texi: Likewise.
20444
20445 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20446
20447         PR target/44844
20448         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20449         retry if the carry flag isn't valid.
20450         (rdrand<mode>_1): New.
20451
20452 2010-07-07  Richard Guenther  <rguenther@suse.de>
20453
20454         PR middle-end/44790
20455         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20456         for expanding the constant offset for MEM_REFs.
20457
20458 2010-07-07  Richard Guenther  <rguenther@suse.de>
20459
20460         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20461         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20462         * gimple.h (is_gimple_operand): Remove.
20463         * gimple.c (is_gimple_operand): Likewise.
20464         (walk_gimple_op): Fix wi->val_only setting for calls.
20465         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20466         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20467         invalid gimple calls.
20468
20469 2010-07-06  Jan Hubicka  <jh@suse.cz>
20470
20471         * lto-cgraph.c (output_cgraph): Add missing declaration.
20472
20473 2010-07-06  Jan Hubicka  <jh@suse.cz>
20474
20475         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20476         partition.
20477
20478 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20479
20480         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20481         * doc/rtl.texi (Debug Information): New node.
20482         (NOTE_INSN_VAR_LOCATION): Document.
20483         (debug_insn): Likewise.
20484         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20485
20486 2010-07-07  Jan Hubicka  <jh@suse.cz>
20487
20488         With parts by Richard Guenther.
20489
20490         PR middle-end/44813
20491         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20492         for functions passed by reference.
20493         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20494         in memory when passed by reference.
20495         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20496         beggining.
20497         * ipa-split.c (split_function): Cleanup way return value is passed;
20498         handle SSA DECL_BY_REFERENCE retvals.
20499         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20500         DECL_BY_REFERENCE is set.
20501         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20502         find_what_p_points_to): Handle RESULT_DECL.
20503         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20504         when passing by reference ensure that RESULT_DECL is gimple_val.
20505         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20506         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20507
20508 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20509
20510         PR rtl-optimization/44787
20511         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20512         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20513
20514 2010-07-06  Jan Hubicka  <jh@suse.cz>
20515
20516         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20517         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20518         with body can prevail.
20519         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20520         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20521         * cgraph.c (cgraph_get_node_or_alias): New function.
20522         * cgraph.h (cgraph_get_node_or_alias): Declare.
20523
20524 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20525
20526         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20527         support.
20528         (ix86_expand_prologue): Likewise.
20529         (ix86_handle_fndecl_attribute): Likewise.
20530         (ix86_asm_declare_function_name): New function for
20531         ASM_DECLARE_FUNCTION_NAME.
20532         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20533         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20534         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20535         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20536         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20537         attribute.
20538
20539 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20540
20541         * config/i386/i386.md (immediate_operand): New mode attribute.
20542
20543         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20544         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20545         using P mode iterator.
20546         (pro_epilogue_adjust_stack_di_2): Rename from
20547         pro_epilogue_adjust_stack_rex64_2.
20548
20549         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20550
20551 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20552
20553         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20554         through gen_mov_insv_1 function pointer.
20555         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20556         gen_truncxf<mode>2 through gen_truncxf function pointer.
20557         (remainder<mode>3): Ditto.
20558         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20559         (allocate_stack): Call gen_allocate_stack_worker_64 or
20560         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20561         function pointer.
20562         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20563         function pointer.
20564
20565 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20566
20567         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20568         operand constraint instead of <r><i>m.
20569
20570 2010-07-06  Richard Guenther  <rguenther@suse.de>
20571
20572         PR middle-end/44828
20573         * convert.c (convert_to_integer): Watch out for overflowing
20574         MULT_EXPR as well.
20575
20576 2010-07-05  Jan Hubicka  <jh@suse.cz>
20577
20578         * lto-streamer.c (write_symbol_vec): Rename to ...
20579         (write_symbol) ... this one; write only symbol given and when
20580         present in cache. Sanity check that what is defined is present
20581         in cgraph/varpool with body/finalized decl.
20582         (write_symbols_of_kind): Remove.
20583         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20584         pairs to produce symtab.
20585         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20586         when doing WPA streaming.
20587
20588 2010-07-05  Jan Hubicka  <jh@suse.cz>
20589
20590         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20591         function is still available to fold into.
20592
20593 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20594
20595         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20596         * function.h (struct_function): Change type of local_decls field
20597         to a VEC.
20598         (add_local_decl): New function.
20599         (FOR_EACH_LOCAL_DECL): New macro.
20600         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20601         cfun->local_decls.
20602         (estimated_stack_frame_size): Likewise.
20603         (expand_used_vars): Likewise.
20604         * cgraphbuild.c (build_cgraph_edges): Likewise.
20605         * function.c (instantiate_decls_1): Likewise.
20606         * ipa-struct-reorg.c (build_data_structure): Likewise.
20607         * ipa-type-escape.c (analyze_function): Likewise.
20608         * lto-streamer-in.c (input_function): Likewise.
20609         * lto-streamer-out.c (output_function): Likewise.
20610         * tree-ssa-live.c (remove_unused_locals): Likewise.
20611         * tree.c (free_lang_data_in_decl): Likewise.
20612         (find_decls_types_in_node): Likewise.
20613         * omp-low.c (remove_exit_barrier): Likewise.
20614         (expand_omp_taskreg): Likewise.
20615         (list2chain): Rename to...
20616         (vec2chain): ...this.  Adjust.
20617         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20618         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20619         * gimple-low.c (record_vars_into): Likewise.
20620         * tree-inline.c (remap_decls): Likewise.
20621         (declare_return_variable): Likewise.
20622         (declare_inline_vars): Likewise.
20623         (copy_forbidden): Adjust for new type of cfun->local_decls.
20624         (add_local_variables): New function.
20625         (expand_call_inline): Call it.
20626         (tree_function_versioning): Likewise.
20627
20628 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20629
20630         AVX Programming Reference (June, 2010)
20631         * config/i386/cpuid.h (bit_F16C): New.
20632         (bit_RDRND): Likewise.
20633         (bit_FSGSBASE): Likewise.
20634
20635         * config/i386/i386-builtin-types.def: Add
20636         "DEF_FUNCTION_TYPE (UINT16)", function types for
20637         float16 <-> float conversions and
20638         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20639
20640         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20641         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20642         OPTION_MASK_ISA_F16C.
20643
20644         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20645         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20646         (OPTION_MASK_ISA_F16C_SET): Likewise.
20647         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20648         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20649         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20650         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20651         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20652         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20653         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20654         (override_options): Handle them.
20655         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20656         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20657         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20658         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20659         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20660         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20661         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20662         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20663         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20664         (bdesc_args): Likewise.
20665         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20666         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20667         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20668         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20669         Handle non-memory store.
20670
20671         * config/i386/i386.h (TARGET_FSGSBASE): New.
20672         (TARGET_RDRND): Likewise.
20673         (TARGET_F12C): Likewise.
20674
20675         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20676         (UNSPEC_VCVTPS2PH): Likewise.
20677         (UNSPECV_RDFSBASE): Likewise.
20678         (UNSPECV_RDGSBASE): Likewise.
20679         (UNSPECV_WRFSBASE): Likewise.
20680         (UNSPECV_WRGSBASE): Likewise.
20681         (UNSPECV_RDRAND): Likewise.
20682         (rdfsbase<mode>): Likewise.
20683         (rdgsbase<mode>): Likewise.
20684         (wrfsbase<mode>): Likewise.
20685         (wrgsbase<mode>): Likewise.
20686         (rdrand<mode>): Likewise.
20687
20688         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20689
20690         * config/i386/immintrin.h (_rdrand_u16): New.
20691         (_rdrand_u32): Likewise.
20692         (_readfsbase_u32): Likewise.
20693         (_readfsbase_u64): Likewise.
20694         (_readgsbase_u32): Likewise.
20695         (_readgsbase_u64): Likewise.
20696         (_writefsbase_u32): Likewise.
20697         (_writefsbase_u64): Likewise.
20698         (_writegsbase_u32): Likewise.
20699         (_writegsbase_u64): Likewise.
20700         (_rdrand_u64): Likewise.
20701         (_cvtsh_ss): Likewise.
20702         (_mm_cvtph_ps): Likewise.
20703         (_mm256_cvtph_ps): Likewise.
20704         (_cvtss_sh): Likewise.
20705         (_mm_cvtps_ph): Likewise.
20706         (_mm256_cvtps_ph): Likewise.
20707
20708         * config/i386/sse.md (vcvtph2ps): New.
20709         (*vcvtph2ps_load): Likewise.
20710         (vcvtph2ps256): Likewise.
20711         (vcvtps2ph): Likewise.
20712         (*vcvtps2ph): Likewise.
20713         (*vcvtps2ph_store): Likewise.
20714         (vcvtps2ph256): Likewise.
20715
20716         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20717
20718         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20719
20720 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20721
20722         PR bootstrap/44512
20723         * genenums.c (main): Output include of insn-constants.h
20724         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20725
20726 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20727
20728         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20729         (override_options): Initialize it.
20730         (ix86_expand_prologue): Use it.
20731
20732 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20733
20734         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20735
20736 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20737
20738         * double-int.h (fit_double_type): Remove declaration.
20739         * double-int.c (fit_double_type): Remove function.
20740         * tree.h (int_fits_type_p): Adjust prototype.
20741         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20742         instead of fit_double_type.
20743         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20744         instead of fit_double_type and build_int_cst_wide.
20745         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20746         instead of fit_double_type and build_int_cst_wide.
20747         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20748         of fit_double_type.
20749
20750 2010-07-05  Jan Hubicka  <jh@suse.cz>
20751
20752         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20753         in_other_partition.
20754         * lto-cgraph.c (referenced_from_other_partition_p,
20755         reachable_from_other_partition_p): Use in_other_partition flags.
20756         (output_node, output_varpool_node): COMDAT nodes always have private
20757         copies and thus are never used from other partition.
20758
20759 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20760
20761         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20762         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20763         * config/ia64/ia64.c Include reload.h.
20764         (ia64_memory_move_cost): New function.
20765         (TARGET_MEMORY_MOVE_COST): Define.
20766         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20767         memory_move_cost.
20768
20769 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20770
20771         PR middle-end/42505
20772         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20773         comments about cost model.
20774         (try_add_cand_for):  Add second strategy for choosing initial set
20775         based on original IVs, controlled by ORIGINALP argument.
20776         (get_initial_solution): Add ORIGINALP argument.
20777         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20778         (find_optimal_iv_set): Try two different strategies for choosing
20779         the IV set, and return the one with lower cost.
20780
20781 2010-07-05  Richard Guenther  <rguenther@suse.de>
20782
20783         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20784
20785 2010-07-05  Richard Guenther  <rguenther@suse.de>
20786
20787         * tree.c (reference_alias_ptr_type): New function.
20788         * tree.h (reference_alias_ptr_type): Declare.
20789         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20790         allow non-TARGET_MEM_REF new refs.
20791         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20792         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20793         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20794         (create_mem_ref): Get alias pointer type.  Adjust calls to
20795         create_mem_ref_raw.
20796         (maybe_fold_tmr): Likewise.
20797         * tree-flow.h (create_mem_ref): Adjust prototype.
20798
20799 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20800
20801         PR c++/44808
20802         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20803         *from_p is VAR_DECL.
20804
20805 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20806
20807         * tree.h (build_call_list): Remove.
20808         * tree.c (build_call_list): Remove.
20809
20810 2010-07-05  Richard Guenther  <rguenther@suse.de>
20811
20812         * double-int.h (double_int_sub): Declare.
20813         * double-int.c (double_int_sub): New function.
20814         * dwarf2out.c (field_byte_offset): Use it.
20815         * fixed-value.c (do_fixed_add): Likewise.
20816         (do_fixed_multiply): Likewise.
20817         (do_fixed_divide): Likewise.
20818         * tree-predcom.c (add_ref_to_chain): Likewise.
20819         (determine_roots_comp): Likewise.
20820         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20821
20822 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20823
20824         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20825         implementations.
20826
20827 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20828
20829         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20830         * arm-modes.def (CC_NOTB): Don't define.
20831         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20832         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20833         (LTUGEU): New code_iterator.
20834         (cnb, optab): New corresponding code_attrs.
20835         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20836         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20837         using LTUGEU.
20838         (addsi3_carryin_shift_<optab>): Likewise.
20839         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20840         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20841         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20842         (subsi3_compare): Renamed from subsi3_compare0_c.
20843         Change CC_NOTB to CC.
20844         (arm_subsi3_insn): Allow constants for operand 0.
20845         (compare_scc peephole for eq case): New.
20846         (compare_scc splitters): Change CC_NOTB to CC.
20847
20848 2010-07-05  Richard Guenther  <rguenther@suse.de>
20849
20850         * tree-ssa-loop-im.c (for_each_index): Do not handle
20851         ALIGN_INDIRECT_REF.
20852         (gen_lsm_tmp_name): Likewise.
20853         * tree-dump.c (dequeue_and_dump): Likewise.
20854         * tree-pretty-print.c (dump_generic_node): Likewise.
20855         (op_code_prio): Likewise.
20856         (op_symbol_code): Likewise.
20857         * tree.c (staticp): Likewise.
20858         (build1_stat): Likewise.
20859         * tree.h (INDIRECT_REF_P): Likewise.
20860         * fold-const.c (maybe_lvalue_p): Likewise.
20861         (operand_equal_p): Likewise.
20862         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20863         (ao_ref_init_from_vn_reference): Likewise.
20864         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20865         (find_interesting_uses_address): Likewise.
20866         * dwarf2out.c (loc_list_from_tree): Likewise.
20867         * gimplify.c (gimplify_expr): Likewise.
20868         * tree-eh.c (tree_could_trap_p): Likewise.
20869         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20870         * cfgexpand.c (expand_debug_expr): Likewise.
20871         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20872         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20873         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20874         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20875         * tree-ssa-operands.c (get_expr_operands): Likewise.
20876         * expr.c (safe_from_p): Likewise.
20877         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20878         * tree-vect-data-refs.c (vect_setup_realignment): Build
20879         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20880         * tree-vect-stmts.c (vectorizable_load): Likewise.
20881         * tree.def (ALIGN_INDIRECT_REF): Remove.
20882
20883 2010-07-05  Richard Guenther  <rguenther@suse.de>
20884
20885         PR tree-optimization/44784
20886         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20887         for inserted stmts.
20888         (find_or_generate_expression): Fix SCCVN insertion check.
20889
20890 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20891
20892         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20893         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20894         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20895         directives.
20896
20897 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20898
20899         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20900         statements that are not vectorized.
20901         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20902         in INSIDE_COST.
20903
20904 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20905
20906         PR bootstrap/44820
20907         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20908
20909 2010-07-05  Richard Guenther  <rguenther@suse.de>
20910
20911         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20912         RESULT_DECLs properly.
20913
20914 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20915
20916         PR rtl-optimization/44695
20917         * config/i386/i386.md (extract_code): Removed.
20918         (<u>divmodqi4): Likewise.
20919         (divmodqi4): New.
20920         (udivmodqi4): Likewise.
20921         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20922         (udivmodhiqi3): Likewise.
20923
20924 2010-07-04  Jan Hubicka  <jh@suse.cz>
20925
20926         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20927
20928 2010-07-04  Jan Hubicka  <jh@suse.cz>
20929
20930         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20931         is not already initialized.
20932
20933 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20934
20935         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20936         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20937         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20938         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20939         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20940         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20941         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20942         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20943         (sync_new_nand_optab): Redefine as macros.
20944         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20945         Delete.
20946         (direct_optab_index): New enum.
20947         (direct_optab_d): New structure.
20948         (direct_optab): New typedef.
20949         (direct_optab_table): Declare.
20950         (direct_optab_handler, set_direct_optab_handler): New functions.
20951         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20952         (sync_lock_release_optab): New macros.
20953         * optabs.c (direct_optab_table): New variable.
20954         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20955         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20956         cmpstr_optab and cmpstrn_optab.
20957         (emit_conditional_move): Likewise for movcc_optab.
20958         (can_conditionally_move_p): Likewise for movcc_gen_code.
20959         (init_insn_codes): Clear direct_optab_table.
20960         (init_optabs): Don't initialize the new "direct optabs" here.
20961         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20962         vcond_gen_code.
20963         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20964         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20965         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20966         (expand_sync_operation): Likewise other sync_*_optabs.
20967         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20968         to sync_compare_and_swap_optab.
20969         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20970         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20971         to the names of both.
20972         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20973         cmpstr_optab and cmpstrn_optab.
20974         (expand_builtin_lock_release): Likewise sync_lock_release.
20975         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20976         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20977         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20978         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20979         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20980         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20981         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20982         (sync_lock_test_and_set, sync_lock_release): Delete.
20983         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20984         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20985         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20986         macro optabs.
20987         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20988         the "optab" local variable.  Use direct_optab_handler for optab and
20989         sync_compare_and_swap_optab.
20990         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20991         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20992         reload_in_optab and reload_out_optab.
20993         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20994         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20995         * config/pa/pa.c (pa_secondary_reload): Likewise.
20996         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20997         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20998         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20999         (VMSupportsCS8_builtin): Likewise.
21000
21001 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21002
21003         * optabs.h (optab_handlers): Change type of insn_code to int.
21004         (optab_handler, set_optab_handler, convert_optab_handler)
21005         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
21006         CODE_FOR_nothing".
21007         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
21008         (init_insn_codes): Zero both the above arrays.
21009         (init_optabs): Never call init_insn_codes first time around.
21010
21011 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21012
21013         * optabs.h (optab_handler, convert_optab_handler): Turn into
21014         inline functions that return an insn code.
21015         (set_optab_handler, set_convert_optab_handler): New functions.
21016         * builtins.c: Replace optab_handler(X)->insn_code with
21017         optab_handler or set_optab_handler thoughout.  Likewise
21018         convert_optab_handler(X)->insn_code with convert_optab_handler
21019         and set_convert_optab_handler.
21020         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
21021         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
21022         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
21023         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
21024         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
21025         config/spu/spu.c: Likewise.
21026
21027 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21028
21029         PR target/44531
21030         * config.gcc (sh*-*-*): Use regular expressions instead of
21031         the 'i' modifier for sed substitutions.
21032
21033 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
21034
21035         * gimple.c (gimple_body): Comments added.
21036
21037 2010-07-04  Richard Guenther  <rguenther@suse.de>
21038
21039         PR middle-end/44809
21040         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
21041         of an INDIRECT_REF.
21042
21043 2010-07-04  Richard Guenther  <rguenther@suse.de>
21044
21045         PR tree-optimization/44479
21046         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
21047         extra SSA name copy statements which preserves points-to
21048         information.
21049         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21050         Copy points-to information for all pointers.  Properly handle
21051         MEM_REFs.
21052         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
21053         copy statements.
21054         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
21055         dependency.
21056
21057 2010-07-04  Richard Guenther  <rguenther@suse.de>
21058
21059         PR middle-end/44785
21060         * tree-inline.c (initialize_inlined_parameters): Do not
21061         re-use pointer-map slot over remap_type call.
21062
21063 2010-07-04  Richard Guenther  <rguenther@suse.de>
21064
21065         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
21066
21067 2010-07-04  Richard Guenther  <rguenther@suse.de>
21068
21069         PR tree-optimization/44656
21070         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
21071         again after value-replacing in the defintions lhs.
21072
21073 2010-07-04  Ira Rosen  <irar@il.ibm.com>
21074             Revital Eres  <eres@il.ibm.com>
21075
21076         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
21077         Document new arguments.
21078         * doc/tm.texi: Regenerate.
21079         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
21080         Handle unaligned store.
21081         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
21082         * target.def (builtin_vectorization_cost): Add new arguments.
21083         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
21084         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
21085         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
21086         (vect_vfa_segment_size): Fix indentation.
21087         * tree-vectorizer.h (struct _vect_peel_info): New.
21088         (struct _vect_peel_extended_info): New.
21089         (struct _loop_vec_info): Add new field for peeling hash table and a
21090         macro for its access.
21091         (VECT_MAX_COST): Define.
21092         (vect_get_load_cost): Declare.
21093         (vect_get_store_cost, vect_get_known_peeling_cost,
21094         vect_get_single_scalar_iteraion_cost): Likewise.
21095         (vect_supportable_dr_alignment): Add new argument.
21096         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
21097         field.
21098         (destroy_loop_vec_info): Free peeling hash table.
21099         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
21100         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
21101         vect_analyze_slp. Fix indentation.
21102         (vect_get_single_scalar_iteraion_cost): New function.
21103         (vect_get_known_peeling_cost): Likewise.
21104         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
21105         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
21106         statement. Move outside cost calculation inside unknown peeling case.
21107         Call vect_get_known_peeling_cost for known amount of peeling.
21108         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
21109         reference to the print message of forced alignment.
21110         (vect_verify_datarefs_alignment): Update call to
21111         vect_supportable_dr_alignment.
21112         (vect_get_data_access_cost): New function.
21113         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
21114         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
21115         vect_peeling_hash_choose_best_peeling): Likewise.
21116         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
21117         to store all the accesses in the loop and find best possible access to
21118         align using peeling for known alignment case. For unknown alignment
21119         check if stores are preferred or if peeling is worthy.
21120         (vect_find_same_alignment_drs): Analyze pairs of loads too.
21121         (vect_supportable_dr_alignment): Add new argument and check aligned
21122         accesses according to it.
21123         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
21124         (cost_for_stmt): Call vect_get_stmt_cost.
21125         (vect_model_simple_cost): Likewise.
21126         (vect_model_store_cost): Call vect_get_stmt_cost. Call
21127         vect_get_store_cost to calculate the cost of the statement.
21128         (vect_get_store_cost): New function.
21129         (vect_model_load_cost): Call vect_get_stmt_cost. Call
21130         vect_get_load_cost to calculate the cost of the statement.
21131         (vect_get_load_cost): New function.
21132         (vectorizable_store): Update call to vect_supportable_dr_alignment.
21133         (vectorizable_load): Likewise.
21134         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
21135         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
21136         arguments. Handle unaligned store.
21137         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
21138         (rs6000_builtin_support_vector_misalignment): Return true for word and
21139         double word alignments for VSX.
21140         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
21141         vect_supportable_dr_alignment and builtin_vectorization_cost.
21142
21143 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21144
21145         PR target/44597
21146         * config/pa/predicates.md (prefetch_cc_operand): Remove.
21147         (prefetch_nocc_operand): Likewise.
21148         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
21149         (prefetch_20): New insn.
21150         (prefetch_cc): Remove.
21151         (prefetch_nocc): Likewise.
21152
21153 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21154
21155         * expr.c (vector_mode_valid_p): Move to c-common.c.
21156         * expr.h (vector_mode_valid_p): Do not declare here.
21157         * system.h: Poison GCC_EXPR_H in front-ends.
21158         * Makefile.in: Update dependencies.
21159
21160 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21161
21162         PR target/44705
21163         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
21164
21165 2010-07-03  Jan Hubicka  <jh@suse.cz>
21166
21167         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
21168         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
21169         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
21170         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
21171         Likewise.
21172
21173         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
21174         Update timevars.V
21175         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
21176         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
21177         TV_IPA_LTO_DECL_OUT): New.
21178         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
21179
21180 2010-07-03  Jan Hubicka  <jh@suse.cz>
21181
21182         * ipa-inline.c (update_edge_key): Break out from ...
21183         update_callers_keys): ... here;
21184         (update_callee_keys): Update only the edges from caller to callee.
21185         (update_all_calle_keys): Do what update_calle_keys did.
21186         (decide_inlining_of_small_functions): Avoid recomputing of all
21187         callees when badness increase.
21188
21189 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21190
21191         * config/arm/arm.c (arm_attr_length_move_neon): New.
21192         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
21193         * config/arm/neon.md (define_mode_attr V_slen): Remove.
21194         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
21195         to compute length attribute.
21196
21197 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21198
21199         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
21200         as predicate for operand 1 and remove its constraint.
21201         * config/arm/predicates.md (vfp_register_operand): New.
21202         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
21203         (*push_fp_multi): Likewise.
21204
21205 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
21206
21207         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
21208
21209 2010-07-03  Jan Hubicka  <jh@suse.cz>
21210
21211         * config/i386/i386.c (override_options): Revert accidental commit.
21212
21213 2010-07-02  Le-Chun Wu  <lcwu@google.com>
21214
21215         PR c++/44128
21216         * doc/invoke.texi: Update documentation of -Wshadow.
21217
21218 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
21219             Julian Brown  <julian@codesourcery.com>
21220             Sandra Loosemore  <sandra@codesourcery.com>
21221
21222         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
21223         comparisons.  Adjust to take both operands.
21224         (arm_select_cc_mode): Handle DImode comparisons.
21225         (arm_gen_compare_reg): Generate a scratch register for DImode
21226         comparisons which require one.  Use xor for Thumb equality checks.
21227         (arm_const_double_by_immediates): New.
21228         (arm_print_operand): Allow 'Q' and 'R' for constants.
21229         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
21230         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
21231         arm_canonicalize_comparison.
21232         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
21233         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
21234         prototype.
21235         (arm_const_double_by_immediates): Declare.
21236         * config/arm/constraints.md (Di): New constraint.
21237         * config/arm/predicates.md (arm_immediate_di_operand)
21238         (arm_di_operand, cmpdi_operand): New.
21239         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
21240         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
21241         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
21242         (cstoredi4): Handle non-Cirrus also.
21243
21244 2010-07-02  Julian Brown  <julian@codesourcery.com>
21245             Sandra Loosemore  <sandra@codesourcery.com>
21246
21247         PR target/43703
21248         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
21249         (smax<mode>3): Disable for NEON float modes when
21250         flag_unsafe_math_optimizations is false.
21251         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
21252         (*mul<mode>3_neon)
21253         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
21254         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
21255         for NEON float modes when flag_unsafe_math_optimizations is false.
21256         (quad_halves_<code>v4sf): Only enable if
21257         flag_unsafe_math_optimizations is true.
21258         * doc/invoke.texi (ARM Options): Add note about floating point
21259         vectorization requiring -funsafe-math-optimizations.
21260
21261 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21262             Julian Brown  <julian@codesourcery.com>
21263
21264         * config/arm/neon.md (UNSPEC_VABA): Delete.
21265         (UNSPEC_VABAL): Delete.
21266         (UNSPEC_VABS): Delete.
21267         (UNSPEC_VMUL_N): Delete.
21268         (adddi3_neon): New.
21269         (subdi3_neon): New.
21270         (mul<mode>3add<mode>_neon): Make the pattern named.
21271         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
21272         (neon_vadd<mode>): Replace with define_expand, and move the remaining
21273         unspec parts...
21274         (neon_vadd<mode>_unspec): ...to this.
21275         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
21276         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
21277         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
21278         (neon_vaba<mode>): Rewrite in terms of vabd.
21279         (neon_vabal<mode>): Rewrite in terms of vabdl.
21280         (neon_vabs<mode>): Rewrite without unspec.
21281         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
21282         (*arm_subdi3): Likewise.
21283         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
21284         No_op attribute to disable assembly output checks.
21285         * config/arm/arm_neon.h: Regenerated.
21286         * doc/arm-neon-intrinsics.texi: Regenerated.
21287
21288 2010-07-02  Jan Hubicka  <jh@suse.cz>
21289
21290         * ipa-split.c (split_function): For aggregate values, set the return
21291         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21292         *<retval> = fncall.part ().
21293         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21294
21295 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21296
21297         * config/arm/neon.md (UNSPEC_VAND): Delete.
21298         (UNSPEC_VBIC): Delete.
21299         (UNSPEC_VCLZ): Delete.
21300         (UNSPEC_VCNT): Delete.
21301         (UNSPEC_VEOR): Delete.
21302         (UNSPEC_VORN): Delete.
21303         (UNSPEC_VORR): Delete.
21304         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21305         core registers too.
21306         (anddi3_neon): Likewise.
21307         (orndi3_neon): Likewise.
21308         (bicdi3_neon): Likewise.
21309         (xordi3_neon): Likewise.
21310         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21311         rid of unspec and handle unused operand.
21312         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21313         * config/arm/predicates.md (imm_for_neon_logic_operand):
21314         Require TARGET_NEON.
21315         (imm_for_neon_inv_logic_operand): Likewise.
21316         * config/arm/arm.md (define_split for logical_binary_operator):
21317         Disable for NEON registers.
21318         (anddi3): Add new define_expand, and rename the insn.  Disable
21319         this insn for NEON, where anddi3_neon now applies.
21320         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21321         (iordi3): As for anddi3.
21322         (xordi3): Likewise.
21323         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21324         as No_op to disable testing for exact instruction match.
21325         (Vorr): Likewise.
21326         (Veor): Likewise.
21327         (Vbic): Likewise.
21328         (Vorn): Likewise.
21329         * config/arm/arm_neon.h: Regenerated.
21330         * doc/arm-neon-intrinsics.texi: Regenerated.
21331
21332 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21333
21334         * expr.h (emit_stack_probe): Declare.
21335         * explow.c (emit_stack_probe): Make global.
21336         (anti_adjust_stack_and_probe): Fix comments.
21337         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21338         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21339         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21340         * config/sparc/sparc.c: Include except.h.
21341         (sparc_emit_probe_stack_range): New function.
21342         (output_probe_stack_range): Likewise.
21343         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21344         built-in stack checking is enabled.
21345         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21346         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21347         (probe_stack_range): New insn.
21348
21349 2010-07-02  Richard Guenther  <rguenther@suse.de>
21350
21351         PR target/43958
21352         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21353         for argument alignment.
21354
21355 2010-07-02  Jan Hubicka  <jh@suse.cz>
21356
21357         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21358         walk backwards from entry_bb to check only those basic block of header
21359         that might lead to execution of split part.
21360         (consider_split) ... here.
21361         (find_return_bb): Allow assignment in return BB.
21362         (find_retval): New.
21363         (split_function): Fix name of cloned function; take care of updating
21364         return value in return_bb containing move.
21365
21366 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21367
21368         PR target/44771
21369         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21370         used variable insn.
21371
21372 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21373
21374         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21375         (is_set_with_extension_DI): Delete.
21376         (struct zero_extend_info): New structure.
21377         (add_removable_zero_extend): New function.
21378         (find_removable_zero_extends): Use note_stores to find SETs.
21379         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21380
21381 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21382
21383         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21384         is_miss_rate_acceptable. Pull total_positions computation
21385         out of the loops.  Early return if miss_positions exceeds
21386         the acceptable threshold.
21387         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21388         is_miss_rate_acceptable after renaming of compute_miss_rate.
21389
21390 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21391
21392         PR middle-end/44576
21393         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21394         of 1000) for miss rate if the address diference is greater than or
21395         equal to the cache line size (the two reference will never hit the
21396         same cache line).
21397
21398 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21399
21400         PR target/42835
21401         * config/arm/arm-modes.def (CC_NOTB): New mode.
21402         * config/arm/arm.c (get_arm_condition_code): Handle it.
21403         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21404         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21405         (compare_scc): Now a define_and_split.  Add a number of extra
21406         splitters before it.
21407
21408         PR target/42172
21409         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21410         and ZERO_EXTEND.
21411         (arm_rtx_costs_1): Likewise.
21412         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21413         * config/arm/arm.md (is_arch6): New attribute.
21414         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21415         extendqisi2): Tighten the code somewhat, avoiding invalid
21416         RTL to occur in the expander patterns.
21417         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21418         (thumb1_zero_extendhisi2_v6): Delete.
21419         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21420         (thumb1_extendhisi2_v6): Delete.
21421         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21422         (thumb1_extendqisi2_v6): Delete.
21423         (zero_extendhisi2 for register input splitter): New.
21424         (zero_extendqisi2 for register input splitter): New.
21425         (thumb1_extendhisi2 for register input splitter): New.
21426         (extendhisi2 for register input splitter): New.
21427         (extendqisi2 for register input splitter): New.
21428         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21429         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21430         and add support for a register alternative requiring a split.
21431         (thumb1_zero_extendqisi2): Likewise.
21432         (arm_zero_extendqisi2): Likewise.
21433         (arm_extendhisi2): Likewise.
21434         (arm_extendqisi2): Likewise.
21435
21436 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21437
21438         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21439         instead of an unspec.
21440         (neon_expand_vector_init): Likewise.
21441         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21442         (UNSPEC_VDUP_LANE): Delete.
21443         (UNSPEC VDUP_N): Delete.
21444         (UNSPEC_VGET_HIGH): Delete.
21445         (UNSPEC_VGET_LANE): Delete.
21446         (UNSPEC_VGET_LOW): Delete.
21447         (UNSPEC_VMVN): Delete.
21448         (UNSPEC_VSET_LANE): Delete.
21449         (V_double_vector_mode): New.
21450         (vec_set<mode>_internal): Make code emitted match that for the
21451         corresponding intrinsics.
21452         (vec_setv2di_internal): Likewise.
21453         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21454         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21455         (neon_vset_lane<mode>): Combine double and quad patterns and
21456         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21457         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21458         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21459         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21460         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21461         with neon_vdup_lanev2di, adjusting the pattern from the latter
21462         to be predicable for consistency.
21463         (neon_vdup_lane<mode>_internal): New.
21464         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21465         to avoid using an unspec.
21466         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21467         (neon_vdup_lanev2di): Turn into a define_expand.
21468         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21469         (neon_vget_high<mode>): Replace with....
21470         (neon_vget_highv16qi): New pattern using canonical RTL.
21471         (neon_vget_highv8hi): Likewise.
21472         (neon_vget_highv4si): Likewise.
21473         (neon_vget_highv4sf): Likewise.
21474         (neon_vget_highv2di): Likewise.
21475         (neon_vget_low<mode>): Replace with....
21476         (neon_vget_lowv16qi): New pattern using canonical RTL.
21477         (neon_vget_lowv8hi): Likewise.
21478         (neon_vget_lowv4si): Likewise.
21479         (neon_vget_lowv4sf): Likewise.
21480         (neon_vget_lowv2di): Likewise.
21481
21482         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21483         test for this emitting vmov.
21484         (Vset_lane): Likewise.
21485         (Vdup_n): Likewise.
21486         (Vmov_n): Likewise.
21487
21488         * doc/arm-neon-intrinsics.texi: Regenerated.
21489
21490 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21491
21492         * config/arm/neon.md (vec_extractv2di): Correct error in register
21493         numbering to reconcile with neon_vget_lanev2di.
21494
21495 2010-07-02  Richard Guenther  <rguenther@suse.de>
21496
21497         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21498         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21499         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21500         points-to information.
21501
21502 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21503
21504         * config/s390/s390.c (override_options): Adopt prefetching
21505         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21506
21507 2010-07-02  Jan Hubicka  <jh@suse.cz>
21508
21509         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21510         (df_set_note): Just call add_reg_note.
21511         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21512         df_create_unused_note): Do not deal with lists of old notes.
21513         (df_note_bb_compute): Likewise.
21514
21515 2010-07-02  Richard Guenther  <rguenther@suse.de>
21516
21517         * tree-ssa-structalias.c (find_func_aliases): Handle
21518         pointer alignment via BIT_AND_EXPR.
21519         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21520
21521 2010-07-02  Richard Guenther  <rguenther@suse.de>
21522
21523         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21524         mismatching number of dimensions properly.
21525
21526 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21527
21528         PR target/44707
21529         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21530         (lo_sum (high ...) ...) patterns generated by earlier passes.
21531
21532 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21533
21534         * doc/install.texi (Prerequisites): Document Perl requirement on
21535         Solaris 2.
21536         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21537
21538 2010-07-02  Richard Guenther  <rguenther@suse.de>
21539
21540         PR middle-end/44777
21541         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21542
21543 2010-07-02  Jan Hubicka  <jh@suse.cz>
21544
21545         PR middle-end/44706
21546         * predict.c (predict_paths_for_bb): Handle case when control dependence
21547         BB has only abnormal edges.
21548
21549 2010-07-02  Richard Guenther  <rguenther@suse.de>
21550
21551         PR tree-optimization/44748
21552         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21553         the embedded conversion in MEM_REFs.
21554
21555 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21556
21557         * reload.c: Include toplev.h.
21558         * recog.c:  Likewise.
21559         * Makefile.in: Adjust dependencies.
21560
21561 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21562
21563         PR debug/44694
21564         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21565         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21566
21567 2010-07-01  Richard Guenther  <rguenther@suse.de>
21568
21569         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21570         types for offsets.
21571
21572 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21573
21574         PR target/44732
21575         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21576         Fix argument types.
21577
21578 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21579
21580         PR target/44727
21581         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21582         Make sure operand 0 dies.
21583
21584 2010-07-01  Richard Guenther  <rguenther@suse.de>
21585
21586         PR middle-end/42834
21587         PR middle-end/44468
21588         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21589         * doc/generic.texi (References to storage): Document MEM_REF.
21590         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21591         (print_call_name): Likewise.
21592         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21593         (build_simple_mem_ref_loc): New function.
21594         (mem_ref_offset): Likewise.
21595         * tree.h (build_simple_mem_ref_loc): Declare.
21596         (build_simple_mem_ref): Define.
21597         (mem_ref_offset): Declare.
21598         * fold-const.c: Include tree-flow.h.
21599         (operand_equal_p): Handle MEM_REF.
21600         (build_fold_addr_expr_with_type_loc): Likewise.
21601         (fold_comparison): Likewise.
21602         (fold_unary_loc): Fold
21603         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21604         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21605         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21606         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21607         (ptr_deref_may_alias_ref_p_1): Likewise.
21608         (ao_ref_base_alias_set): Properly differentiate base object for
21609         offset and TBAA.
21610         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21611         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21612         (indirect_refs_may_alias_p): Likewise.
21613         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21614         chasing code.
21615         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21616         (call_may_clobber_ref_p_1): Likewise.
21617         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21618         * expr.c (expand_assignment): Handle MEM_REF.
21619         (store_expr): Handle MEM_REFs from STRING_CSTs.
21620         (store_field): If expanding a MEM_REF of a non-addressable
21621         decl use bitfield operations.
21622         (get_inner_reference): Handle MEM_REF.
21623         (expand_expr_addr_expr_1): Likewise.
21624         (expand_expr_real_1): Likewise.
21625         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21626         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21627         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21628         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21629         (dr_analyze_indices): Likewise.
21630         (dr_analyze_alias): Likewise.
21631         (object_address_invariant_in_loop_p): Likewise.
21632         * gimplify.c (mark_addressable): Handle MEM_REF.
21633         (gimplify_cond_expr): Build MEM_REFs.
21634         (gimplify_modify_expr_to_memcpy): Likewise.
21635         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21636         (gimple_fold_indirect_ref): Adjust.
21637         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21638         * tree.def (MEM_REF): New tree code.
21639         * tree-dfa.c: Include toplev.h.
21640         (get_ref_base_and_extent): Handle MEM_REF.
21641         (get_addr_base_and_unit_offset): New function.
21642         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21643         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21644         MEM_REF.
21645         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21646         accesses if the array has just one dimension.  Remove always true
21647         parameter.  Do not require type compatibility here.
21648         (maybe_fold_offset_to_component_ref): Remove.
21649         (maybe_fold_stmt_indirect): Remove.
21650         (maybe_fold_reference): Remove INDIRECT_REF handling.
21651         Fold back to non-MEM_REF.
21652         (maybe_fold_offset_to_address): Simplify.  Deal with type
21653         mismatches here.
21654         (maybe_fold_reference): Likewise.
21655         (maybe_fold_stmt_addition): Likewise.  Also handle
21656         &ARRAY + I in addition to &ARRAY[0] + I.
21657         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21658         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21659         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21660         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21661         conversions useless.
21662         (warn_uninitialized_var): Handle MEM_REF.
21663         (maybe_rewrite_mem_ref_base): New function.
21664         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21665         to SSA form.
21666         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21667         INDIRECT_REF handling.
21668         (copy_tree_body_r): Handle MEM_REF.
21669         * gimple.c (is_gimple_addressable): Adjust.
21670         (is_gimple_address): Likewise.
21671         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21672         invariant base are invariant.
21673         (is_gimple_min_lval): Adjust.
21674         (is_gimple_mem_ref_addr): New function.
21675         (get_base_address): Handle MEM_REF.
21676         (count_ptr_derefs): Likewise.
21677         (get_base_loadstore): Likewise.
21678         * gimple.h (is_gimple_mem_ref_addr): Declare.
21679         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21680         * tree-cfg.c (verify_address): New function, split out from ...
21681         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21682         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21683         INDIRECT_REFs.
21684         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21685         INDIRECT_REF.  Allow conversions.
21686         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21687         a register does not change its size.
21688         (verify_types_in_gimple_reference): Verify MEM_REF.
21689         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21690         Handle MEM_REF.
21691         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21692         New.
21693         (mark_address_taken): Handle MEM_REF.
21694         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21695         (get_asm_expr_operands): Pass opf_not_non_addressable.
21696         (get_expr_operands): Handle opf_[not_]non_addressable.
21697         Handle MEM_REF.  Remove INDIRECT_REF handling.
21698         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21699         (search_for_addr_array): Likewise.
21700         (check_array_bounds): Likewise.
21701         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21702         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21703         (ref_always_accessed_p): Likewise.
21704         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21705         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21706         Handle MEM_REF.
21707         * cgraphbuild.c (mark_load): Properly check for NULL result
21708         from get_base_address.
21709         (mark_store): Likewise.
21710         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21711         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21712         handling for MEM_REF.
21713         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21714         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21715         * builtins.c (stabilize_va_list_loc): Use the function ABI
21716         valist type if we couldn't canonicalize the argument type.
21717         Always dereference with the canonical va-list type.
21718         (maybe_emit_free_warning): Handle MEM_REF.
21719         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21720         memmove to memcpy.
21721         * builtins.c (fold_builtin_memory_op): Use ref-all types
21722         for all memcpy foldings.
21723         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21724         (build_outer_var_ref): Likewise.
21725         (scan_omp_1_op): Likewise.
21726         (lower_rec_input_clauses): Likewise.
21727         (lower_lastprivate_clauses): Likewise.
21728         (lower_reduction_clauses): Likewise.
21729         (lower_copyprivate_clauses): Likewise.
21730         (expand_omp_atomic_pipeline): Likewise.
21731         (expand_omp_atomic_mutex): Likewise.
21732         (create_task_copyfn): Likewise.
21733         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21734         Remove old union trick.  Initialize constant offsets.
21735         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21736         INDIRECT_REF.  Init base_alias_set properly.
21737         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21738         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21739         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21740         for ARRAY_REFs.
21741         (may_insert): Remove.
21742         (visit_reference_op_load): Do not test may_insert.
21743         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21744         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21745         a field to store the constant offset this op applies.
21746         (run_scc_vn): Adjust prototype.
21747         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21748         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21749         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21750         bother about volatile qualifiers on pointers.
21751         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21752         * tree-ssa-loop-ivopts.c
21753         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21754         (strip_offset_1): Likewise.
21755         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21756         MEM_REF handling.
21757         (get_computation_cost_at): Likewise.
21758         * ipa-pure-const.c (check_op): Handle MEM_REF.
21759         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21760         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21761         and constants.
21762         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21763         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21764         (eliminate_local_variables_1): Likewise.
21765         (create_call_for_reduction_1): Likewise.
21766         (create_loads_for_reductions): Likewise.
21767         (create_loads_and_stores_for_name): Likewise.
21768         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21769         (ssa_accessed_in_tree): Handle MEM_REF.
21770         (ssa_accessed_in_assign_rhs): Likewise.
21771         (update_type_size): Likewise.
21772         (analyze_accesses_for_call_stmt): Likewise.
21773         (analyze_accesses_for_assign_stmt): Likewise.
21774         (transform_access_sites): Likewise.
21775         (transform_allocation_sites): Likewise.
21776         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21777         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21778         not handle INDIRECT_REF.
21779         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21780         (cond_store_replacement): Likewise.
21781         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21782         MEM_REF, no not handle INDIRECT_REFs.
21783         (insert_into_preds_of_block): Properly initialize avail.
21784         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21785         for ARRAY_REFs.  Properly handle reference lookups that
21786         require a bit re-interpretation.
21787         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21788         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21789         (build_ref_for_offset_1): Remove.
21790         (build_ref_for_offset): Build MEM_REFs.
21791         (gate_intra_sra): Disable for now.
21792         (sra_ipa_modify_expr): Handle MEM_REF.
21793         (ipa_early_sra_gate): Disable for now.
21794         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21795         MEM_REF handling.
21796         (disqualify_base_of_expr): Likewise.
21797         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21798         MEM_REF handling.
21799         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21800         Use mem_ref_offset.  Remove bogus folding.
21801         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21802         (make_fancy_name_1): Add support for MEM_REF.
21803         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21804         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21805         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21806         (compute_complex_ancestor_jump_func): Likewise.
21807         (ipa_analyze_virtual_call_uses): Likewise.
21808         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21809         INDIRECT_REF folding with more generalized MEM_REF folding.
21810         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21811         (forward_propagate_addr_into_variable_array_index): Also handle
21812         &ARRAY + I in addition to &ARRAY[0] + I.
21813         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21814         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21815         creates assignments with overlap.
21816         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21817         (get_frame_field): Likewise.
21818         (get_nonlocal_debug_decl): Likewise.
21819         (convert_nonlocal_reference_op): Likewise.
21820         (struct nesting_info): Add mem_refs pointer-set.
21821         (create_nesting_tree): Allocate it.
21822         (convert_local_reference_op): Insert to be folded mem-refs.
21823         (fold_mem_refs): New function.
21824         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21825         (free_nesting_tree): Free the pointer-set.
21826         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21827         (vectorizable_load): Likewise.
21828         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21829         (propagate_with_phi): Likewise.
21830         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21831         instead of INDIRECT_REFs.
21832         (compute_object_offset): Handle MEM_REF.
21833         (plus_stmt_object_size): Handle MEM_REF.
21834         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21835         for &MEM_REF.
21836         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21837         (symbol_marked_for_renaming): Likewise.
21838         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21839         (fold-const.o): Add $(TREE_FLOW_H).
21840         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21841         (find_func_clobbers): Likewise.
21842         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21843         (decompose_access): Likewise.
21844         (replace_field_acc): Likewise.
21845         (replace_field_access_stmt): Likewise.
21846         (insert_new_var_in_stmt): Likewise.
21847         (get_stmt_accesses): Likewise.
21848         (reorg_structs_drive): Disable.
21849         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21850         (ix86_canonical_va_list_type): Likewise.
21851
21852 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21853
21854         PR other/44566
21855         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21856         * target.def (struct gcc_target): Replace enum reg_class with
21857         reg_class_t in hook argument / return types.
21858         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21859         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21860         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21861         * targhooks.h (default_branch_target_register_class): Likewise.
21862         (default_ira_cover_classes, default_secondary_reload): Likewise.
21863         (default_memory_move_cost, default_register_move_cost): Likewise.
21864         * targhooks.c (default_branch_target_register_class): Likewise.
21865         (default_ira_cover_classes, default_secondary_reload): Likewise.
21866         (default_memory_move_cost, default_register_move_cost): Likewise.
21867         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21868         * bt-load.c (branch_target_load_optimize): Likewise.
21869         * ira.c (setup_cover_and_important_classes): Likewise.
21870         * ira-costs.c (copy_cost): Likewise.
21871         * reload1.c (emit_input_reload_insns): Likewise.
21872         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21873         * config/frv/frv.c (frv_secondary_reload): Likewise.
21874         * config/s390/s390.c (s390_secondary_reload): Likewise.
21875         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21876         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21877         (ix86_register_move_cost): Likewise.
21878         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21879         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21880         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21881         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21882         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21883         (rs6000_ira_cover_classes): Likewise.
21884         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21885         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21886         Likewise.
21887         * config/pa/pa.c (pa_secondary_reload): Likewise.
21888         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21889         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21890         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21891         * doc/tm.texi: Regenerate.
21892
21893 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21894
21895         PR bootstrrap/44726
21896         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21897         use.
21898         (build_alias_set_optimal_p): Likewise.
21899         (build_base_obj_set_for_drs): Likewise.
21900
21901 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21902
21903         * target.def: Remove comment about licensing problems of function
21904         declarations.
21905
21906         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21907         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21908         * doc/tm.texi: Regenerate.
21909
21910         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21911         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21912
21913         * target.def (enum_va_list_p): Use DEFHOOK.
21914         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21915         Rename ptype to ptree.
21916         * doc/tm.texi: Regenerate.
21917
21918         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21919         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21920         * doc/tm.texi: Regenerate.
21921
21922         * target.def (memory_move_cost): Use DEFHOOK.
21923         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21924         Rename regclass AKA class to rclass.
21925         * doc/tm.texi: Regenerate.
21926
21927         * target.def (pragma_parse): Use DEFHOOK.
21928         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21929         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21930         * doc/tm.texi: Regenerate.
21931
21932         * target.def (pass_by_reference): Use DEFHOOK.
21933         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21934         * doc/tm.texi: Regenerate.
21935
21936         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21937         Use DEFHOOK.
21938         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21939         * doc/tm.texi: Regenerate.
21940
21941         * target.def (return_pops_args): Use DEFHOOK.
21942         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21943         Rename stack-size to size.
21944         * doc/tm.texi: Regenerate.
21945
21946         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21947         last-sched_cycle to last_clock, cur_cycle to clock.
21948         * doc/tm.texi.in: Use @hook.
21949         * doc/tm.texi: Regenerate.
21950
21951         * target.def (print_operand, print_operand_address): Update comment.
21952         (print_operand_punct_valid_p): Likewise.
21953
21954 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21955
21956         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21957         to rtl.h.
21958         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21959         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21960         * rtl-error.h: New.
21961         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21962         * rtl-error.c: Likewise.
21963         * reload.c: Likewise.
21964         * recog.c:  Likewise.
21965         * sel-sched.c: Likewise.
21966         * function.c: Likewise.
21967         * reg-stack.c: Likewise.
21968         * cfgrtl.c: Likewise.
21969         * reload1.c: Likewise.
21970         * final.c: Include rtl-error.
21971         * Makefile.in: Adjust dependencies.
21972
21973 2010-06-30  Jan Hubicka  <jh@suse.cz>
21974
21975         PR middle-end/PR44706
21976         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21977         to return the value.
21978
21979 2010-06-30  Michael Matz  <matz@suse.de>
21980
21981         PR bootstrap/44699
21982         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21983         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21984         a gimple reg, attach the original VDEF to the last store in the
21985         sequence.
21986
21987 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21988
21989         PR other/44034
21990         * config/darwin.c (darwin_override_options): Use renamed
21991         targetm.asm_out.emit_unwind_label.
21992
21993 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21994
21995         PR tree-optimization/39799
21996         * tree-inline.c (remap_ssa_name): Initialize variable only if
21997         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21998
21999 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
22000
22001         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
22002
22003 2010-06-30  Richard Guenther  <rguenther@suse.de>
22004
22005         PR target/44722
22006         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
22007         against oscillation with reverse peephole2.
22008
22009 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22010
22011         PR target/44721
22012         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22013         Fix last commit.
22014
22015 2010-06-30  Nick Clifton  <nickc@redhat.com>
22016
22017         * config/rx/rx-modes.def: New file.
22018         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
22019         (CC_REGNUM): Define.
22020         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
22021         register.
22022         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
22023         (SELECT_CC_MODE): Define.
22024         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
22025         (reg:CC CC_REG) instead of (cc0).
22026         (attr "cc"): Delete.
22027         (cbranchsi4): Do not split compare and branch here. Instead move
22028         it to...
22029         (cbranchsi4_<code>): ... here.  New patterns.
22030         (cmpsi): Call rx-compare_redundant to find out if it is necessary
22031         to emit the compare instruction.
22032         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
22033         cc_status flags.
22034         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
22035         FIRST_PSEUDO_REGNUM.
22036         (rx_expand_prologue, rx_expand_epilogue): Likewise.
22037         (rx_notice_update_cc): Delete.
22038         (rx_cc_modes_compatible): New function.
22039         (flags_needed_for_conditional): New function.
22040         (flags_from_mode): New function.
22041         (rx_compare_redundant): New function - scans backwards through
22042         insn list to find out if condition flags are already set correctly.
22043         (TARGET_CC_MODES_COMPATIBLE): Define.
22044         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
22045
22046         * config/rx/rx.h (BRANCH_COST): Define.
22047         (REGISTER_MOVE_COST): Define.
22048         * config/rx/predicates (rx_source_operand): Allow all constant types.
22049         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
22050         (tstsi4): New pattern.
22051         * config/rx/rx.c (rx_memory_move_cost): Define.
22052         (TARGET_MEMORY_MOVE_COST): Define.
22053
22054 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22055
22056         * tree.h (block_may_fallthru): Declare here.
22057         * tree-flow.h (block_may_fallthru): Do not declare here.
22058         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
22059         bitmap.h
22060         * Makefile.in (c-typeck.o): Update dependencies.
22061
22062 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
22063
22064         PR debug/44694
22065         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
22066         * cselib.c (cfa_base_preserved_regno): New static variable.
22067         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
22068         of REGNO (cfa_base_preserved_val->locs->loc).
22069         (cselib_preserve_cfa_base_value): Add regno argument, set
22070         cfa_base_preserved_regno to it.
22071         (cselib_invalidate_regno): Allow removal of registers other than
22072         cfa_base_preserved_regno from cfa_base_preserved_val.
22073         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
22074         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
22075         of MEM addresses, if not on LHS.
22076         (reverse_op): Don't add reverse ops for cfa_base_rtx.
22077         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
22078
22079 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22080
22081         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
22082         static variables.
22083         (peep2_buf_position): New static function.
22084         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
22085         peephole2_optimize): Use it.
22086         (peep2_attempt, peep2_update_life): New static functions, broken out
22087         of peephole2_optimize.
22088         (peep2_fill_buffer): New static function.
22089         (peephole2_optimize): Change the main loop to try to fill the buffer
22090         with the maximum number of insns before matching them against
22091         peepholes.  Use a forward scan.  Remove special case for targets with
22092         conditional execution.
22093         * genrecog.c (change_state): Delete dead code.
22094         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22095         Rewrite so as not to expect the second insn to have had a peephole
22096         applied yet.
22097
22098 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22099
22100         * genhooks.c (emit_findices): Cast field precision to int.
22101         (emit_documentation): Likewise.
22102
22103 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
22104
22105         PR tree-optimization/43801
22106         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
22107         if old_decl was DECL_ONE_ONLY.
22108
22109         PR debug/44668
22110         * dwarf2out.c (add_accessibility_attribute): New function.
22111         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
22112         instead of adding DW_AT_accessibility manually.
22113         (gen_enumeration_type_die, gen_struct_or_union_type_die,
22114         gen_typedef_die): Use it.
22115
22116 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22117
22118         * vmsdbgout.c (full_name): Just output the file name if not native.
22119
22120 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22121
22122         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
22123         (funcnam_table): New static table.
22124         (funcnum_table): New static table.
22125         (write_rtnbeg): Write value saved in funcnum_table.
22126         (write_rtnend): Write value saved in funcnum_table.
22127         (vmsdbgout_begin_function): Save current function info in
22128         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
22129         (vmsdbgout_finish): Iterate over funcnum_table.
22130
22131 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22132
22133         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
22134         (vmsdbgout_type_decl): Declare
22135         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
22136         (FUNC_EPILOGUE_LABEL): New macro
22137         (vmsdbgout_begin_epilogue): New function.
22138         (vmsdbgout_type_decl): New function.
22139
22140 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22141
22142         * vmsdbg.h: Update copyright.
22143
22144 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22145
22146         * vmsdbg.h (DST_K_TBG): New DST constant.
22147         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
22148         (write_modbeg): Cast module_language to avoid warning.
22149         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
22150
22151 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22152
22153         PR other/44034
22154         * target.def, doc/tm.texi.in, genhooks.c: New files.
22155         * target.h: Instead of defining individual hook members,
22156         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
22157         include target.def.
22158         * target-def.h: Instead of defining individual hook initializers,
22159         include target-hooks-def.h.
22160         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
22161         targetm.live_on_entry -> targetm.extra_live_on_entry
22162         targetm.sched.md_finish ->targetm.sched.finish
22163         targetm.sched.md_init -> targetm.sched.init
22164         targetm.sched.md_init_global -> targetm.sched.init_global
22165         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
22166         targetm.asm_out.except_table_label ->
22167           targetm.asm_out.emit_except_table_label
22168         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
22169         targetm.target_help -> targetm.help
22170         targetm.vectorize.builtin_support_vector_misalignment ->
22171           targetm.vectorize.support_vector_misalignment
22172         targetm.file_start_app_off -> targetm.asm_file_start_app_off
22173         targetm.file_start_file_directive ->
22174          targetm.asm_file_start_file_directive
22175         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
22176         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
22177         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
22178         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
22179           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
22180         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
22181           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
22182         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
22183         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
22184         * Makefile.in (TARGET_H): Depend on target.def.
22185         (TARGET_DEF_H): Depend on target-hooks-def.h.
22186         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
22187         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
22188         * doc/tm.texi: Regenerate.
22189
22190         * Makefile.in (s-tm-texi): Remove stray tab / rule.
22191
22192         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
22193         (targetm.sched.init): Likewise.
22194
22195 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22196
22197         PR bootstrap/44713
22198         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
22199         (function_arg_advance_32): Const-ify TYPE parameter.
22200         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
22201         (ix86_function_arg_advance): Change type of NAMED to bool.
22202         (function_arg_32): Const-ify CUM and TYPE parameters.
22203         (function_arg_64): Likewise.  Change type of NAMED to bool.
22204         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
22205         to bool.
22206         (ix86_function_arg): Change type of NAMED to bool.
22207         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
22208         last argument as a bool.
22209
22210 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22211
22212         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
22213         (OVERRIDE_OPTIONS): Add note of obsolescence.
22214         Replace references with references to TARGET_OPTION_OVERRIDE.
22215         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
22216          the macro).
22217         * targhooks.c (default_target_option_override): New function.
22218         * targhooks.h (default_target_option_override): Declare.
22219         * target.h (struct gcc_target): Add override member to
22220         target_option member.
22221         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
22222         targetm.target_option.override call.
22223         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
22224         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
22225
22226 2010-06-29  Jan Hubicka  <jh@suse.cz>
22227
22228         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
22229
22230 2010-06-29  Jan Hubicka  <jh@suse.cz>
22231
22232         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
22233         unreachable.
22234         (rebuild_frequencies): New function.
22235         * predict.h (rebuild_frequencies): Declare.
22236         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
22237         entry block and edge reaching new_entry.
22238         (tree_function_versioning): When doing partial cloning, rebuild
22239         frequencies when done.
22240         * passes.c (execute_function_todo): Use rebild_frequencies.
22241
22242 2010-06-29  Richard Guenther  <rguenther@suse.de>
22243
22244         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
22245         * tree-flow.h (enum noalias_state): Remove.
22246         (struct var_ann_d): Remove noalias_state member.
22247
22248 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
22249
22250         PR target/43902
22251         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
22252         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
22253         (maddhidi4): Likewise.
22254
22255         Revert parts of the change for PR25130.
22256         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
22257         MEM_ALIAS_SET.
22258
22259 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22260
22261         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
22262         targetm.calls.function_incoming_arg, and
22263         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
22264         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
22265         * target.h (struct gcc_target): Add function_arg_advance,
22266         function_arg, and function_incoming_arg fields.
22267         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
22268         (TARGET_FUNCTION_INCOMING_ARG): Define.
22269         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
22270         and TARGET_FUNCTION_INCOMING_ARG.
22271         * targhooks.h (default_function_arg_advance): Declare.
22272         (default_function_arg, default_function_incoming_arg): Declare.
22273         * targhooks.c (default_function_arg_advance): New function.
22274         (default_function_arg, default_function_incoming_arg): New function.
22275         * config/i386/i386.c (function_arg_advance): Rename to...
22276         (ix86_function_arg_advance): ...this.  Make static.
22277         (function_arg): Rename to...
22278         (ix86_function_arg): ...this.  Make static.
22279         (TARGET_FUNCTION_ARG_ADVANCE): Define.
22280         (TARGET_FUNCTION_ARG): Define.
22281         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
22282         (FUNCTION_ARG): Delete.
22283         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
22284         (function_arg): Delete prototype.
22285
22286 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22287
22288         * reginfo.c (init_reg_sets_1): Adjust comments.
22289         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
22290         * calls.c (prepare_call_address): Likewise.
22291         (emit_call_1): Use targetm.calls.return_pops_args.
22292         (expand_call): Likewise.
22293         * function.c (assign_parms): Likewise.
22294         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22295         * target.h (struct gcc_target) [struct calls]: Add
22296         return_pops_args field.
22297         * targhooks.h (default_return_pops_args): Declare.
22298         * targhooks.c (default_return_pops_args): Define.
22299         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22300         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22301         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22302         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22303         documentation.
22304         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22305         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22306         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22307         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22308         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22309         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22310         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22311         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22312         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22313         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22314         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22315         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22316         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22317         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22318         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22319         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22320         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22321         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22322         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22323         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22324         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22325         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22326         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22327         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22328         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22329         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22330         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22331         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22332         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22333         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22334         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22335         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22336         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22337         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22338         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22339         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22340         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22341         * config/i386/i386.c (ix86_return_pops_args): Make static.
22342         Constify arguments.
22343         (TARGET_RETURN_POPS_ARGS): Define.
22344         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22345         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22346         (TARGET_RETURN_POPS_ARGS): Define.
22347         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22348         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22349         (TARGET_RETURN_POPS_ARGS): Define.
22350
22351 2010-06-29  Richard Guenther  <rguenther@suse.de>
22352
22353         PR middle-end/44667
22354         * tree-inline.c (initialize_inlined_parameters): Make sure
22355         to remap the inlined parameter variable substitutions types.
22356
22357 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22358
22359         PR rtl-optimization/44659
22360         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22361         result of force_to_mode if it partially re-expanded the compound.
22362
22363 2010-06-28  Jan Hubicka  <jh@suse.cz>
22364
22365         PR middle-end/44671
22366         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22367         RESULT_DECL.
22368
22369 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22370
22371         * double-int.h (force_fit_type_double): Remove declaration.
22372         * double-int.c (force_fit_type_double): Move to tree.c.
22373         * tree.h (force_fit_type_double): Declare.
22374         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22375         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22376         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22377         * convert.c (convert_to_pointer): Adjust call to
22378         force_fit_type_double.
22379         * tree-vrp.c (extract_range_from_assert,
22380         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22381         * fold-const.c: Update comment.
22382         (int_const_binop, fold_convert_const_int_from_int,
22383         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22384         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22385         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22386         round_up_loc): Adjust call to force_fit_type_double.
22387
22388 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22389
22390         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22391
22392 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22393
22394         * tree-sra.c (convert_callers): New parameter, change fndecls of
22395         recursive calls.
22396         (modify_function): Pass the old decl to convert_callers.
22397
22398 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22399
22400         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22401         ipa_check_create_node_params and ipa_initialize_node_params with
22402         checking asserts they are not necessary.
22403
22404 2010-06-28  Jan Hubicka  <jh@suse.cz>
22405
22406         PR tree-optimization/44687
22407         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22408
22409 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22410
22411         PR c++/44535
22412         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22413         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22414         instead of BINFO_BASE_BINFO.
22415
22416 2010-06-28  Michael Matz  <matz@suse.de>
22417
22418         PR middle-end/44592
22419         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22420         proper VDEF chain for intermediate stores in the sequence.
22421
22422 2010-06-28  Jan Hubicka  <jh@suse.cz>
22423
22424         PR tree-optimization/44357
22425         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22426         uninlinable functions.
22427
22428 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22429
22430         * config.gcc (powerpc*-*-*): Handle titan.
22431         * config/rs6000/rs6000.c (titan_cost): New costs.
22432         (rs6000_override_options): Add "titan" to processor_target_table.
22433         Add Titan to branch alignment logic.
22434         Correctly set rs6000_cost for titan.
22435         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22436         * config/rs6000/titan.md: New file.
22437         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22438
22439 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22440
22441         * tree-browser.c (TB_history_stack): Convert to a VEC.
22442         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22443         (TB_history_prev): Likewise.
22444
22445 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22446
22447         * vec.h (vec_heap_free): Add parentheses around free.
22448
22449 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22450
22451         * system.h: Poison GCC_EXCEPT_H for front-end files.
22452
22453         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22454         langhook.
22455         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22456         Define to NULL by default.
22457         * except.h: Define GCC_EXCEPT_H.
22458         (doing_eh): Remove prototype.
22459         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22460         (lang_protect_cleanup_actions): Remove.
22461         * except.c (lang_protect_cleanup_actions): Remove.
22462         (doing_eh): Remove.
22463         (gen_eh_region): Don't check doing_eh here.
22464         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22465         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22466         instead of lang_protect_cleanup_actions.
22467         * omp-low.c (maybe_catch_exception): Likewise.
22468         * Makefile.in: Update dependencies.
22469
22470 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22471
22472         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22473         (struct cgraph_local_info): new used_from_object_file flag.
22474         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22475         (cgraph_clone_node): initialize used_from_object_file.
22476         (cgraph_create_virtual_clone): initialize used_from_object_file.
22477         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22478         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22479         when compiling with -fwhole-program.
22480         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22481         internal resolver.
22482         * ipa.c (function_and_variable_visibility): Set externally_visible
22483         flag of varpool_node if used_from_object_file flag is set.
22484         (cgraph_externally_visible_p): check used_from_object_file flag.
22485         * doc/invoke.texi (-fwhole-program option): Change description of
22486         externally_visible attribute accordingly.
22487         * doc/extend.texi (externally_visible): Ditto.
22488
22489 2010-06-27  Jan Hubicka  <jh@suse.cz>
22490
22491         * params.def (max-inline-insns-auto): Default to 40.
22492         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22493
22494 2010-06-27  Jan Hubicka  <jh@suse.cz>
22495
22496         PR middle-end/44671
22497         PR middle-end/44686
22498         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22499         signature change.
22500         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22501         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22502
22503 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22504
22505         * target.h (struct gcc_target): Add register_move_cost field.
22506         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22507         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22508         * targhooks.c (default_register_move_cost): New function.
22509         * targhooks.h (default_register_move_cost): Declare function.
22510         * defaults.h (REGISTER_MOVE_COST): Delete.
22511         * ira-int.h (ira_register_move_cost): Update comment.
22512         * ira.c (ira_register_move_cost): Update comment.
22513         * reload.h (register_move_cost): Declare.
22514         * reginfo.c (register_move_cost): New function.
22515         (move_cost): Update comment.
22516         (init_move_cost, memory_move_secondary_cost): Replace
22517         REGISTER_MOVE_COST with register_move_cost.
22518         * postreload.c (reload_cse_simplify_set): (Ditto.).
22519         * reload.c (find_valid_class, find_reloads): (Ditto.).
22520         * reload1.c (choose_reload_regs): (Ditto.).
22521         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22522         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22523         * doc/md.texi (can_create_pseudo_p): Update documentation.
22524
22525         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22526         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22527         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22528         (TARGET_MEMORY_MOVE_COST): Define.
22529
22530         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22531         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22532         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22533         (TARGET_MEMORY_MOVE_COST): Define.
22534
22535 2010-06-27  Richard Guenther  <rguenther@suse.de>
22536
22537         PR tree-optimization/44683
22538         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22539         false edge from the inverted condition.
22540
22541 2010-06-27  Richard Guenther  <rguenther@suse.de>
22542
22543         PR middle-end/44684
22544         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22545         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22546         for register LHS.  Or non-store assignments.
22547
22548 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22549
22550         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22551         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22552         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22553         (sparc_emit_set_const64): Likewise.
22554
22555 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22556
22557         * config/mips/mips.md (alu_type): New attribute.
22558         (type): Infer type from alu_type.
22559         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22560         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22561         *subsi3_extended, negsi2, negdi2, *low<mode>,
22562         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22563         xor<mode>3, *nor<mode>3,
22564         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22565         *zero_extendhi_truncqi):  Set alu_type instead of type.
22566
22567 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22568
22569         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22570         splay_tree_new_ggc call.
22571         (alpha_use_linkage): Likewise.
22572
22573 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22574
22575         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22576         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22577         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22578         (static_specs): Remove switches_need_spaces.
22579         (process_command, do_self_spec): Hardcode handling "-o" instead of
22580         checking switches_need_spaces.
22581         * system.h (SWITCHES_NEED_SPACES): Poison.
22582
22583 2010-06-26  Richard Guenther  <rguenther@suse.de>
22584
22585         PR tree-optimization/44393
22586         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22587         stmt removal and VOP renaming.
22588         (generate_memset_zero): Remove redundant stmt updating.
22589         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22590         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22591
22592 2010-06-26  Jan Hubicka  <jh@suse.cz>
22593
22594         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22595         edges comming from header are equivalent.
22596         (visit_bb): Handle PHIs correctly.
22597         * tree-inline.c (copy_phis_for_bb): Be able to copy
22598         PHI from entry edge.
22599         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22600
22601 2010-06-26  Richard Guenther  <rguenther@suse.de>
22602
22603         PR middle-end/44674
22604         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22605         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22606
22607 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22608
22609         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22610         add_infile, alloc_switch): New.
22611         (process_command): Remove variable lang_n_infiles.  Process
22612         options in a single pass.  Use new functions for allocating
22613         infiles and switches arrays.  Properly skip operands of
22614         -Xpreprocessor and -Xassembler.
22615
22616 2010-06-26  Jan Hubicka  <jh@suse.cz>
22617
22618         PR middle-end/44671
22619         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22620         cgraph_make_decl_local call; fix typo copying RTL data.
22621
22622 2010-06-25  DJ Delorie  <dj@redhat.com>
22623
22624         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22625         (m32c_output_aligned_common): Likewise.
22626         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22627         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22628         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22629         (m32c_register_pragmas): Register it.
22630         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22631         (m32c_insert_attributes): Set #pragma address decls volatile.
22632         (pragma_entry_eq): New.
22633         (pragma_entry_hash): New.
22634         (m32c_note_pragma_address): New.
22635         (m32c_get_pragma_address): New.
22636         (m32c_output_aligned_common): New.
22637         * doc/extend.texi: Document the new pragma.
22638
22639         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22640         also.
22641         * config/m32c/predicates.md (m32c_any_operand): Check the code
22642         instead of memory_operand so as to allow matching volatile MEMs.
22643         (m32c_nonimmediate_operand): Likewise.
22644         (mra_operand): Allow volatiles.
22645
22646 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22647
22648         PR debug/44610
22649         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22650         address if the offset is unknown.
22651
22652 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22653
22654         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22655         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22656         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22657         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22658         to ia64_start_function. Invoke it.
22659         * config/ia64/ia64.c (ia64_start_function): Call new function
22660         dwarf2out_vms_debug_main_pointer.
22661
22662 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22663
22664         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22665         statements computing the true predicate.
22666
22667 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22668
22669         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22670         to boolean_true_node.
22671         (reset_bb_predicate): New.
22672         (predicate_bbs): Call reset_bb_predicate.
22673
22674 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22675
22676         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22677         (tree_if_conversion): Returns true when something has been changed.
22678         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22679         changed something.
22680
22681 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22682
22683         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22684         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22685         * tree-if-conv.c: Include dbgcnt.h.
22686         (tree_if_conversion): Use if_conversion_tree to count the number of
22687         if-convertible loops.
22688
22689 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22690
22691         * common.opt (fprefetch-loop-arrays): Re-define
22692         -fprefetch-loop-arrays as a tri-state option with the initial
22693         value of -1.
22694         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22695         pass only when flag_prefetch_loop_arrays > 0.
22696         * toplev.c (process_options): Note that, with tri-states,
22697         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22698         * config/i386/i386.c (override_options): Enable prefetching at -O3
22699         for a set of CPUs that sw prefetching is helpful.
22700         (software_prefetching_beneficial_p): New.  Return TRUE if software
22701         prefetching is beneficial for the given CPU.
22702
22703 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22704
22705         PR rtl-optimization/44326
22706         * implicit-zee.c (find_removable_zero_extends): Replace
22707         INSN_P with NONDEBUG_INSN_P.
22708
22709 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22710
22711         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22712         (struct ipa_node_params): Removed the modification_analysis_done flag.
22713         (ipa_is_param_modified): Removed.
22714         (ipa_analyze_node): Declare.
22715         (ipa_compute_jump_functions): Remove declaration.
22716         (ipa_count_arguments): Likewise.
22717         (ipa_detect_param_modifications): Likewise.
22718         (ipa_analyze_params_uses): Likewise.
22719         * ipa-prop.c (struct param_analysis_info): New type.
22720         (visit_store_addr_for_mod_analysis): Removed.
22721         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22722         moved down in the file.
22723         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22724         (ipa_count_arguments): Made static.
22725         (mark_modified): New function.
22726         (is_parm_modified_before_call): New function.
22727         (compute_pass_through_member_ptrs): New parameter parms_info, call
22728         is_parm_modified_before_call instead of ipa_is_param_modified.
22729         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22730         it to compute_pass_through_member_ptrs.
22731         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22732         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22733         on the callee if it is analyzed.  Made static.
22734         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22735         is_parm_modified_before_call instead of ipa_is_param_modified.
22736         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22737         ipa_analyze_indirect_call_uses.
22738         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22739         ipa_analyze_call_uses.
22740         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22741         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22742         (ipa_analyze_node): New function.
22743         (ipa_print_node_params): Do not dump the modified flag.
22744         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22745         it.  Do not stream the modified parameter flag.
22746         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22747         it.  Do not stream the modified parameter flag.
22748         * ipa-cp.c (ipcp_analyze_node): Removed.
22749         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22750         with only a call to ipa_analyze_node.
22751         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22752         node with only a call to ipa_analyze_node.
22753
22754 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22755
22756         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22757
22758 2010-06-25  Jan Hubicka  <jh@suse.cz>
22759
22760         * tree-pass.h (pass_split_functions): Declare.
22761         * opts.c (decode_options): Enable function splitting at -O2
22762         * timevar.def (TV_IPA_FNSPLIT): New macro.
22763         * ipa-split.c: New file.
22764         * common.opt (-fpartial-inlining): New flag.
22765         * Makefile.in (ipa-split.o): New object file.
22766         * passes.c (init_optimization_passes): Add ipa-split.
22767         * params.def (partial-inlining-entry-probability): New parameters.
22768         * doc/invoke.texi (-fpartial-inlining): New.
22769
22770 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22771
22772         PR 44665
22773         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22774         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22775         (gimplify_expr): Likewise.
22776
22777 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22778
22779         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22780         statements instead of bailing out on them.
22781         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22782         parameter are in the same BB as the condition.  Update comments.
22783
22784 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22785
22786         PR middle-end/43866
22787         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22788         true or always false, return NULL_TREE.
22789         (tree_unswitch_single_loop): Optimize conditions even when reaching
22790         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22791         using entry checks, then do still reachable block discovery and consider
22792         only conditions in still reachable basic blocks in the loop.
22793
22794         PR tree-optimization/44539
22795         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22796         the call doesn't have LHS, but has VDEF.
22797
22798 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22799
22800         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22801         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22802         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22803         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22804         * system.h (MODIFY_TARGET_NAME): Poison.
22805
22806 2010-06-25  Alan Modra  <amodra@gmail.com>
22807
22808         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22809         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22810         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22811         CMODEL_LARGE as default.
22812         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22813         (offsettable_ok_by_alignment): Delete.
22814         (rs6000_emit_move): Remove mcmodel=medium optimization.
22815
22816 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22817
22818         With large parts from Jim Wilson:
22819         PR target/43902
22820         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22821         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22822         * optabs.c (optab_for_tree_code): Likewise.
22823         (expand_widen_pattern_expr): Likewise.
22824         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22825         out of execute_optimize_widening_mul.
22826         (convert_plusminus_to_widen): New function.
22827         (execute_optimize_widening_mul): Use the two new functions.
22828         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22829         Remove code to generate widening multiply-accumulate.  Add support
22830         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22831         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22832         (dump_gimple_assign): Call it when appropriate.
22833         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22834         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22835         (expand_gimple_stmt_1): Likewise.
22836         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22837         WIDEN_MULT_MINUS_EXPR.
22838         * tree-ssa-operands.c (get_expr_operands): Likewise.
22839         * tree-inline.c (estimate_operator_cost): Likewise.
22840         * gimple.c (extract_ops_from_tree_1): Renamed from
22841         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22842         (gimple_build_assign_stat): Support operations with three operands.
22843         (gimple_build_assign_with_ops_stat): Likewise.
22844         (gimple_assign_set_rhs_from_tree): Likewise.
22845         (gimple_assign_set_rhs_with_ops_1): Renamed from
22846         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22847         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22848         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22849         WIDEN_MULT_MINUS_EXPR.
22850         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22851         (extract_ops_from_tree_1): Adjust declaration.
22852         (gimple_assign_set_rhs_with_ops_1): Likewise.
22853         (gimple_build_assign_with_ops): Pass NULL for last operand.
22854         (gimple_build_assign_with_ops3): New macro.
22855         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22856         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22857         functions.
22858         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22859         (verify_gimple_assign): Call it.
22860         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22861         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22862         functions for dealing with three-operand statements.
22863         * tree.c (commutative_ternary_tree_code): New function.
22864         * tree.h (commutative_ternary_tree_code): Declare it.
22865         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22866         ternary statements.
22867         (gimple_assign_nonzero_warnv_p): Likewise.
22868         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22869         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22870         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22871         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22872         (struct hashtable_expr): New member ternary in the union.
22873         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22874         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22875         (iterative_hash_hashable_expr): Likewise.
22876         (print_expr_hash_elt): Handle EXPR_TERNARY.
22877         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22878         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22879         statements.  Handle GIMPLE_TERNARY_RHS.
22880
22881 2010-06-25  Jan Hubicka  <jh@suse.cz>
22882
22883         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22884
22885 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22886
22887         PR c/44517
22888         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22889         parameters are not good.
22890         (c_parser_parameter_declaration): Error unknown type name if the type
22891         name can't start declaration specifiers.
22892
22893 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22894
22895         * gcc.c (translate_options): Don't mention +e in comment.
22896         (process_command): Don't handle +e specially.
22897
22898 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22899
22900         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22901
22902         * ira-build.c (merge_hard_reg_conflicts): New function.
22903         (create_cap_allocno, copy_info_to_removed_store_destinations,
22904         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22905         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22906         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22907         copy_nifo_to_removed_store_destination): Use them.
22908         * ira-lives.c (make_hard_regno_born): New function, split out of
22909         make_regno_born.
22910         (make_allocno_born): Likewise.
22911         (make_hard_regno_dead): New function, split out of make_regno_dead.
22912         (make_allocno_dead): Likewise.
22913         (inc_register_pressure): New function, split out of set_allocno_live.
22914         (dec_register_pressure): New function, split out of clear_allocno_live.
22915         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22916         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22917         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22918         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22919         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22920         mark_pseudo_regno_live.
22921         (process_bb_node_lives): Use mark_pseudo_regno_live,
22922         make_hard_regno_born and make_allocno_dead.
22923         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22924         set_allocno_live, clear_allocno_live): Delete functions.
22925
22926         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22927         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22928         functions.
22929         (ira_flattening): Use ira_parent_allocno.
22930         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22931         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22932
22933         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22934         statement.
22935
22936         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22937         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22938         minmax_set_iter_cond, minmax_set_iter_next,
22939         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22940         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22941         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22942         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22943         uses changed.
22944
22945         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22946         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22947         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22948         All uses changed.
22949
22950 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22951
22952         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22953         (peephole2 to convert zero_extract/compare of single bit to
22954          lshift/compare): New.
22955
22956 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22957
22958         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22959         recursive call and call to 'int_const_binop'.
22960         (build_range_check, fold_cond_expr_with_comparison, unextend,
22961         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22962         multiple_of_p): Adjust call to const_binop.
22963
22964 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22965
22966         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22967         determine size of XFmode operand.
22968         (XFmode extended DFmode push splitter): Ditto.
22969         (XFmode extended SFmode push splitter): Ditto.
22970
22971 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22972
22973         PR target/44588
22974         * config/i386/i386.md (extract_code): New.
22975         (<u>divmodqi4): Likewise.
22976         (divmodhiqi3): Likewise.
22977         (udivmodhiqi3): Likewise.
22978         (<u>divqi3): Remvoved.
22979
22980 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22981
22982         PR middle-end/44492
22983         * recog.h (struct recog_data): Add is_asm field.
22984         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22985         present in constraints of inline-asm operand and memory operand
22986         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22987         (extract_insn): Initialize recog_data.is_asm.
22988         * doc/md.texi (Constraints): Document operand side-effect rules.
22989
22990 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22991
22992         * c-parser.c (c_parser_conditional_expression): Call
22993         warn_for_omitted_condop.
22994         * doc/invoke.texi: Document omitted condop warning.
22995
22996 2010-06-24  Nick Clifton<nickc@redhat.com>
22997
22998         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22999         insn in the sequence is a jump insn before setting its label.
23000
23001 2010-06-24  Alan Modra  <amodra@gmail.com>
23002
23003         * collect2.c (main): Match exactly --version and --help.
23004
23005 2010-06-24  DJ Delorie  <dj@redhat.com>
23006
23007         * config/m32c/m32c-pragma.c: Don't include rtl.h.
23008
23009 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
23010
23011         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
23012         using X87MODEF mode iterator.
23013         (pushsf splitter): Macroize splitter using P mode iterator.
23014         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
23015         mode iterator.
23016
23017         (*movxf_internal): Rename from *movxf_integer.
23018         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
23019         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
23020         (*movdf_internal): Rename from *movdf_integer.
23021         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
23022         (*movsf_internal): Rename from *movdf_1.
23023
23024 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
23025
23026         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
23027         (const_gimple_seq_node): Removed typedefs.
23028
23029         * gimple.h (gimple_seq_node_d, gimple_seq_node)
23030         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
23031
23032 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
23033
23034         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
23035         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
23036         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
23037         and CODE_FOR_vec_extract_lo_v4df.
23038
23039         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
23040         Changed to define_insn_and_split.
23041         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
23042         (vec_extract_lo_v16hi): Likewise.
23043         (vec_extract_lo_v32qi): Likewise.
23044         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
23045         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
23046
23047 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
23048
23049         PR target/44640
23050         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
23051         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
23052         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
23053         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
23054         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
23055
23056         PR target/44640
23057         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
23058
23059         PR other/44644
23060         * df-core.c (struct df): Rename to df_d.
23061         * df.h (struct df): Likewise.
23062         * dse.h (struct df): Remove forward declaration.
23063         * recog.h (struct insn_data): Rename to:
23064         (struct_insn_data_d).  Adjusted all users.
23065
23066 2010-06-23  Arnaud Charlet  <charlet@adacore.com
23067
23068         PR ada/22220
23069         * doc/install.texi: Update requirements to build GNAT.
23070
23071 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
23072
23073         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
23074         enum type.
23075         (m68k_sched_attr_opx_type): Remove unreachable return.
23076         (m68k_sched_attr_opy_type): Likewise.
23077         (m68k_sched_attr_size): Likewise.
23078         (sched_get_opxy_mem_type): Likewise.
23079         (m68k_sched_attr_op_mem): Likewise.
23080
23081 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
23082
23083         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
23084         new statement and adjust VDEF only if necessary.  Remove superfluous
23085         call to maybe_clean_or_replace_eh_stmt.
23086         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
23087         copy the flags.
23088         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
23089         * tree-inline.c (copy_bb): ...and not there.
23090
23091 2010-06-22  Cary Coutant  <ccoutant@google.com>
23092
23093         * dwarf2out.c (is_nested_in_subprogram): New function.
23094         (should_move_die_to_comdat): Use it.
23095         (copy_ancestor_tree): Don't mark DIEs here.
23096         (copy_decls_walk): Start walk from root of newly-added tree;
23097         mark DIEs here instead.
23098
23099 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
23100
23101         * config/i386/i386.md (unit): Also check sseishft1.
23102
23103 2010-06-22  Jan Hubicka  <jh@suse.cz>
23104
23105         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
23106         enabled.
23107
23108 2010-06-22  Jan Hubicka  <jh@suse.cz>
23109
23110         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
23111         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
23112         Return true if something changed.
23113         * df.h (df_confluence_function_n): Return bool.
23114         * df-core.c (df_worklist_propagate_forward,
23115         df_worklist_propagate_backward): Track changes and ages.
23116         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
23117         track ages.
23118         * dse.c (dse_confluence_n): Return always true.
23119
23120 2010-06-22  Jan Hubicka  <jh@suse.cz>
23121
23122         * bitmap.c (bitmap_clear_bit): Micro optimize.
23123
23124 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
23125
23126         * config/i386/i386.md (SWI1248x): New mode iterator.
23127         (SWI48x): Ditto.
23128         (SWI12): Ditto.
23129         (SWI24): Ditto.
23130
23131         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
23132         SWI1248x mode iterator.
23133         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
23134         using SWI124 mode iterator.
23135         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
23136         mode iterator.
23137         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
23138         *pushdi2_prologue_rex64 using P mode iterator.
23139         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
23140         using SWI48 mode iterator.
23141         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
23142         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
23143         using SWI1248x mode iterator.
23144         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
23145         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
23146         SWI48 mode iterator.
23147         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
23148         iterator.
23149         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
23150         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
23151         SWI12 mode iterator.
23152         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
23153         SWI12 mode iterator.
23154         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
23155         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
23156         SWI24 mode iterator.
23157         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
23158         SWI48 mode iterator.
23159         (mov<mode>_insn_1): New expander.
23160         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
23161         using SWI48x mode iterator.
23162
23163         (*movoi_internal_avx): Rename from *movoi_internal.
23164         (*movti_internal_rex64): Rename from *movti_rex64.
23165         (*movti_internal_sse): Rename from *movti_sse.
23166         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
23167         (*movdi_internal): Rename from *movdi_2.
23168         (*movsi_internal): Rename from *movsi_1.
23169         (*movhi_internal): Rename from *movhi_1.
23170         (*movqi_internal): Rename from *movqi_1.
23171
23172         (insv): Update the call to gen_movsi_insv_1 for rename.
23173         * config/i386/i386.c (promote_duplicated_reg): Ditto.
23174
23175 2010-06-22  Jan Hubicka  <jh@suse.cz>
23176
23177         * passes.c (execute_function_todo): Move call of statistics_fini_pass
23178         to ...
23179         (execute_todo) ... this one.
23180
23181 2010-06-22  Alan Modra  <amodra@gmail.com>
23182
23183         PR target/44364
23184         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23185         * caller-save.c (insert_restore, insert_save): Use non-validate
23186         form of adjust_address.
23187
23188 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23189
23190         PR target/39690
23191         * config/pa/pa.c (override_options): Disable
23192         -freorder-blocks-and-partition.
23193
23194 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
23195
23196         PR target/44615
23197         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
23198
23199         * config/i386/i386.md (type): Add sseishft1
23200
23201         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
23202         (ppro_insn_load): Likewise.
23203         (ppro_insn_store): Likewise.
23204         (ppro_insn_both): Likewise.
23205
23206         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
23207         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
23208         for type.
23209         (*vec_extractv2di_1_avx): Likewise.
23210         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
23211         type.  Remove atom_unit.
23212         (*vec_extractv2di_1_sse2): Likewise.
23213
23214 2010-06-21  DJ Delorie  <dj@redhat.com>
23215
23216         * diagnostic.h (diagnostic_classification_change_t): New.
23217         (diagnostic_context): Add history and push/pop list.
23218         (diagnostic_push_diagnostics): Declare.
23219         (diagnostic_pop_diagnostics): Declare.
23220         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
23221         from pragmas in a history chain instead of the global table.
23222         (diagnostic_push_diagnostics): New.
23223         (diagnostic_pop_diagnostics): New.
23224         (diagnostic_report_diagnostic): Scan history chain to find state
23225         of diagnostics as of the diagnostic location.
23226         * opts.c (set_option): Pass UNKNOWN_LOCATION to
23227         diagnostic_classify_diagnostic.
23228         (enable_warning_as_error): Likewise.
23229         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
23230         use in the history chain.
23231         * doc/extend.texi: Document pragma GCC diagnostic changes.
23232
23233 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
23234
23235         * dwarf2out.c (add_linkage_name): New function.  Don't add
23236         anything to DW_TAG_member DIEs.
23237         (add_name_and_src_coords_attributes): Use it.
23238         (gen_variable_die): Call it for C++ static data members if
23239         specification is DW_TAG_member.
23240
23241         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
23242         C++ char16_t and char32_t.
23243
23244         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
23245         * genattrtab.c: Include vecprim.h.
23246         (cached_attrs, cached_attr_count, attrs_seen_once,
23247         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
23248         attrs_cached_after): New variables.
23249         (find_attrs_to_cache): New function.
23250         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
23251         (write_test_expr): Add attrs_cached argument, return it too,
23252         attempt to cache non-const attributes used more than once in
23253         a single case handling.
23254         (write_attr_get): Use find_attrs_to_cache, for caching candidates
23255         emit cached_* variables.  Adjust write_attr_set callers.
23256         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
23257         to find attributes that should be cached in this block.  Adjust
23258         write_test_expr callers.
23259         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
23260         callers.
23261         (make_automaton_attrs): Adjust write_test_expr caller.
23262
23263         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
23264         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
23265         (make_automaton_attrs): If find_tune_attr returns non-NULL,
23266         write separate internal_dfa_insn_code_* and insn_default_latency_*
23267         functions for each attribute's value and emit init_sched_attrs
23268         function and function pointers.
23269         * genattr.c (const_attrs, reservations): New variables.
23270         (gen_attr): Add const attributes to const_attrs vector.
23271         (check_tune_attr, find_tune_attr): New functions.
23272         (main): Add reservations to reservations vector.  If find_tune_attr
23273         returns true, add prototype for init_sched_attrs and make
23274         internal_dfa_insn_code and insn_default_latency function pointers,
23275         otherwise define init_sched_attrs as dummy macro.
23276         * cfgexpand.c: Include insn-attr.h.
23277         (gimple_expand_cfg): Call init_sched_attrs.
23278
23279         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
23280
23281         PR target/44575
23282         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
23283         va_arg from a set of register save slots into a temporary,
23284         if the container is bigger than type size, do the copying
23285         using smaller mode or using memcpy.
23286
23287         PR bootstrap/44426
23288         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
23289         prototype.
23290         (sel_print_to_dot): Remove macro.
23291         (sel_print): Likewise.  New prototype.
23292         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23293         (sel_print): New function.
23294
23295 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23296
23297         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23298         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23299
23300 2010-06-21  Nick Clifton  <nickc@redhat.com>
23301
23302         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23303         (SMALL_REGISTER_CLASS): Define (to zero).
23304         (PRINT_OPERAND): Delete.
23305         (PRINT_OPERAND_ADDRESS): Delete.
23306         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23307         (rx_print_operand_address): Delete prototype.
23308         * config/rx/rx.c (rx_print_operand): Make static.
23309         Allow %H and %L to handle CONST_DOUBLEs.
23310         (rx_print_operand_address): Make static.
23311         (rx_gen_move_template): Rename local variable 'template' to
23312         out_template.
23313         (rx_function_arg): Do not pass unknown sized objects in registers.
23314         (TARGET_PRINT_OPERAND): Define.
23315         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23316
23317 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23318
23319         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23320
23321 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23322
23323         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23324         stack-alignment for simple leaf-functions.
23325
23326 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23327
23328         * doc/install.texi: Document bootstrap-lto.
23329
23330 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23331
23332         PR debug/44248
23333         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23334         (input_function): Drop them here, if VTA is disabled.
23335
23336 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23337
23338         PR target/44546
23339         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23340         New predicate.
23341         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23342         ix86_swapped_fp_comparsion_operator instead of
23343         ix86_fp_comparison_operator.
23344
23345         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23346         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23347         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23348         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23349         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23350         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23351
23352 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23353
23354         PR other/32998
23355         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23356         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23357         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23358         (decode_cmdline_option): Update for this return value.  Set
23359         orig_option_with_args_text field.  Set arg field for unknown
23360         options.  Make static.
23361         (decode_cmdline_options_to_array): New.
23362         (prune_options): Update handling of find_opt return value.
23363         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23364         (read_cmdline_options): Take decoded options.
23365         (decode_options): Add parameters for decoded options.  Use
23366         decode_cmdline_options_to_array.  Use decoded options for -O
23367         scan.  Use integral_argument for -O parameters.  Update call to
23368         read_cmdline_options.
23369         (enable_warning_as_error): Update handling of find_opt return value.
23370         * opts.h: Update comment on unknown options.
23371         (struct cl_decoded_option): Update comments on opt_index and arg.
23372         Add orig_option_with_args_text.
23373         (decode_cmdline_option): Remove.
23374         (decode_cmdline_options_to_array): Declare.
23375         (decode_options): Update prototype.
23376         * toplev.c (save_argv): Remove.
23377         (save_decoded_options, save_decoded_options_count): New.
23378         (read_integral_parameter): Remove.
23379         (print_switch_values): Use decoded options.
23380         (toplev_main): Don't set save_argv.  Update call to decode_options.
23381         * toplev.h (read_integral_parameter): Remove.
23382         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23383
23384 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23385
23386         PR target/44072
23387         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23388         immediate.
23389         * constraints.md (Pw, Px): New constraints.
23390         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23391
23392 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23393
23394         * config/i386/sse.md (fma4modesuffixf4): Removed.
23395         (ssemodesuffixf2s): Likewise.
23396         (ssemodesuffixf4): Likewise.
23397         (ssemodesuffixf2c): Likewise.
23398         (ssescalarmodesuffix2s): Likewise.
23399         (avxmodesuffixf2c): Likewise.
23400         (ssemodesuffix): New.
23401         (ssescalarmodesuffix): Likewise.
23402         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23403
23404 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23405
23406         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23407
23408 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23409
23410         * stor-layout.c (debug_rli): Remove unused local variables.
23411
23412 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23413
23414         PR rtl-optimization/40900
23415         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23416         original expression for later reuse.
23417         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23418         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23419
23420 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23421
23422         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23423         double_int_fits_in_uhwi_p): Implement as static inline.
23424         (double_int_xor): New inline function.
23425         (double_int_lrotate, double_int_rrotate, double_int_max,
23426         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23427         double_int_smin): Declare.
23428         (lrotate_double, rrotate_double): Remove declaration.
23429         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23430         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23431         (double_int_lrotate, double_int_rrotate, double_int_max,
23432         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23433         double_int_smin): New function.
23434         * fold-const.c (int_const_binop): Clean up, use double_int_*
23435         functions.
23436         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23437         double_int_* and immed_double_int_const functions.
23438
23439 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23440
23441         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23442         * function.c (types_used_by_cur_var_decl): Likewise.
23443         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23444
23445 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23446
23447         * tree.h (record_layout_info): Change type of pending_statics field
23448         to a VEC.
23449         * stor-layout.c (start_record_layout): Store NULL into
23450         pending_statics.
23451         (debug_rli): Call debug_vec_tree instead of debug_tree.
23452         (place_field): Likewise.
23453         (finish_record_layout): Likewise.
23454
23455 2010-06-18  Alan Modra  <amodra@gmail.com>
23456
23457         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23458
23459 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23460
23461         PR target/43740
23462         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23463         for SET source operand from SET destination operand.
23464
23465 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23466
23467         PR rtl-optimization/39871
23468         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23469         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23470         (function_invariant_p): Rule out a plus of frame or arg pointer with
23471         a SYMBOL_REF.
23472         * ira.c (find_reg_equiv_invariant_const): Likewise.
23473
23474 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23475
23476         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23477         print_operand_address and puts to output the operand for CONST.
23478
23479 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23480
23481         PR debug/44572
23482         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23483         hook.
23484
23485 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23486
23487         * v850-protos.h (print_operand): Delete.
23488         (print_operand_address): Delete.
23489         * v850.h (PRINT_OPERAND): Delete.
23490         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23491         (PRINT_OPERAND_ADDRESS): Delete.
23492         * v850.c (print_operand_address): Rename to...
23493         (v850_print_operand_address): ...this.  Make static. Call
23494         v850_print_operand.
23495         (print_operand): Rename to...
23496         (v850_print_operand): ...this.  Make static.  Call
23497         v850_print_operand_address.
23498         (v850_print_operand_punct_valid_p): New function.
23499         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23500         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23501
23502 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23503
23504         * config/sh/sh-protos.h (print_operand): Delete.
23505         (print_operand_address): Delete.
23506         * config/sh/sh.h (PRINT_OPERAND): Delete.
23507         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23508         (PRINT_OPERAND_ADDRESS): Delete.
23509         * config/sh/sh.c (sh_print_operand_address): Make static.
23510         (sh_print_operand): Make static.  Call sh_print_operand_address
23511         and sh_print_operand.
23512         (sh_print_operand_punct_valid_p): New function.
23513         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23514         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23515
23516 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23517
23518         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23519         (mcore_print_operand_address): Delete.
23520         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23521         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23522         (PRINT_OPERAND_ADDRESS): Delete.
23523         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23524         (mcore_print_operand): Make static.
23525         (mcore_print_operand_punct_valid_p): New function.
23526         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23527         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23528
23529 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23530
23531         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23532         (print_operand_address): Delete.
23533         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23534         (PRINT_OPERAND_ADDRESS): Delete.
23535         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23536         static.
23537         (m68hc11_print_operand): Make static.
23538         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23539
23540 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23541
23542         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23543         (m32r_print_operand_address): Delete.
23544         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23545         (PRINT_OPERAND): Delete.
23546         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23547         (PRINT_OPERAND_ADDRESS): Delete.
23548         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23549         (m32r_print_operand_address): Make static.
23550         (m32r_print_operand): Make static.
23551         (m32r_print_operand_punct_valid_p): New function.
23552         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23553         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23554
23555 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23556
23557         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23558         (print_operand_address): Delete.
23559         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23560         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23561         (PRINT_OPERAND_ADDRESS): Delete.
23562         (iq2000_print_operand_punct): Delete.
23563         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23564         (iq2000_print_operand_address): Make static.
23565         (iq2000_print_operand): Make static.
23566         (iq2000_print_operand_punct_valid_p): New function.
23567         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23568         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23569
23570 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23571
23572         * config/frv/frv-protos.h (frv_print_operand): Delete.
23573         (frv_print_operand_address): Delete.
23574         * config/frv/frv.h (PRINT_OPERAND): Delete.
23575         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23576         (PRINT_OPERAND_ADDRESS): Delete.
23577         * config/frv/frv.c (frv_print_operand_address): Make static.
23578         (frv_print_operand): Make static.
23579         (frv_print_operand_punct_valid_p): New function.
23580         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23581         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23582
23583 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23584
23585         * tree.h (vec_member): Declare.
23586         * tree.c (vec_member): Define.
23587
23588 2010-06-17  Richard Guenther  <rguenther@suse.de>
23589
23590         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23591         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23592
23593 2010-06-17  Richard Guenther  <rguenther@suse.de>
23594
23595         * tree-inline.c (declare_return_variable): Remove bogus code.
23596
23597 2010-06-17  Richard Guenther  <rguenther@suse.de>
23598
23599         * gimplify.c (gimplify_bind_expr): Always promote complex
23600         and vector variables to registers if possible.
23601
23602 2010-06-17  Richard Guenther  <rguenther@suse.de>
23603
23604         * expr.c (get_inner_reference): Use double_int for bit_offset
23605         calculation.
23606
23607 2010-06-16  DJ Delorie  <dj@redhat.com>
23608
23609         * common.opt (-fstrict-volatile-bitfields): new.
23610         * doc/invoke.texi: Document it.
23611         * fold-const.c (optimize_bit_field_compare): For volatile
23612         bitfields, use the field's type to determine the mode, not the
23613         field's size.
23614         * expr.c (expand_assignment): Likewise.
23615         (get_inner_reference): Likewise.
23616         (expand_expr_real_1): Likewise.
23617         * expmed.c (store_fixed_bit_field): Likewise.
23618         (extract_bit_field_1): Likewise.
23619         (extract_fixed_bit_field): Likewise.
23620
23621 2010-06-16  Richard Guenther  <rguenther@suse.de>
23622
23623         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23624
23625 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23626
23627         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23628         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23629         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23630         * debug.c: Likewise.
23631         * sdbout.c: Likewise.
23632         * vmsdbgout.c: Likewise.
23633         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23634         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23635         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23636         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23637         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23638         * dwarf2out.c (dw_fde_struct): New fields
23639         dw_fde_vms_{end,begin}_prologue.
23640         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23641         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23642         (dwarf2out_vms_end_prologue): New function.
23643         (dwarf2out_vms_begin_epilogue): New function.
23644         (dw_val_struct): New value dw_val_class_vms_delta.
23645         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23646         begin_epilogue for VMS.
23647         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23648         new static functions.
23649         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23650         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23651         static functions.
23652         (print_die): New case dw_val_class_vms_delta.
23653         (attr_checksum): Likewise.
23654         (same_dw_val_p: Likewise.
23655         (size_of_die): Likewise.
23656         (value_format): Likewise.
23657         (output_die): Likewise.
23658         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23659         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23660         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23661         dwarf2out_cfi_begin_epilogue
23662         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23663
23664 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23665
23666         * config/cris/cris-protos.h (cris_print_operand): Delete.
23667         (cris_print_operand_address): Delete.
23668         * config/cris/cris.h (PRINT_OPERAND): Delete.
23669         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23670         (PRINT_OPERAND_ADDRESS): Delete.
23671         * config/cris/cris.c (cris_print_operand_address): Make static.
23672         (cris_print_operand): Make static.
23673         (cris_print_operand_punct_valid_p): New function.
23674         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23675         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23676
23677 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23678
23679         * config/arm/arm-protos.h (arm_print_operand): Delete.
23680         (arm_print_operand_address): Delete.
23681         * config/arm/arm.h (PRINT_OPERAND): Delete.
23682         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23683         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23684         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23685         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23686         (arm_print_operand): Make static.
23687         (arm_print_operand_punct_valid_p): New function.
23688         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23689         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23690
23691 2010-06-16  Nick Clifton  <nickc@redhat.com>
23692
23693         * config/rx/constraints.md (NEGint4): New constraint.
23694         * config/rx/rx.md (attr cc): Add set_zsc.
23695         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23696         initialised.
23697         (cmpsf): Likewise.
23698         (call_internal): Clobber the cc0 register.
23699         (call_value_internal): Likewise.
23700         (cstoresi4): Likewise.
23701         (movsieq): Likewise.
23702         (movsine): Likewise.
23703         (addsi3): Add alternative to handle small negative constants.
23704         (sunsi3): Likewise.
23705         (addsi3): Do not set the O bit in the cc0 register.
23706         (adddi3): Likewise.
23707         (subsi3): Likewise.
23708         (subdi3): Likewise.
23709         (andsi3): Reorder alternatives to prefer shorter forms.
23710         (mulsi3): Likewise.
23711         (iorsi3): Likewise.
23712         (negsi2): Note that the cc0 flags are set.
23713         (rotlsi3): Note that only the Z and S bits are set in cc0.
23714         (lshrsi3): Likewise.
23715         (ashlsi3): Likewise.
23716         (subsf3): Use %Q for the MEM operand.
23717         (fix_truncsfsi2): Likewise.
23718         (floatsisf2): Likewise.
23719         (bitset): Remove early clobber from destination.
23720         (bitset_in_memory): Likewise.
23721         (lrintsf2): Clobber the cc0 register.
23722         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23723         (rx_print_operand): Handle %N.
23724
23725 2010-06-16  Jan Hubicka  <jh@suse.cz>
23726
23727         * df-core.c (df_compact_blocks): Free problem_temps vector.
23728
23729 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23730
23731         PR tree-optimization/43905
23732         * tree-sra.c: Include tree-inline.h.
23733         (create_abstract_origin): Removed.
23734         (modify_function): Version the call graph node instead of creating
23735         abstract origins and dealing with same_body aliases.
23736         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23737         function is versionable.
23738         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23739
23740 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23741
23742         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23743         (CHOOSE_DYNAMIC_LINKER): Update.
23744
23745 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23746
23747         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23748         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23749         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23750         *prefetch_3dnow_rex.
23751
23752 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23753
23754         * target.h (struct asm_out):Add declare_constant_name field.
23755         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23756         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23757         * output.h (default_asm_declare_constant_name): Declare.
23758         (assemble_label): Update prototype.
23759         * varasm.c (assemble_constant_contents): Use
23760         targetm.asm_out.declare_constant_name target hook.
23761         (assemble_label): Add 'file' argument.
23762         (default_asm_declare_constant_name): New function.
23763         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23764         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23765         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23766
23767         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23768         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23769         (machopic_output_indirection): Update assemble_label argument list.
23770         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23771         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23772
23773 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23774
23775         PR middle-end/44391
23776         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23777         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23778
23779 2010-06-15  Richard Guenther  <rguenther@suse.de>
23780
23781         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23782
23783 2010-06-15  Paul Brook  <paul@codesourcery.com>
23784
23785         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23786         hard-float ABI.
23787
23788 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23789
23790         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23791         don't get a vector type for output.
23792
23793 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23794
23795         PR fortran/44536
23796         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23797         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23798         (LANG_HOOKS_DECLS): Add it.
23799         * gimplify.c (omp_notice_variable): Call
23800         lang_hooks.decls.omp_report_decl.
23801
23802 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23803
23804         PR lto/44464
23805         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23806         on the newly dead SSA name.
23807
23808 2010-06-15  Alan Modra  <amodra@gmail.com>
23809
23810         * doc/invoke.texi: Add mcmodel to powerpc options.
23811         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23812         * configure: Regenerate.
23813         * config.in: Regenerate.
23814         * config/rs6000/linux64.opt (mcmodel): New.
23815         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23816         (TARGET_CMODEL, SET_CMODEL): Define.
23817         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23818         select CMODEL_MEDIUM default.
23819         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23820         (TARGET_CMODEL): Define default.
23821         * config/rs6000/rs6000.c (cmodel): New variable.
23822         (rs6000_explicit_options): Add cmodel field.
23823         (rs6000_handle_option): Handle -mcmodel.
23824         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23825         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23826         (rs6000_delegitimize_address): Recognise new toc reference rtl
23827         and minimal-toc rtl.
23828         (rs6000_legitimize_reload_address): Handle new toc references.
23829         (print_operand_address): Handle legitimate_constant_pool_address_p
23830         match before lo_sum.
23831         (rs6000_eliminate_indexed_memrefs): Tidy.
23832         (rs6000_emit_move): Tweak threshold for inlining constants.
23833         Keep rs6000_emit_allocate_stack large stack frame offsets
23834         loaded into r0 inline.
23835         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23836         (tocrel_base, tocrel_offset): New variables.
23837         (toc_relative_expr_p): Set them here.
23838         (print_operand_address): Skip over any offset on constant pool address.
23839         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23840         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23841         (offsettable_ok_by_alignment): New function.
23842         (rs6000_emit_move): Address suitably aligned local symbol_refs
23843         relative to the toc pointer for -mcmodel=medium.
23844         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23845         strict param.  Allow lo_sum version of addressing.  Verify reg
23846         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23847         * config/rs6000/constraints.md: Update for above change.
23848         * config/rs6000/predicates.md: Likewise.
23849         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23850         code.
23851         (tls_gd): Split for -mcmodel=medium/large.
23852         (tls_gd_high, tls_gd_low): New.
23853         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23854         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23855         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23856         (largetoc_high, largetoc_low): New.
23857         (cmptf_internal2): Add clobber.
23858         * config/rs6000/rs6000-protos.h: Update.
23859
23860 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23861
23862         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23863         true if no prefetch is going to be generated for a given group.
23864         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23865         estimate the prefetch_count.
23866         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23867         prefetch count by considering the unroll_factor and prefetch_mod
23868         for is_loop_prefetching_profitable.
23869
23870 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23871
23872         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23873         anything if the argument is not a MEM.
23874
23875 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23876
23877         PR debug/43650
23878         PR debug/44181
23879         PR debug/44247
23880         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23881         debug stmts.
23882         (canonicalize_loop_ivs): Likewise.
23883
23884 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23885
23886         PR debug/43656
23887         * haifa-sched.c (setup_insn_reg_pressure_info,
23888         update_register_pressure): Reject debug insns.
23889         (ready_sort): Don't setup reg pressure for debug insns.
23890         (schedule_insn): Don't update reg pressure for debug insns.
23891
23892 2010-06-14  Richard Guenther  <rguenther@suse.de>
23893
23894         * lto-streamer.c (cached_bp): Remove.
23895         (bitpack_delete): Likewise.
23896         (bitpack_create): Likewise.
23897         (bp_get_next_word): Likewise.
23898         (bp_pack_value, bp_unpack_value): Move ...
23899         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23900         Re-implement.
23901         (struct bitpack_d): Likewise.
23902         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23903         New inline functions.
23904         * lto-streamer-out.c (lto_output_bitpack): Remove.
23905         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23906         (pack_value_fields): Adjust.
23907         (lto_write_tree): Likewise.
23908         (output_gimple_stmt): Likewise.
23909         (output_function): Likewise.
23910         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23911         (input_function): Likewise.
23912         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23913         (lto_input_bitpack): Remove.
23914         (lto_materialize_tree): Adjust.
23915         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23916         * lto-cgraph.c (lto_output_edge): Adjust.
23917         (lto_output_node): Likewise.
23918         (lto_output_varpool_node): Likewise.
23919         (lto_output_ref): Likewise.
23920         (input_node): Likewise.
23921         (input_varpool_node): Likewise.
23922         (input_ref): Likewise.
23923         (input_edge): Likewise.
23924         (output_node_opt_summary): Likewise.
23925         (input_node_opt_summary): Likewise.
23926         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23927         (pure_const_read_summary): Likewise.
23928         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23929         (ipa_read_indirect_edge_info): Likewise.
23930         (ipa_write_node_info): Likewise.
23931         (ipa_read_node_info): Likewise.
23932
23933 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23934
23935         PR target/44534
23936         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23937         (vec_extract_lo_v16hi): Likewise.
23938         (vec_extract_lo_v32qi): Likewise.
23939
23940 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23941
23942         PR bootstrap/44426
23943         * tree.h (build_call_expr): Don't define as vararg macro, instead
23944         add a prototype.
23945         * builtins.c (build_call_nofold): Remove.
23946         (expand_builtin_int_roundingfn, expand_builtin_pow,
23947         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23948         expand_builtin_memset_args, expand_builtin_strcmp,
23949         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23950         build_call_nofold_loc instead of build_call_nofold.
23951         (build_call_expr): New function.
23952
23953         PR tree-optimization/44508
23954         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23955         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23956         don't eliminate trivially dead stmts.
23957         * tree-vrp.c (vrp_finalize): Pass false as last argument
23958         to substitute_and_fold.
23959         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23960         to substitute_and_fold.
23961         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23962
23963         PR bootstrap/44509
23964         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23965
23966 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23967
23968         PR tree-optimization/44507
23969         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23970         to build initial vector for BIT_AND_EXPR.
23971         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23972
23973 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23974
23975         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23976         adjust z10prop set_attr.
23977
23978 2010-06-13  Jan Hubicka  <jh@suse.cz>
23979
23980         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23981         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23982         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23983         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23984         datastructure checks into checking asserts.
23985         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23986         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23987         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23988         df_ref_create_structure): Likewise.
23989         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23990         pool_free): Use gcc_checking_assert.
23991         * alias.c (get_alias_set): Likewise.
23992         * var-tracking.c (variable_htab_free, shared_hash_copy,
23993         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23994         * lto-streamer.c (bp_unpack_value): Likewise.
23995
23996 2010-06-13  Richard Guenther  <rguenther@suse.de>
23997
23998         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23999         Do not stream but initialize TYPE_CANONICAL to NULL.
24000         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
24001         * gimple.c (gimple_types_compatible_p): Disregard
24002         TYPE_STRUCTURAL_EQUALITY_P.
24003         (gimple_register_type): Use TYPE_CANONICAL as cache.
24004         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
24005         before registering common types.
24006         * config/i386/i386.c (ix86_function_arg_boundary): Do not
24007         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
24008         * tree.h (TYPE_CANONICAL): Clarify documentation.
24009
24010 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
24011
24012         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24013         LIBCALL_VALUE): Remove macros.
24014         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
24015         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24016         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24017         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
24018         (ia64_function_value): Make static. Handle receiving the function
24019         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
24020
24021 2010-06-12  Jan Hubicka  <jh@suse.cz>
24022
24023         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
24024         at correct place.
24025
24026 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
24027
24028         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
24029
24030 2010-06-12  Jan Hubicka  <jh@suse.cz>
24031
24032         * df-core.c (df_clear_bb_info): New function.
24033         (df_set_blocks): bb_info is always allocated.
24034         (df_get_bb_info): Use block_info_elt_size.
24035         (df_set_bb_info): Likewise.
24036         (df_compact_blocks): Update for new block_info.
24037         (grow_bb_info): New function.
24038         * df-problems.c (df_grow_bb_info): Move to df-core.c
24039         (df_rd_set_bb_info): Remove.
24040         (df_rd_free_bb_info): Do not free block pool.
24041         (df_rd_alloc): Do not create pool, use check for
24042         obstack presence instead of NULL pointer for new blocks.
24043         (df_rd_free): DO not free alloc pool; clear block_info.
24044         (problem_RD): Add size of block info structure.
24045         (df_lr_set_bb_info): Remove.
24046         (df_lr_free_bb_info): Do not free block pool.
24047         (df_lr_alloc): Do not create pool, use check for
24048         obstack presence instead of NULL pointer for new blocks.
24049         (df_lr_free): DO not free alloc pool; clear block_info.
24050         (problem_LR): Add size of block info structure.
24051         (df_live_set_bb_info): Remove.
24052         (df_live_free_bb_info): Do not free block pool.
24053         (df_live_alloc): Do not create pool, use check for
24054         obstack presence instead of NULL pointer for new blocks.
24055         (df_live_free): DO not free alloc pool; clear block_info.
24056         (problem_LIVE): Add size of block info structure.
24057         (problem_CHAIN): Add size of block info structure.
24058         (df_byte_lr_set_bb_info): Remove.
24059         (df_byte_lr_free_bb_info): Do not free block pool.
24060         (df_byte_lr_alloc): Do not create pool, use check for
24061         obstack presence instead of NULL pointer for new blocks.
24062         (df_byte_lr_free): DO not free alloc pool; clear block_info.
24063         (problem_BYTE_LR): Add size of block info structure.
24064         (problem_NOTE): Add size of block info structure.
24065         (df_byte_MD_set_bb_info): Remove.
24066         (df_byte_MD_free_bb_info): Do not free block pool.
24067         (df_byte_MD_alloc): Do not create pool, use check for
24068         obstack presence instead of NULL pointer for new blocks.
24069         (df_byte_MD_free): DO not free alloc pool; clear block_info.
24070         (problem_BD): Add size of block info structure.
24071         * df-scan.c (df_scan_free_internal): Free block pool.
24072         (df_scan_set_bb_info): Remove.
24073         (df_scan_free_bb_info): Check for artificial_defs instead
24074         of bb_info being non-NULL.
24075         (df_scan_alloc): DO not create df_scan_block pool.
24076         (problem_SCAN): Set size of block info.
24077         (df_bb_refs_record): Do not allocate bb_info.
24078         * df.h (df_problem): Add block_info_elt_size.
24079         (struct dataflow): Change block_info to void *.
24080         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
24081         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
24082         in-line structures.
24083
24084 2010-06-12  Jan Hubicka  <jh@suse.cz>
24085
24086         PR tree-optimize/44485
24087         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
24088         containing use of return value of noreturn function.
24089
24090 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
24091
24092         * targhooks.c (default_function_value): Don't use
24093         FUNCTION_OUTGOING_VALUE.
24094         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
24095         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
24096
24097 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
24098
24099         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
24100         Add crtfastmath.o to extra_parts.
24101         * config/mips/crtfastmath.c: New.
24102         * config/mips/linux.h (ENDFILE_SPEC): New.
24103
24104 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
24105
24106         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
24107         old_type in parameter.
24108         (gcc_type_for_value): Update call to gcc_type_for_interval.
24109         (compute_type_for_level_1): Renamed compute_type_for_level.
24110         Update call to gcc_type_for_interval.
24111
24112 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24113
24114         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
24115         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
24116
24117 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24118
24119         * opts-common.c: Include options.h.
24120         (integral_argument): Move from opts.c.
24121         (decode_cmdline_option): New.  Based on read_cmdline_option.
24122         * opts.c (integral_argument): Move to opts-common.c.
24123         (read_cmdline_option): Move most contents to
24124         decode_cmdline_option.  Use %qs in diagnostics.
24125         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
24126         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
24127         decode_cmdline_option): New.
24128
24129 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24130
24131         PR target/44481
24132         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
24133         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
24134         (partiysi2_cmp): Ditto.
24135         (*partiyhi2_cmp): Ditto.
24136         (*parityqi2_cmp): Remove.
24137
24138 2010-06-11  Jan Hubicka  <jh@suse.cz>
24139
24140         * bitmap.h (bmp_iter_next_bit): New.
24141         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
24142
24143 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
24144             Eric Botcazou  <ebotcazou@adacore.com>
24145
24146         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
24147         computed cost.
24148
24149 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24150
24151         * config/i386/i386.md (unspec): New define_c_enum.
24152         (unspecv): Ditto.
24153
24154 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
24155
24156         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
24157
24158 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
24159
24160         PR middle-end/44483
24161         * tree-if-conv.c (bb_predicate_s): New struct.
24162         (bb_predicate_p): New.
24163         (bb_has_predicate): New.
24164         (bb_predicate): New.
24165         (set_bb_predicate): New.
24166         (bb_predicate_gimplified_stmts): New.
24167         (set_bb_predicate_gimplified_stmts): New.
24168         (add_bb_predicate_gimplified_stmts): New.
24169         (init_bb_predicate): New.
24170         (free_bb_predicate): New.
24171         (is_predicated): Use bb_predicate.
24172         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
24173         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
24174         before processing their successors.
24175         (clean_predicate_lists): Removed.
24176         (find_phi_replacement_condition): Use bb_predicate.
24177         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
24178         computations.
24179         (insert_gimplified_predicates): New.
24180         (combine_blocks): Call insert_gimplified_predicates.
24181         (tree_if_conversion): Call free_bb_predicate instead of
24182         clean_predicate_lists.
24183
24184 2010-10-11  Paul Brook  <paul@codesourcery.com>
24185
24186         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
24187         * config/arm/arm.c (all_architectures): Change v7e-m default to
24188         cortexm4.
24189         * config/arm/arm-cores.def: Add cortex-m4.
24190         * config/arm/arm-tune.md: Regenerate.
24191
24192 2010-06-11  Jan Hubicka  <jh@suse.cz>
24193
24194         * ipa-pure-const.c (special_builtlin_state): New function.
24195         (check_call): Use it instead of special casign BUILT_IN_RETURN.
24196         (propagate_pure_const): Use it.
24197
24198 2010-06-11  Jan Hubicka  <jh@suse.cz>
24199
24200         * df-problems.c (df_live_scratch): Convert to bitmap_head.
24201         (df_live_alloc): Initialize df_live_scratch when initializing
24202         problem_data.
24203         (df_live_transfer_function): Update uses of df_live_scratch.
24204         (df_live_free): Free problem_data; clear df_live_scratch before
24205         releasing the obstack.
24206         (df_md_free): Free problem data.
24207
24208 2010-06-11  Jan Hubicka  <jh@suse.cz>
24209
24210         * doc/invoke.texi (Wsuggest-attribute): Document.
24211         (Wmissing-noreturn): Remove.
24212         * ipa-pure-const.c (warn_function_noreturn): New function.
24213         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
24214         warn_missing_noreturn.
24215         * common.opt (Wsuggest-attribute=noreturn): New.
24216         * tree-flow.h (warn_function_noreturn): Declare.
24217         * tree-cfg.c (execute_warn_function_noreturn): Use
24218         warn_function_noreturn.
24219         (gate_warn_function_noreturn): New.
24220         (pass_warn_function_noreturn): Update.
24221
24222 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24223
24224         * c-typeck.c (handle_warn_cast_qual): Add loc
24225         parameter. Improve warning message.
24226         (build_c_cast): Pass location to handle_warn_cast_qual.
24227
24228 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24229
24230         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
24231         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
24232         insn mnemonic.
24233         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
24234
24235 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
24236
24237         Fix bootstap on mips
24238         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
24239         be naming typedefs.
24240
24241 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
24242
24243         * system.h (helper_const_non_const_cast): New inline for
24244         gcc version <= 4.0.
24245         (CONST_CAST2): For gcc version <= 4.0 use
24246         new helper to do const/non-const casting.
24247
24248 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24249
24250         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
24251         * Makefile.in (OBJS-common): Include insn-enums.o.
24252         (insn-enums.o): New rule.
24253         (simple_generated_c): Add insn-enums.c.
24254         (build/genenums.o): New rule.
24255         (genprogmd): Add "enums".
24256         * genconstants.c (print_enum_type): Declare a C string array
24257         for each enum.
24258         * genenums.c: New file.
24259         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
24260         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
24261         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
24262
24263 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24264
24265         * doc/md.texi (define_enum_attr): Document.
24266         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
24267         * read-md.h (lookup_enum_type): Declare.
24268         * read-md.c (lookup_enum_type): New function.
24269         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
24270         * genattrtab.c (attr_desc): Add an enum_name field.
24271         (evaluate_eq_attr): Take the associated attribute as argument.
24272         Get the enum prefix from the enum_name field, if defined.
24273         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
24274         (simplify_test_exp): Pass attr to evaluate_eq_attr.
24275         (add_attr_value): New function, split out from...
24276         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
24277         (write_test_expr): Pass attr to evaluate_eq_attr.
24278         (write_attr_get): Use the enum_name as the enum tag, if defined.
24279         (write_attr_valueq): Use the enum_name as a prefix, if defined.
24280         (find_attr): Initialize enum_name.
24281         (main): Handle DEFINE_ENUM_ATTR.
24282         * gensupport.c (process_rtx): Likewise.
24283         * config/mips/mips.h (mips_tune_attr): Delete.
24284         * config/mips/mips.md (cpu): Use define_attr_enum.
24285
24286 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24287
24288         * doc/md.texi (define_c_enum, define_enum): Document.
24289         * read-md.h (md_constant): Add a parent_enum field.
24290         (enum_value, enum_type): New structures.
24291         (upcase_string, traverse_enum_types): Declare.
24292         * read-md.c (enum_types): New variable.
24293         (upcase_string, add_constant): New functions.
24294         (handle_constants): Don't create the hash table here.
24295         Use add_constant.
24296         (traverse_md_constants): Don't check for a null md_constants.
24297         (decimal_string, handle_enum, traverse_enum_types): New functions.
24298         (read_md_files): Initialize md_constants and md_enums.
24299         * genconstants.c (print_md_constant): Ignore info argument.
24300         Only print constants that belong to no enum.
24301         (print_enum_type): New function.
24302         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24303         for each defined enum type.
24304         * config/mips/mips.md (processor): New define_enum.
24305         (unspec): New define_c_enum.
24306         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24307         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24308         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24309         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24310         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24311         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24312         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24313         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24314         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24315         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24316         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24317         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24318         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24319         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24320         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24321         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24322         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24323         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24324         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24325         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24326         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24327         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24328         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24329         (UNSPEC_RDDSP): Move to mips-dsp.md.
24330         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24331         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24332         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24333         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24334         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24335         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24336         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24337         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24338         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24339         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24340         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24341         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24342         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24343         Moved to mips-dspr2.md.
24344         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24345         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24346         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24347         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24348         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24349         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24350         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24351         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24352         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24353         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24354         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24355         UNSPEC_LOONGSON_PSADBH)
24356         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24357         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24358         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24359         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24360         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24361         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24362         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24363         (cpu): Update comment.
24364         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24365         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24366         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24367         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24368         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24369         UNSPEC_LOONGSON_PCMPEQ)
24370         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24371         UNSPEC_LOONGSON_PINSR_0)
24372         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24373         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24374         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24375         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24376         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24377         UNSPEC_LOONGSON_PSADBH)
24378         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24379         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24380         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24381         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24382         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24383         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24384         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24385         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24386         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24387         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24388         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24389         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24390         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24391         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24392         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24393         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24394         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24395         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24396         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24397         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24398         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24399         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24400         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24401         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24402         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24403         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24404         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24405         (UNSPEC_RDDSP): Moved from mips.md.
24406         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24407         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24408         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24409         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24410         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24411         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24412         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24413         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24414         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24415         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24416         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24417         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24418         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24419         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24420         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24421         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24422         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24423         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24424         (UNSPEC_SCC): Moved from mips.md.
24425         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24426         "processor_type" to "processor".
24427         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24428         * config/mips/mips.h (processor_type): Delete.
24429         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24430         "processor_type" to "processor".
24431
24432 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24433
24434         * configure.ac (tm_include_list): Add insn-constants.h.
24435         * configure: Regenerate.
24436         * Makefile.in (GTM_H): Move insn-constants.h here from...
24437         (TM_H): ...here.
24438         * mkconfig.sh: Remove special handling for insn-constants.h.
24439
24440 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24441
24442         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24443         (BUILD_MD): ...this new variable.
24444         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24445         that include the old contents of simple_generated_h and
24446         simple_generated_c.
24447         (simple_generated_h, simple_generated_c): Include them.  Add
24448         insn-constants.h.
24449         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24450         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24451         Remove these dependencies from the main rule and include
24452         insn-conditions.md in the command line only if it appears
24453         in the dependency list.
24454         (insn-constants.h, s-constants): Delete.
24455         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24456         or gensupport.h.
24457         (build/genmddeps.o): Likewise.
24458         (genprogrtl): New variable that contains everything from genprogmd
24459         except mddeps and constants.
24460         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24461         depend on $(BUILD_MD)
24462         (genprog): New variable.  Make these programs depend on
24463         $(BUILD_ERRORS).
24464         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24465         (main): Use read_md_files instead of init_rtx_reader_args.
24466         * genconstants.c: As for genmddeps.c.
24467         * read-md.h (read_skip_construct): Declare.
24468         * read-md.c (read_skip_construct): New function.
24469         (handle_file): Allow a null handle_directive, skipping the
24470         construct if so.
24471         (parse_include): Update the comment accordingly.
24472
24473 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24474
24475         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24476         * genmddeps.c: Include read-md.h.
24477         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24478         * genattr.c (main): Likewise.
24479         * genattrtab.c (main): Likewise.
24480         * genautomata.c (main): Likewise.
24481         * gencodes.c (main): Likewise.
24482         * genconditions.c (main): Likewise.
24483         * genconfig.c (main): Likewise.
24484         * genconstants.c (main): Likewise.
24485         * genemit.c (main): Likewise.
24486         * genextract.c (main): Likewise.
24487         * genflags.c (main): Likewise.
24488         * genopinit.c (main): Likewise.
24489         * genoutput.c (main): Likewise.
24490         * genpeep.c (main): Likewise.
24491         * genrecog.c (main): Likewise.
24492         * genpreds.c (main): Likewise.
24493         * gensupport.h (in_fname): Move to read-md.h.
24494         (init_md_reader_args_cb): Rename to...
24495         (init_rtx_reader_args_cb): ...this and return a bool.
24496         (init_md_reader_args): Rename to...
24497         (init_rtx_reader_args): ...this and return a bool.
24498         (include_callback): Move to read-md.h.
24499         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24500         (file_name_list, first_dir_md_include): Move to read-md.c
24501         (first_bracket_include): Delete unused variable.
24502         (last_dir_md_include): Move to read-md.c.
24503         (process_include): Delete, moving code to read-md.c:handle_include.
24504         (process_rtx): Don't handle INCLUDE.
24505         (save_string): Delete.
24506         (rtx_handle_directive): New function.
24507         (init_md_reader_args_cb): Rename to...
24508         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24509         Use read_md_args.
24510         (init_md_reader_args): Rename to...
24511         (init_rtx_reader_args): ...this and return a boolean success value.
24512         * rtl.def (INCLUDE): Delete.
24513         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24514         argument.
24515         * read-rtl.c (read_conditions): Don't gobble ')' here.
24516         (read_mapping): Likewise.
24517         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24518         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24519         Store the whole queue in *X.  Remove call to init_md_reader.
24520         (read_rtx_1): Rename to...
24521         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24522         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24523         here.
24524         (read_nested_rtx): New function.  Handle (nil) here rather than
24525         in read_rtx_code.
24526         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24527         gobble ')' here.
24528         * read-md.h (directive_handler_t): New type.
24529         (in_fname, include_callback): Moved from read-md.h.
24530         (read_constants, init_md_reader): Delete.
24531         (read_md_files): Declare.
24532         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24533         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24534         from gensupport.c.
24535         (read_constants): Rename to...
24536         (handle_constants): ...this.  Don't gobble ')' here.
24537         (handle_include, handle_file, handle_toplevel_file)
24538         (parse_include): New functions, mostly taken from gensupport.c.
24539         (init_md_reader): Subsume into...
24540         (read_md_files): ...this new function.
24541
24542 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24543
24544         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24545         (unread_char): Decrement read_md_lineno after putting back '\n'.
24546         * read-md.c (fatal_with_file_and_line): Push back any characters
24547         that we decide not to add to the context.
24548         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24549         fatal_expected_char in cases where '/' ends a line (for example).
24550         (read_name): Don't increment read_md_lineno here.
24551         (read_escape): Likewise.
24552         (read_quoted_string): Likewise.
24553         (read_braced_string): Likewise.
24554
24555 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24556
24557         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24558         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24559         * genconstants.c: Include read-md.h.
24560         * read-rtl.c (md_constants): Move to read-md.c.
24561         (md_name): Move to read-md.h.
24562         (initialize_iterators): Use leading_string_hash instead of def_hash
24563         and leading_string_eq_p instead of def_name_eq_p.
24564         (read_name): Move to read-md.c.
24565         (def_hash, def_name_eq_p): Delete.
24566         (read_constants, traverse_md_constants): Move to read-md.c.
24567         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24568         * read-md.h: Include hashtab.h.
24569         (md_name): Moved from read-rtl.c.
24570         (md_constant): Moved from read-md.h.
24571         (leading_string_hash, leading_string_eq_p, read_name)
24572         (read_constants, traverse_md_constants): Declare.
24573         * read-md.c (md_constants): Moved from read-rtl.c.
24574         (leading_string_hash, leading_string_eq_p): New functions.
24575         (read_name, read_constants, traverse_md_constants): Moved from
24576         read-rtl.c.
24577
24578 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24579
24580         * read-rtl.c (md_name): New structure.
24581         (read_name): Take an md_name instead of a buffer pointer.
24582         Use the "string" field instead of strcpy when expanding constants.
24583         (read_constants): Remove the tmp_char argument.  Update the calls
24584         to read_name, using two local name buffers instead of the tmp_char
24585         argument.  Merge the constant-creation code.
24586         (read_conditions): Remove the tmp_char argument.  Update the calls
24587         to read_name, using a local name buffer instead of the tmp_char
24588         argument.
24589         (read_mapping): Replace tmp_char variable with a local name buffer.
24590         Update the calls to read_name.
24591         (read_rtx_1): Likewise.  Update the calls to read_constants and
24592         read_conditions.
24593
24594 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24595
24596         * Makefile.in (build/read-md.o): Depend on errors.h.
24597         * read-md.h (error_with_line): Declare.
24598         * read-md.c: Include errors.h.
24599         (message_with_line_1): New function, extracted from...
24600         (message_with_line): ...here.
24601         (error_with_line): New function.
24602         * genattrtab.c: If a call to message_with_line is followed by
24603         "have_error = 1;", replace both statements with a call to
24604         error_with_line.
24605         * genoutput.c: Likewise.
24606         * genpreds.c: Likewise.
24607         * genrecog.c: If a call to message_with_line is followed by
24608         "error_count++;", replace both statements with a call to
24609         error_with_line.
24610         (errorcount): Delete.
24611         (main): Don't check it.
24612         * gensupport.c: If a call to message_with_line is followed by
24613         "errors = 1;", replace both statements with a call to error_with_line.
24614         (errors): Delete.
24615         (process_define_cond_exec): Check have_error instead of errors.
24616         (init_md_reader_args_cb): Likewise.  Don't set errors.
24617
24618 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24619
24620         * read-md.h (read_md_file): Declare.
24621         (read_char, unread_char): New functions.
24622         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24623         (read_quoted_string, read_string): Remove FILE * argument.
24624         * read-md.c (read_md_file): New variable.
24625         (read_md_filename, read_md_lineno): Update comments and remove
24626         unnecessary initialization.
24627         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24628         (read_escape, read_quoted_string, read_braced_string, read_string):
24629         Remove FILE * argument.  Update calls accordingly, using read_char
24630         and unread_char instead of getc and ungetc.
24631         * rtl.h (read_rtx): Remove FILE * argument.
24632         * read-rtl.c (iterator_group): Remove FILE * argument from
24633         "find_builtin".
24634         (iterator_traverse_data): Remove "infile" field.
24635         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24636         (add_mapping, read_name, read_constants, read_conditions)
24637         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24638         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24639         Remove file arguments from all calls, using read_char and unread_char
24640         instead of getc and ungetc.
24641         * gensupport.c (process_include): Preserve read_md_file around
24642         the include.  Set read_md_file to the handle of the included file.
24643         Update call to read_rtx.
24644         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24645         and remove local FILE *.  Update calls to read_rtx.
24646
24647 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24648
24649         * read-md.h (read_rtx_lineno): Rename to...
24650         (read_md_lineno): ...this.
24651         (read_rtx_filename): Rename to...
24652         (read_md_filename): ...this.
24653         (copy_rtx_ptr_loc): Rename to...
24654         (copy_md_ptr_loc): ...this.
24655         (print_rtx_ptr_loc): Rename to...
24656         (print_md_ptr_loc): ...this.
24657         * read-md.c: Likewise.  Update references after renaming.
24658         (string_obstack): Replace RTL with MD in comment.
24659         (set_rtx_ptr_loc): Rename to...
24660         (set_md_ptr_loc): ...this.
24661         (get_rtx_ptr_loc): Rename to...
24662         (get_md_ptr_loc): ...this.
24663         * genconditions.c: Update references after renaming.
24664         * genemit.c: Likewise.
24665         * genoutput.c: Likewise.
24666         * genpreds.c: Likewise.
24667         * gensupport.c: Likewise.
24668         * read-rtl.c: Likewise.
24669
24670 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24671
24672         * Makefile.in (READ_MD_H): New variable.
24673         (BUILD_RTL): Add build/read-md.o.
24674         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24675         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24676         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24677         (build/genextract.o, build/genflags.o, build/genoutput.o)
24678         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24679         (build/read-md.o): New rule.
24680         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24681         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24682         * coretypes.h: ...here.
24683         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24684         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24685         * genattr.c: Include read-md.h.
24686         * genattrtab.c: Likewise.
24687         * genconditions.c: Likewise.
24688         * genemit.c: Likewise.
24689         * genextract.c: Likewise.
24690         * genflags.c: Likewise.
24691         * genoutput.c: Likewise.
24692         * genpreds.c: Likewise.
24693         * genrecog.c: Likewise.
24694         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24695         (join_c_conditions, print_c_condition, read_rtx_filename)
24696         (read_rtx_lineno): Move to read-md.h.
24697         * read-rtl.c: Include read-md.h.
24698         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24699         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24700         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24701         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24702         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24703         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24704         (read_braced_string, read_string): Move to read-md.c.
24705         (read_rtx): Move some initialization to init_md_reader and call
24706         init_md_reader here.
24707         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24708         Move to read-md.h.
24709         * gensupport.c: Include read-md.h.
24710         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24711         * read-md.h, read-md.c: New files.
24712
24713 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24714
24715         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24716         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24717         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24718         * config/moxie/moxie.c (moxie_function_value): Make static.
24719         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24720         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24721
24722 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24723
24724         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24725         * dbgcnt.def (tree_sra): New counter.
24726         * tree-sra.c: Include dbgcnt.h.
24727         (gate_intra_sra): Check tree_sra debug counter.
24728
24729 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24730
24731         PR tree-optimization/44258
24732         * tree-sra.c (build_access_subtree): Return false iff there is a
24733         partial overlap.
24734         (build_access_trees): Likewise.
24735         (analyze_all_variable_accesses): Disqualify candidates if
24736         build_access_trees returns true for them.
24737
24738 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24739
24740         PR debug/41371
24741         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24742         tail-recurse into canonical node.  Fast-forward over
24743         non-canonical VALUEs.
24744
24745 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24746
24747         PR boostrap/44470
24748         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24749         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24750         (add lea splitter): Likewise.
24751         (add_zext lea splitter): Likewise.
24752
24753 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24754
24755         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24756
24757 2010-06-10  Jan Hubicka  <jh@suse.cz>
24758
24759         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24760         (df_live_alloc): Initialize problem data and live_osbtacks.
24761         (df_live_finalize): Remove obstack, problem data; do not
24762         clear all bitmaps.
24763         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24764         data when not allocated.
24765         (df_live_verify_solution_start): Do not allocate problem data.
24766         (df_live_verify_solution_end): Check if out is allocated.
24767         (struct df_md_problem_data): New structure.
24768         (df_md_alloc): Allocate problem data.
24769         (df_md_free): Free problem data; do not clear bitmaps.
24770
24771 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24772
24773         PR bootstrap/37304
24774         * configure.ac: Replace $() with ${} when intending to expand
24775         variables rather than invoking commands.
24776         * configure: Re-generate.
24777
24778 2010-06-10  Jan Hubicka  <jh@suse.cz>
24779
24780         PR rtl-optimization/44460
24781         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24782         TYPE_NEEDS_CONSTRUCTING sanity check.
24783
24784 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24785
24786         * doc/include/fdl.texi: Move to GFDL version 1.3.
24787
24788         * doc/cpp.texi: Move to GFDL version 1.3.
24789         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24790         * doc/gccint.texi: Move to GFDL version 1.3.
24791         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24792         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24793         * doc/invoke.texi: Move to GFDL version 1.3.
24794
24795 2010-06-09  Jan Hubicka  <jh@suse.cz>
24796
24797         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24798         Break out from ...
24799         (propagate) ... here; swap the order.
24800
24801 2010-06-09  Jan Hubicka  <jh@suse.cz>
24802
24803         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24804         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24805         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24806         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24807
24808 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24809
24810         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24811         Do not the gather memory reference in the outer loop if the step
24812         is not a constant.
24813
24814 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24815
24816         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24817         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24818         8 to 4.  Minor change of the related comments.
24819
24820 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24821
24822         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24823         the scev analysis when the variable is not used outside the loop
24824         in a close phi node: call compute_overall_effect_of_inner_loop.
24825
24826 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24827
24828         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24829         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24830         (build_sese_conditions_before): Renamed call to single_pred_cond.
24831         (build_sese_conditions_after): Same.
24832
24833 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24834
24835         * graphite-poly.h: Fix comments and indentation.
24836         * graphite-sese-to-poly.c: Same.
24837         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24838         * tree-chrec.c: Fix comments and indentation.
24839         (tree-ssa-loop-niter.c): Same.
24840
24841 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24842
24843         PR rtl-optimization/42461
24844         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24845         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24846
24847 2010-06-09  Jan Hubicka  <jh@suse.cz>
24848
24849         * bitmap.c (bitmap_and): Walk array forward.
24850         (bitmap_and_compl_into): Likewise.
24851         (bitmap_xor): Likewise.
24852         (bitmap_xor_into):  Likewise.
24853         (bitmap_equal_p): Likewise.
24854         (bitmap_intersect_p): Likewise.
24855         (bitmap_intersect_compl_p): Likewise.
24856         (bitmap_ior_and_into): Likewise.
24857         (bitmap_elt_copy): Likewise.
24858         (bitmap_and_compl): Likewise.
24859         (bitmap_elt_ior): Likewise.
24860
24861 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24862
24863         * opts-common.c (prune_options): Ensure replacement argv array
24864         is correctly terminated by a NULL entry.
24865
24866 2010-06-09  Jan Hubicka  <jh@suse.cz>
24867
24868         * cgraph.h (varpool_first_static_initializer,
24869         varpool_next_static_initializer): Make checking only when
24870         checking enabled.
24871         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24872         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24873         gcc_assert to gcc_checking_assert.
24874         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24875         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24876         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24877         op_iter_init_phiuse, op_iter_init_phidef,
24878         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24879         gcc_checking_assert.
24880         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24881         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24882         partition_is_global, live_on_entry, live_on_exit,
24883         live_merge_and_clear): Likewise.
24884         * system.h (gcc_checking_assert): New macro.
24885         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24886
24887 2010-06-09  Jason Merrill  <jason@redhat.com>
24888
24889         * Makefile.in (TAGS): Collect tags info from c-family.
24890
24891 2010-06-09  Jan Hubicka  <jh@suse.cz>
24892
24893         * gimple.h (gcc_gimple_checking_assert): New macro.
24894         (gimple_set_def_ops, gimple_set_use_ops,
24895         gimple_set_vuse, gimple_set_vdef,
24896         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24897         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24898         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24899         gimple_asm_output_op, gimple_asm_output_op_ptr,
24900         gimple_asm_set_output_op, gimple_asm_clobber_op,
24901         gimple_asm_set_clobber_op, gimple_asm_label_op,
24902         gimple_asm_set_label_op, gimple_try_set_kind,
24903         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24904         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24905         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24906         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24907         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24908         gimple_omp_for_set_initial, gimple_omp_for_final,
24909         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24910         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24911         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24912         conditional with ENABLE_GIMPLE_CHECKING.
24913         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24914
24915 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24916
24917         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24918         (get_computation_cost_at): Use it.
24919         (determine_use_iv_cost_condition): Likewise.
24920         (determine_iv_cost): Likewise.
24921
24922 2010-06-09  Richard Guenther  <rguenther@suse.de>
24923
24924         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24925         replace constants.
24926
24927 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24928
24929         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24930
24931 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24932
24933         PR tree-optimization/44423
24934         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24935         (analyze_access_subtree): Pass negative allow_replacements to children
24936         if the current type is scalar.
24937
24938 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24939
24940         PR testsuite/42843
24941         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24942         * doc/plugins.texi (Plugin license check): Update information
24943         on type of plugin_is_GPL_compatible.
24944         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24945         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24946
24947 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24948
24949         * config/arm/arm.c (thumb2_reorg): New function.
24950         (arm_reorg): Call it.
24951         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24952         arithmetic operations): Delete.
24953
24954 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24955
24956         PR target/44067
24957         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24958         e500v2 target.
24959
24960 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24961
24962         PR plugins/44459
24963         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24964
24965 2010-06-08  Jan Hubicka  <jh@suse.cz>
24966
24967         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24968         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24969
24970 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24971
24972         PR tree-optimization/39874
24973         PR middle-end/28685
24974         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24975         Declare.
24976         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24977         same_bool_result_p): New.
24978         (and_var_with_comparison, and_var_with_comparison_1,
24979         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24980         (or_var_with_comparison, or_var_with_comparison_1,
24981         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24982         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24983         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24984         of combine_comparisons.
24985         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24986
24987 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24988
24989         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24990         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24991         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24992         pdp11_function_value_regno_p): New functions.
24993         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24994         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24995
24996 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24997
24998         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24999         Thumb-2 in the MINUS case.
25000
25001 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25002
25003         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
25004
25005         * doc/gty.texi (GTY Options): Document typed GC allocation and
25006         variable_size GTY option.
25007
25008         * ggc-internal.h: New.
25009
25010         * ggc.h: Update copyright year.
25011         (digit_string): Move to stringpool.c.
25012         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
25013         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
25014         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
25015         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
25016         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
25017         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
25018         (ggc_force_collect, ggc_get_size, ggc_statistics)
25019         (ggc_print_common_statistics): Move to ggc-internal.h.
25020         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
25021         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
25022         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
25023         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
25024         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
25025         (ggc_alloc_zone_pass_stat): Remove.
25026         (ggc_internal_alloc_stat, ggc_internal_alloc)
25027         (ggc_internal_cleared_alloc_stat): New.
25028         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
25029         (ggc_internal_vec_alloc_stat)
25030         (ggc_internal_cleared_vec_alloc_stat)
25031         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
25032         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
25033         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
25034         (ggc_cleared_alloc_ptr_array_two_args): New.
25035         (htab_create_ggc, splay_tree_new_ggc): Redefine.
25036         (ggc_splay_alloc): Change the type of the first argument to
25037         enum gt_types_enum.
25038         (ggc_alloc_string): Make macro.
25039         (ggc_alloc_string_stat): New.
25040         (ggc_strdup): Redefine.
25041         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
25042         (ggc_alloc_rtvec_sized): New.
25043         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
25044         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
25045         (ggc_internal_cleared_alloc_zone_stat)
25046         (ggc_internal_zone_alloc_stat)
25047         (ggc_internal_zone_cleared_alloc_stat)
25048         (ggc_internal_zone_vec_alloc_stat)
25049         (ggc_alloc_zone_rtx_def_stat)
25050         (ggc_alloc_zone_tree_node_stat)
25051         (ggc_alloc_zone_cleared_tree_node_stat)
25052         (ggc_alloc_cleared_gimple_statement_d_stat): New.
25053
25054         * ggc-common.c: Include ggc-internal.h.
25055         (ggc_internal_cleared_alloc_stat): Rename from
25056         ggc_alloc_cleared_stat.
25057         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
25058         (ggc_calloc): Remove.
25059         (ggc_cleared_alloc_htab_ignore_args): New.
25060         (ggc_cleared_alloc_ptr_array_two_args): New.
25061         (ggc_splay_alloc): Add obj_type parameter.
25062         (init_ggc_heuristics): Formatting fixes.
25063
25064         * ggc-none.c: Update copyright year.
25065         (ggc_alloc_stat): Rename to ggc_alloc_stat.
25066         (ggc_alloc_cleared_stat): Rename to
25067         ggc_internal_cleared_alloc_stat.
25068         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25069
25070         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
25071         Remove references to ggc_alloc in comments.
25072         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
25073         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
25074         (new_ggc_zone, destroy_ggc_zone): Remove.
25075         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25076
25077         * ggc-zone.c: Include ggc-internal.h.  Remove references to
25078         ggc_alloc in comments.
25079         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
25080         (ggc_internal_alloc_zone_pass_stat): New.
25081         (ggc_internal_cleared_alloc_zone_stat): New.
25082         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
25083         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
25084         (new_ggc_zone, destroy_ggc_zone): Remove.
25085
25086         * stringpool.c: Update copyright year.  Include ggc-internal.h
25087         (digit_vector): Make static.
25088         (digit_string): Moved from ggc.h.
25089         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
25090         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
25091
25092         * Makefile.in (GGC_INTERNAL_H): New.
25093         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
25094         $(GGC_INTERNAL_H) to dependencies.
25095
25096         * gengtype.c: Update copyright year.
25097         (walk_type): Accept variable_size GTY option.
25098         (USED_BY_TYPED_GC_P): New macro.
25099         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
25100         whitespace at the end of strings.
25101         (get_type_specifier, variable_size_p): New functions.
25102         (alloc_quantity, alloc_zone): New enums.
25103         (write_typed_alloc_def): New function.
25104         (write_typed_struct_alloc_def): Likewise.
25105         (write_typed_typed_typedef_alloc_def): Likewise.
25106         (write_typed_alloc_defns): Likewise.
25107         (output_typename, write_splay_tree_allocator_def): Likewise.
25108         (write_splay_tree_allocators): Likewise.
25109         (main): Call write_typed_alloc_defns and
25110         write_splay_tree_allocators.
25111
25112         * lto-streamer.h (lto_file_decl_data_ptr): New.
25113
25114         * passes.c (order): Define using cgraph_node_ptr.
25115
25116         * strinpool.c (struct string_pool_data): Declare nested_ptr using
25117         ht_identifier_ptr.
25118
25119         * gimple.h (union gimple_statement_d): Likewise.
25120
25121         * rtl.h (struct rtx_def): Likewise.
25122         (struct rtvec_def): Likewise.
25123
25124         * tree.h (union tree_node): Likewise.
25125
25126         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
25127
25128         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
25129
25130         * tree-scalar-evolution.c (scev_initialize): Likewise.
25131
25132         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
25133
25134         * dwarf2asm.c (dw2_force_const_mem): Likewise.
25135
25136         * omp-low.c (lower_omp_critical): Likewise.
25137
25138         * bitmap.h (struct bitmap_head_def): Update comment to not
25139         reference ggc_alloc.
25140
25141         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
25142
25143         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
25144
25145         * ipa-prop.c (duplicate_ggc_array): Rename to
25146         duplicate_ipa_jump_func_array.  Use typed GC allocation.
25147         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
25148
25149         * gimple.c (gimple_alloc_stat): Use
25150         ggc_alloc_cleared_gimple_statement_d_stat.
25151
25152         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
25153
25154         * tree.c (make_node_stat): Use
25155         ggc_alloc_zone_cleared_tree_node_stat.
25156         (make_tree_vec_stat): Likewise.
25157         (build_vl_exp_stat): Likewise.
25158         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
25159         (make_tree_binfo_stat): Likewise.
25160         (tree_cons_stat): Likewise.
25161
25162         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
25163         (shallow_copy_rtx_stat): Likewise.
25164         (make_node_stat): Likewise.
25165
25166         * lto-symtab.c: Fix comment.
25167
25168         * tree-cfg.c (create_bb): Update comment to not reference
25169         ggc_alloc_cleared.
25170         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
25171
25172         * varpool.c (varpool_node): Use typed GC allocation.
25173         (varpool_extra_name_alias): Likewise.
25174
25175         * varasm.c (emutls_decl): Likewise.
25176         (get_unnamed_section): Likewise.
25177         (get_noswitch_section): Likewise.
25178         (get_section): Likewise.
25179         (get_block_for_section): Likewise.
25180         (build_constant_desc): Likewise.
25181         (create_constant_pool): Likewise.
25182         (force_const_mem): Likewise.
25183
25184         * tree.c (build_vl_exp_stat): Likewise.
25185         (build_real): Likewise.
25186         (build_string): Likewise.
25187         (decl_debug_expr_insert): Likewise.
25188         (decl_value_expr_insert): Likewise.
25189         (type_hash_add): Likewise.
25190         (build_omp_clause): Likewise.
25191
25192         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
25193
25194         * tree-ssa.c (init_tree_ssa): Likewise.
25195
25196         * tree-ssa-structalias.c (heapvar_insert): Likewise.
25197
25198         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25199
25200         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25201
25202         * tree-ssa-alias.c (get_ptr_info): Likewise.
25203
25204         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25205
25206         * tree-phinodes.c (allocate_phi_node): Likewise.
25207
25208         * tree-iterator.c (tsi_link_before): Likewise.
25209         (tsi_link_after): Likewise.
25210
25211         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25212
25213         * tree-dfa.c (create_var_ann): Likewise.
25214
25215         * tree-cfg.c (create_bb): Likewise.
25216
25217         * toplev.c (alloc_for_identifier_to_locale): Likewise.
25218         (general_init): Likewise.
25219
25220         * stringpool.c (stringpool_ggc_alloc): Likewise.
25221         (gt_pch_save_stringpool): Likewise.
25222
25223         * sese.c (if_region_set_false_region): Likewise.
25224
25225         * passes.c (do_per_function_toporder): Likewise.
25226
25227         * optabs.c (set_optab_libfunc): Likewise.
25228         (set_conv_libfunc): Likewise.
25229
25230         * lto-symtab.c (lto_symtab_register_decl): Likewise.
25231
25232         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25233         (input_eh_region): Likewise.
25234         (input_eh_lp): Likewise.
25235         (make_new_block): Likewise.
25236         (unpack_ts_real_cst_value_fields): Likewise.
25237
25238         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25239
25240         * lto-cgraph.c (input_node_opt_summary): Likewise.
25241
25242         * loop-init.c (loop_optimizer_init): Likewise.
25243
25244         * lambda.h (lambda_vector_new): Likewise.
25245
25246         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
25247
25248         * ira.c (update_equiv_regs): Likewise.
25249
25250         * ipa.c (cgraph_node_set_new): Likewise.
25251         (cgraph_node_set_add): Likewise.
25252         (varpool_node_set_new): Likewise.
25253         (varpool_node_set_add): Likewise.
25254
25255         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
25256         (duplicate_ipa_jump_func_array): Likewise.
25257         (ipa_read_node_info): Likewise.
25258
25259         * ipa-cp.c (ipcp_create_replace_map): Likewise.
25260
25261         * integrate.c (get_hard_reg_initial_val): Likewise.
25262
25263         * gimple.c (gimple_alloc_stat): Likewise.
25264         (gimple_build_omp_for): Likewise.
25265         (gimple_seq_alloc): Likewise.
25266         (gimple_copy): Likewise.
25267
25268         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
25269         (gsi_insert_after_without_update): Likewise.
25270
25271         * function.c (add_frame_space): Likewise.
25272         (insert_temp_slot_address): Likewise.
25273         (assign_stack_temp_for_type): Likewise.
25274         (allocate_struct_function): Likewise.
25275         (types_used_by_var_decl_insert): Likewise.
25276
25277         * except.c (init_eh_for_function): Likewise.
25278         (gen_eh_region): Likewise.
25279         (gen_eh_region_catch): Likewise.
25280         (gen_eh_landing_pad): Likewise.
25281         (add_call_site): Likewise.
25282
25283         * emit-rtl.c (get_mem_attrs): Likewise.
25284         (get_reg_attrs): Likewise.
25285         (start_sequence): Likewise.
25286         (init_emit): Likewise.
25287
25288         * dwarf2out.c (new_cfi): Likewise.
25289         (queue_reg_save): Likewise.
25290         (dwarf2out_frame_init): Likewise.
25291         (new_loc_descr): Likewise.
25292         (find_AT_string): Likewise.
25293         (new_die): Likewise.
25294         (add_var_loc_to_decl): Likewise.
25295         (clone_die): Likewise.
25296         (clone_as_declaration): Likewise.
25297         (break_out_comdat_types): Likewise.
25298         (new_loc_list): Likewise.
25299         (loc_descriptor): Likewise.
25300         (add_loc_descr_to_each): Likewise.
25301         (add_const_value_attribute): Likewise.
25302         (tree_add_const_value_attribute): Likewise.
25303         (add_comp_dir_attribute): Likewise.
25304         (add_name_and_src_coords_attributes): Likewise.
25305         (lookup_filename): Likewise.
25306         (store_vcall_insn): Likewise.
25307         (dwarf2out_init): Likewise.
25308
25309         * dbxout.c (dbxout_init): Likewise.
25310
25311         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25312
25313         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25314
25315         * config/score/score7.c (score7_output_external): Likewise.
25316
25317         * config/score/score3.c (score3_output_external): Likewise.
25318
25319         * config/s390/s390.c (s390_init_machine_status): Likewise.
25320
25321         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25322         (rs6000_init_machine_status): Likewise.
25323         (output_toc): Likewise.
25324
25325         * config/pa/pa.c (pa_init_machine_status): Likewise.
25326         (get_deferred_plabel): Likewise.
25327
25328         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25329
25330         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25331
25332         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25333
25334         * config/mep/mep.c (mep_init_machine_status): Likewise.
25335         (mep_note_pragma_flag): Likewise.
25336
25337         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25338
25339         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25340
25341         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25342
25343         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25344         (i386_pe_maybe_record_exported_symbol): Likewise.
25345
25346         * config/i386/i386.c (get_dllimport_decl): Likewise.
25347         (ix86_init_machine_status): Likewise.
25348         (assign_386_stack_local): Likewise.
25349
25350         * config/frv/frv.c (frv_init_machine_status): Likewise.
25351
25352         * config/darwin.c (machopic_indirection_name): Likewise.
25353
25354         * config/cris/cris.c (cris_init_machine_status): Likewise.
25355
25356         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25357
25358         * config/avr/avr.c (avr_init_machine_status): Likewise.
25359
25360         * config/arm/arm.c (arm_init_machine_status): Likewise.
25361
25362         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25363         (alpha_need_linkage): Likewise.
25364         (alpha_use_linkage): Likewise.
25365
25366         * cgraph.c (cgraph_allocate_node): Likewise.
25367         (cgraph_create_edge_1): Likewise.
25368         (cgraph_create_indirect_edge): Likewise.
25369         (cgraph_add_asm_node): Likewise.
25370
25371         * cfgrtl.c (init_rtl_bb_info): Likewise.
25372
25373         * cfgloop.c (alloc_loop): Likewise.
25374         (rescan_loop_exit): Likewise.
25375
25376         * cfg.c (init_flow): Likewise.
25377         (alloc_block): Likewise.
25378         (unchecked_make_edge): Likewise.
25379
25380         * c-parser.c (c_parse_init): Likewise.
25381         (c_parse_file): Likewise.
25382
25383         * c-decl.c (bind): Likewise.
25384         (record_inline_static): Likewise.
25385         (push_scope): Likewise.
25386         (make_label): Likewise.
25387         (lookup_label_for_goto): Likewise.
25388         (finish_struct): Likewise.
25389         (finish_enum): Likewise.
25390         (c_push_function_context): Likewise.
25391
25392         * bitmap.c (bitmap_element_allocate): Likewise.
25393         (bitmap_gc_alloc_stat): Likewise.
25394
25395         * alias.c (record_alias_subset): Likewise.
25396         (init_alias_analysis): Likewise.
25397
25398 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25399
25400         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25401         * tree-inline.c (expand_call_inline): Pass translated return value of
25402         cgraph_inline_failed_string to diagnostic function.
25403
25404 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25405             Shujing Zhao  <pearly.zhao@oracle.com>
25406
25407         PR c/37724
25408         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25409         implicit bad conversions is initialization.
25410         (error_init): Use gmsgid instead of msgid for argument name and change
25411         the call for error.
25412         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25413         change the call for pedwarn.
25414         (warning_init): Use gmsgid instead of msgid for argument name and
25415         change the call for warning.
25416
25417 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25418
25419         * config/mips/mips-protos.h (mips_print_operand): Delete.
25420         (mips_print_operand_address): Delete.
25421         * config/mips/mips.h (mips_print_operand_punct): Delete.
25422         (PRINT_OPERAND): Delete.
25423         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25424         (PRINT_OPERAND_ADDRESS): Delete.
25425         * config/mips/mips.c (mips_print_operand_punct): Make static.
25426         (mips_print_operand_address): Make static.
25427         (mips_print_operand): Make static.  Call
25428         mips_print_operand_punct_valid_p.
25429         (mips_print_operand_punct_valid_p): New function.
25430         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25431         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25432
25433 2010-06-07  Jan Hubicka  <jh@suse.cz>
25434
25435         PR middle-end/44454
25436         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25437         are allocated.
25438
25439 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25440
25441         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25442         name of RECORD.
25443
25444 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25445
25446         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25447         attributes): Document gas.
25448
25449 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25450
25451         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25452         <TYPE_LEA>: Split instruction.
25453         <default>: Remove alternative 2 handling.
25454         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25455         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25456         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25457
25458         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25459         (ashift_zext lea splitter): Use DImode for multiplication.
25460
25461         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25462         to generate addition.
25463
25464 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25465
25466         * common.opt (fira-verbose): Use Var.
25467         (fpcc-struct-return): Use Init instead of VarExists.
25468         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25469         toplev.c.
25470         * flags.h (flag_signed_char, flag_short_enums,
25471         flag_pcc_struct_return, flag_ira_verbose,
25472         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25473         * toplev.c (flag_detailed_statistics, flag_signed_char,
25474         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25475         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25476         * toplev.h (flag_crossjumping, flag_if_conversion,
25477         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25478         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25479         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25480         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25481         flag_ira_coalesce, flag_ira_move_spills,
25482         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25483
25484 2010-06-07  Jan Hubicka  <jh@suse.cz>
25485
25486         * df-core.c (df_analyze_problem): Do verification after allocation.
25487
25488         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25489         (df_lr_alloc): Initialize problem data; move bitmaps to
25490         lr_bitmaps obstack.
25491         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25492         (df_lr_verify_solution_start): Do not initialize problem data;
25493         allocate bitmaps in lr_bitmaps.
25494         (df_lr_verify_solution_end): Do not free problem data.
25495
25496 2010-06-07  Jan Hubicka  <jh@suse.cz>
25497
25498         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25499         if caller is noreturn.
25500         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25501         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25502         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25503         * ipa-pure-const.c (check_decl): Add IPA parameter.
25504         (state_from_flags): New function.
25505         (better_state, worse_state): New functions.
25506         (check_call): When in IPA mode, do not care about callees.
25507         (check_load, check_store): Update.
25508         (check_ipa_load, check_ipa_store): New.
25509         (check_stmt): When in IPA mode, use IPA checkers.
25510         (analyze_function): Use state_from_flags.
25511         (propagate): Check indirect edges and references.
25512
25513 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25514
25515         PR rtl-optimization/44404
25516         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25517         of count_occurrences to see if it's safe to modify mem_insn.
25518
25519 2010-06-07  Richard Guenther  <rguenther@suse.de>
25520
25521         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25522         and EH-only cleanup drop the cleanup instead of inserting it
25523         unconditionally.
25524
25525 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25526
25527         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25528         documentation.
25529         * targhooks.c (default_builtin_vectorization_cost): New function.
25530         * targhooks.h (default_builtin_vectorization_cost): Declare.
25531         * target.h (enum vect_cost_for_stmt): Define.
25532         (builtin_vectorization_cost): Change argument and comment.
25533         * tree-vectorizer.h: Remove cost model macros.
25534         * tree-vect-loop.c: Include target.h.
25535         (vect_get_cost): New function.
25536         (vect_estimate_min_profitable_iters): Replace cost model macros with
25537         calls to vect_get_cost.
25538         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25539         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25540         default implementation.
25541         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25542         calls to target hook builtin_vectorization_cost.
25543         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25544         Likewise.
25545         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25546         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25547         implementation to return costs.
25548         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25549         * config/spu/spu.h: Remove vectorizer cost model macros.
25550         * config/i386/i386.h: Likewise.
25551         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25552         a call to target hook builtin_vectorization_cost.
25553
25554 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25555
25556         PR target/44319
25557         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25558         and above and defer till target is known.
25559         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25560         turn off otherwise.
25561
25562 2010-05-25  Jan Hubicka  <jh@suse.cz>
25563
25564         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25565         (df_compact_blocks): Likewise.
25566         * df.h (struct df): Turn hardware_regs_used,
25567         regular_block_artificial_uses, eh_block_artificial_uses,
25568         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25569         bitmap_head.
25570         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25571         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25572         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25573         df_scan_blocks, df_insn_delete, df_insn_rescan,
25574         df_insn_rescan_debug_internal, df_insn_rescan_all,
25575         df_process_deferred_rescans, df_process_deferred_rescans,
25576         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25577         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25578         df_record_entry_block_defs, df_record_exit_block_uses,
25579         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25580         df_scan_verify): Update.
25581
25582 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25583
25584         PR c++/44188
25585         * c-common.c (is_typedef_decl): Move this definition ...
25586         * tree.c (is_typedef_decl): ... here.
25587         (typdef_variant_p): Move definition here from cp/tree.c.
25588         * c-common.h (is_typedef_decl): Move this declaration ...
25589         * tree.h (is_typedef_decl): ... here.
25590         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25591         * dwarf2out.c (is_naming_typedef_decl): New function.
25592         (gen_tagged_type_die): Split out of ...
25593         (gen_type_die_with_usage): ... this function. When an anonymous
25594         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25595         is emitted for the typedef.
25596         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25597         anonymous tagged types.
25598
25599 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25600
25601         PR c/20000
25602         * c-decl.c (grokdeclarator): Delete warning.
25603
25604 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25605
25606         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25607         newly built CALL_EXPR.
25608         * tree-profile.c (tree_profiling): Don't profile functions produced
25609         for built-in stuff.
25610
25611 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25612
25613         PR bootstrap/44427
25614         PR bootstrap/44428
25615         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25616         endianness-independent.
25617
25618 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25619
25620         * c-common.c: Move to c-family/.
25621         * c-common.def: Likewise.
25622         * c-common.h: Likewise.
25623         * c-cppbuiltin.c: Likewise.
25624         * c-dump.c: Likewise.
25625         * c-format.c: Likewise.
25626         * c-format.h : Likewise.
25627         * c-gimplify.c: Likewise.
25628         * c-lex.c: Likewise.
25629         * c-omp.c: Likewise.
25630         * c.opt: Likewise.
25631         * c-opts.c: Likewise.
25632         * c-pch.c: Likewise.
25633         * c-ppoutput.c: Likewise.
25634         * c-pragma.c: Likewise.
25635         * c-pragma.h: Likewise.
25636         * c-pretty-print.c: Likewise.
25637         * c-pretty-print.h: Likewise.
25638         * c-semantics.c: Likewise.
25639         * stub-objc.c: Likewise.
25640
25641         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25642         (get_output_file_with_visibility): Fix name for c-common.h.
25643         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25644
25645         * c-tree.h: Update include path for moved files.
25646         * c-lang.c: Likewise.
25647         * c-lang.h: Likewise.
25648         * c-parser.c: Likewise.
25649         * c-convert.c: Likewise.
25650         * c-decl.c: Likewise.
25651         * c-objc-common.c: Likewise.
25652         * configure.ac: Make sure c-family/ exists in the build directory.
25653         * configure: Regenerate.
25654         * Makefile.in: Update paths for moved files.  Regroup files per
25655         location and update dependencies.  Move generated_files down after
25656         ALL_GTFILES_H.
25657
25658         * config/spu/spu-c.c: Update paths for moved files.
25659         * config/mep/mep-pragma.c: Likewise.
25660         * config/darwin-c.c: Likewise.
25661         * config/i386/msformat-c.c: Likewise.
25662         * config/i386/i386-c.c: Likewise.
25663         * config/avr/avr-c.c: Likewise.
25664         * config/sol2-c.c: Likewise.
25665         * config/ia64/ia64-c.c: Likewise.
25666         * config/rs6000/rs6000-c.c: Likewise.
25667         * config/arm/arm.c: Likewise.
25668         * config/arm/arm-c.c: Likewise.
25669         * config/h8300/h8300.c: Likewise.
25670         * config/v850/v850-c.c: Likewise.
25671
25672         * config/t-darwin: Fix dependencies for moved files.
25673         * config/t-sol2: Fix dependencies for moved files.
25674         * config/mep/t-mep: Fix dependencies for moved files.
25675         * config/ia64/t-ia64: Fix dependencies for moved files.
25676         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25677         * config/v850/t-v850: Fix dependencies for moved files.
25678         * config/v850/t-v850e: Fix dependencies for moved files.
25679
25680         * config/m32c/m32c-pragma.c
25681
25682         * po/exgettext: Look in c-family/ also.
25683
25684 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25685
25686         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25687         (mark_control_dependent_edges_necessary): Call it instead of marking
25688         the last statement manually.
25689         (propagate_necessity): Likewise.
25690
25691 2010-06-05  Jan Hubicka  <jh@suse.cz>
25692
25693         * basic-block.h (compute_dominance_frontiers): Updated.
25694         (compute_idf): Likewise.
25695
25696         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25697         for dominance frontiers.
25698         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25699         (insert_updated_phi_nodes_for): Likewise.
25700         (update_ssa): Likewise.
25701         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25702         (compute_dominance_frontiers): Likewise.
25703         (compute_idf): Likewise.
25704         * df-problems.c (df_md_local_compute): Likewise.
25705
25706 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25707
25708         * target.h (struct gcc_target): Add memory_move_cost field.
25709         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25710         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25711         * targhooks.c (default_memory_move_cost): New function.
25712         * targhooks.h (default_memory_move_cost): Declare function.
25713         * reload.h (memory_move_cost): Declare.
25714         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25715         * reginfo.c (memory_move_cost): New function.
25716         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25717         * ira.h (ira_memory_move_cost): Update comment.
25718         * ira.c (ira_memory_move_cost): Update comment.
25719         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25720         with memory_move_cost.
25721         * postreload.c (reload_cse_simplify_set): (Ditto.).
25722         * reload1.c (choose_reload_regs): (Ditto.).
25723         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25724         (MEMORY_MOVE_COST):  Revise documentation.
25725
25726         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25727         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25728         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25729         type of 'in' argument to bool.
25730         (TARGET_MEMORY_MOVE_COST): Define.
25731
25732 2010-06-05  Jan Hubicka  <jh@suse.cz>
25733
25734         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25735         that cannot return.  Be more careful when merging the results with
25736         previously known ones.
25737
25738 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25739
25740         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25741         function to add the -iplugindir option.
25742         (find_plugindir_spec_function): Add new declaration and function.
25743         (static_spec_func): Use it for "find-plugindir".
25744
25745 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25746
25747         PR c++/44361
25748         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25749         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25750         statement expression.
25751
25752 2010-06-05  Jan Hubicka  <jh@suse.cz>
25753
25754         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25755         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25756         dense_invalidated_by_call to bitmap head.
25757         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25758         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25759         df_rd_start_dump, df_lr_verify_transfer_functions,
25760         df_live_verify_transfer_functions, df_chain_create_bb,
25761         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25762         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25763         df_simulate_one_insn_forwards, df_md_alloc,
25764         df_md_bb_local_compute_process_def,
25765         df_md_bb_local_compute_process_def, df_md_local_compute,
25766         df_md_transfer_function df_md_free): Update.
25767
25768 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25769
25770         PR c/44322
25771         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25772         target type for ADDR_EXPR; require no changes to qualifiers except
25773         for function types.
25774         * c-tree.h (c_build_type_variant): Remove.
25775
25776 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25777
25778         * genautomata.c (get_excl_set): Do work per element, not per char.
25779         (check_presence_pattern_sets): Similar.
25780         (check_absence_pattern_sets): Similar.
25781
25782 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25783
25784         * genautomata.c (curr_state_pass_num): Delete.
25785         (min_issue_delay_pass_states): Delete.
25786         (min_issue_delay): Delete.
25787         (initiate_min_issue_delay_pass_states): Delete.
25788         (output_min_issue_delay_table): Compute min_issue_delay_vect
25789         using a breadth-first search variant.
25790         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25791
25792 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25793
25794         PR boostrap/44421
25795         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25796         (df_byte_lr_bb_local_compute): Likewise.
25797
25798 2010-06-03  Jason Merrill  <jason@redhat.com>
25799
25800         Implement noexcept operator (5.3.7)
25801         * c-common.c (c_common_reswords): Add noexcept.
25802         * c-common.h (enum rid): Add RID_NOEXCEPT.
25803
25804 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25805
25806         * config/darwin-driver.c (darwin_default_min_version): Use
25807         GCC-specific formats in diagnostics.
25808         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25809         diagnostics.
25810         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25811         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25812         eval_spec_function, handle_braces, process_brace_body, main,
25813         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25814         getenv_spec_function, compare_version_strings,
25815         version_compare_spec_function): Use GCC-specific formats in
25816         diagnostics.
25817
25818 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25819
25820         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25821         that operand 0 and operand 1 are equal.
25822         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25823         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25824         and operand 1 are equal.
25825         <default>: Ditto.  Remove ??? comment.
25826         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25827         and operand 1 are equal.
25828         <default>: Ditto.  Remove ??? comment.
25829         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25830         are equal.
25831         (*add<mode>_4) <default>: Ditto.
25832         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25833
25834 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25835
25836         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25837         * config/i386/i386.c (ix86_print_operand): Make non-static.
25838         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25839         * output.h (output_operand): Declare.
25840         * final.c (output_operand): Make non-static.
25841
25842 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25843
25844         PR rtl-optimization/44013
25845         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25846         when processing debug insns.
25847
25848         PR debug/41371
25849         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25850         recursing.  Check that recursion is bounded.  Rename inner var
25851         to avoid hiding incoming argument.
25852
25853 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25854
25855         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25856         operands[2] == 255.
25857         (*addqi_3): Ditto.
25858         (*addqi_4): Ditto.
25859         (*addqi_5): Ditto.
25860         (*addqi_ext_1_rex64): Ditto.
25861         (*addqi_ext_1): Ditto.
25862
25863         (*addqi_4): Check for incdec_operand in QImode.
25864
25865         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25866         using SWI mode iterator.
25867         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25868         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25869         mode iterator.
25870         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25871         using SWI mode iterator.
25872
25873 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25874
25875         PR c/25880
25876         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25877         * c-format.c (gcc_diag_flag_specs): Add hash.
25878         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25879         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25880         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25881         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25882         (pp_c_type_qualifier_list): Call the function above.
25883         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25884         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25885         (WARN_FOR_QUALIFIERS): New macro.
25886         (convert_for_assignment): Use it.
25887
25888 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25889
25890         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25891
25892 2010-06-04  Jan Hubicka  <jh@suse.cz>
25893
25894         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25895         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25896         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25897         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25898         * fwprop.c (single_def_use_enter_block): Likewise.
25899         * ddg.c (create_ddg_dep_from_intra_loop_link,
25900         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25901         * loop-iv.c (latch_dominating_def): Likewise.
25902         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25903         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25904         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25905         df_rd_transfer_function, df_rd_top_dump,
25906         df_rd_bottom_dump): Update.
25907         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25908         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25909         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25910         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25911         df_lr_verify_solution_start, df_lr_verify_solution_end,
25912         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25913         df_live_free_bb_info, df_live_alloc, df_live_reset,
25914         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25915         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25916         df_live_verify_solution_start, df_live_verify_solution_end,
25917         df_live_verify_transfer_functions, df_chain_create_bb,
25918         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25919         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25920         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25921         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25922         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25923         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25924         df_byte_lr_bottom_dump, df_create_unused_note,
25925         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25926         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25927         df_md_transfer_function, df_md_init, df_md_confluence_0,
25928         df_md_confluence_n,
25929         df_md_top_dump, df_md_bottom_dump): Update.
25930         (struct df_lr_problem_data): Embedd bitmap headers.
25931
25932 2010-06-04  Jan Hubicka  <jh@suse.cz>
25933
25934         * dce.c (dce_process_block): Do not re-scan already marked
25935         instructions.
25936
25937 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25938
25939         PR rtl-optimization/39871
25940         PR rtl-optimization/40615
25941         PR rtl-optimization/42500
25942         PR rtl-optimization/42502
25943         * ira.c (init_reg_equiv_memory_loc: New function.
25944         (ira): Call it twice.
25945         * reload.h (calculate_elim_costs_all_insns): Declare.
25946         * ira-costs.c: Include "reload.h".
25947         (regno_equiv_gains): New static variable.
25948         (init_costs): Allocate it.
25949         (finish_costs): Free it.
25950         (ira_costs): Call calculate_elim_costs_all_insns.
25951         (find_costs_and_classes): Take estimated elimination costs
25952         into account.
25953         (ira_adjust_equiv_reg_cost): New function.
25954         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25955         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25956         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25957         (elim_bb): New static variable.
25958         (reload): Move code out of here into init_eliminable_invariants and
25959         free_reg_equiv.  Call them.
25960         (calculate_elim_costs_all_insns): New function.
25961         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25962         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25963         but call note_reg_elim_costly if we turned a valid memory address
25964         into an invalid one.
25965         * Makefile.in (ira-costs.o): Depend on reload.h.
25966
25967 2010-06-04  Julian Brown  <julian@codesourcery.com>
25968
25969         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25970         for pool ranges.
25971
25972 2010-06-04  Richard Guenther  <rguenther@suse.de>
25973
25974         PR lto/41584
25975         * cgraph.h (struct varpool_node): Add lto_file_data field.
25976         * lto-cgraph.c (input_varpool_node): Initialize it.
25977
25978 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25979
25980         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25981         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25982         predicate in "type" attribute calculation.
25983         (*addsi_1_zext): Ditto.
25984         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25985         (*addsi_2_zext): Ditto.
25986         (*add<mode>_3): Ditto.
25987         (*addsi_3_zext): Ditto.
25988         (*add<mode>_5): Ditto.
25989
25990 2010-06-03  Jan Hubicka  <jh@suse.cz>
25991
25992         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25993         of bitmap_bit_p.
25994         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25995
25996 2010-06-03  Jan Hubicka  <jh@suse.cz>
25997
25998         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25999         micro-optimize the checks when to add new note.
26000
26001 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
26002
26003         * final.c (output_asm_insn): Call
26004         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
26005         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
26006         (output_address): Call targetm.asm_out.print_operand_address.
26007         Update comments.
26008         * target.h (struct gcc_target): Add print_operand,
26009         print_operand_address, and print_operand_punct_valid_p fields.
26010         * targhooks.h (default_print_operand): Declare.
26011         (default_print_operand_address): Declare.
26012         (default_print_operand_punct_valid_p): Declare.
26013         * targhooks.c (default_print_operand): Define.
26014         (default_print_operand_address): Define.
26015         (default_print_operand_punct_valid_p): Define.
26016         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
26017         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
26018         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
26019         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
26020         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
26021         * vmsdbgout.c (addr_const_to_string): Update comment.
26022         * config/i386/i386.c (print_operand): Rename to...
26023         (ix86_print_operand): ...this.  Make static.
26024         (print_operand_address): Rename to...
26025         (ix86_print_operand_address): ...this.  Make static.  Call
26026         ix86_print_operand instead of PRINT_OPERAND.
26027         (ix86_print_operand_punct_valid_p): New function.
26028         (TARGET_PRINT_OPERAND): Define.
26029         (TARGET_PRINT_OPERAND_ADDRESS): Define.
26030         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26031         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
26032         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26033         (PRINT_OPERAND): Delete.
26034         (PRINT_OPERAND_ADDRESS): Delete.
26035         * config/i386/i386-protos.h (print_operand): Delete prototype.
26036         (print_operand_address): Delete prototype.
26037
26038 2010-06-03  Richard Guenther  <rguenther@suse.de>
26039
26040         PR tree-optimization/44403
26041         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
26042         Preserve pointer qualifiers.
26043         (vect_create_data_ref_ptr): Likewise.
26044
26045 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
26046
26047         PR c++/44294
26048         * defaults.h (MAX_FIXED_MODE_SIZE): New.
26049
26050         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
26051
26052 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
26053
26054         PR debug/44375
26055         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
26056         return false if merging the bbs would lead to goto_locus
26057         location being lost from the IL.
26058
26059 2010-06-03  Jan Hubicka  <jh@suse.cz>
26060             Jakub Jelinek  <jakub@redhat.com>
26061
26062         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
26063         set->regs[i] is NULL or has just one entry.
26064
26065 2010-06-03  Jan Hubicka  <jh@suse.cz>
26066
26067         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
26068         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
26069
26070 2010-06-03  Paul Brook  <paul@codesourcery.com>
26071
26072         * config/arm/arm.c (FL_TUNE): Define.
26073         (arm_default_cpu, arm_cpu_select): Remove.
26074         (all_cores): Populate core field.
26075         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
26076         (arm_find_cpu): New function.
26077         (arm_handle_option): Lookup cpu/architecture names.
26078         (arm_override_options): Cleanup mcpu/march/mtune handling.
26079         (arm_file_start): Ditto.
26080
26081 2010-06-03  Alan Modra  <amodra@gmail.com>
26082
26083         PR target/44169
26084         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
26085         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
26086         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
26087         (rs6000_emit_load_toc_table): Likewise.
26088
26089 2010-06-02  Jan Hubicka  <jh@suse.cz>
26090
26091         * passes.c (init_optimization_passes): Put ipa reference
26092         after ipa pure-const.
26093
26094 2010-06-02  Jan Hubicka  <jh@suse.cz>
26095
26096         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
26097         calls_read_all and calls_write_all.
26098         (get_reference_optimization_summary): Fix formatting.
26099         (is_proper_for_analysis): Check that decl is not readonly.
26100         (propagate_bits): Check CONST/PURE/noreturn flags.
26101         (ipa_init): Move all_module_statics to optimization_summary_obstack.
26102         (analyze_function): Ignore indirect edges.
26103         (copy_global_bitmap): For all module statics, do nothing.
26104         (generate_summary): Do not print calls_read_all/calls_write_all.
26105         (read_write_all_from_decl): Take node as argument; check
26106         cgraph_node_cannot_return.
26107         (propagate): Reorganize read_all/write_all computation;
26108         check indirect edges; check ecf flags; use all_module_statics
26109         in the results; do not free all_module_statics.
26110         (stream_out_bitmap): Handle all_module_statics.
26111         (ipa_reference_write_optimization_summary): Likewise; use
26112         varpool/cgraph encoders to get boundaries.
26113         (ipa_reference_read_optimization_summary): Read in all_module_statics;
26114         use it when possible.
26115
26116 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26117
26118         PR target/44218
26119         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
26120         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
26121
26122         * doc/extend.texi (powerpc builtins): Document vec_recip,
26123         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
26124
26125         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
26126         (rs6000_emit_swrsqrt): Ditto.
26127         (rs6000_emit_swdivsf): Delete.
26128         (rs6000_emit_swdivdf): Ditto.
26129         (rs6000_emit_swrsqrtsf): Ditto.
26130
26131         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
26132         describe the reciprocal estimate support for each type.
26133         (recip_options): Map -mrecip=<opt> into option bits.
26134         (gen_2arg_fn_t): New typedef for binary rtx gen function.
26135         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
26136         reciprocal estimate instructions.
26137         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
26138         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
26139         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
26140         cost information if -mdebug=cost or -mdebug=reg.
26141         (rs6000_override_options): Set -mrecip-precision for power6, and
26142         power7 machines.  If -mvsx or -mdfp, enable various options that
26143         came in previous instruction set ISAs, unless the option was
26144         explicitly disabled by the command line option.  Parse
26145         -mrecip=<opt> options.
26146         (rs6000_builtin_vectorized_function): Add support for vectorizing
26147         the reciprocal estimate builtins and expansions.
26148         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
26149         (bdesc_2arg): Add reciprocal estimate builtins.
26150         (bdesc_1arg): Add reciprocal square root estimate builtins.
26151         (rs6000_expand_builtin): Rewrite to use a switch statement,
26152         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
26153         (rs6000_init_builtins): Create declarations for reciprocal
26154         estimate builtins.
26155         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
26156         sized, prefer traditional floating point registers, if integer
26157         vector types, prefer altivec registers.  Don't actually look at
26158         the memory address any more.
26159         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
26160         builtins.
26161         (rs6000_load_constant_and_splat): New helper function to load up
26162         the constant for reciprocal estimate instructions.
26163         (rs6000_emit_madd): New helper function for generating
26164         multiply/add type instructions, based on the current switches.
26165         (rs6000_emit_msub): Ditto.
26166         (rs6000_emit_mnsub): Ditto.
26167         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
26168         replace a divide with a reciprocal estimate and fixup, adding
26169         support for machines with high precision and vectors.
26170         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
26171         low precision machines.
26172         (rs6000_emit_swdiv): New common function to be called to replace a
26173         division with reciprocal estimate and fixup.
26174         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
26175         for double and vector types.  Add support for high precision machines.
26176
26177         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
26178         the reciprocal estimate instructions can be generated.
26179         (TARGET_FRE): Ditto.
26180         (TARGET_FRSQRTES): Ditto.
26181         (TARGET_FRSQRTE): Ditto.
26182         (RS6000_RECIP_*): New macros for reciprocal estimate support.
26183
26184         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
26185         square root estimate on vectors.
26186         (re<mode>2): New insn for reciprocal division estimate on vectors.
26187
26188         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
26189         New builtin.
26190         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
26191         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
26192         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
26193         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
26194         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
26195         (RS6000_BUILTIN_RSQRT): Ditto.
26196         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
26197         floating point builtin.
26198
26199         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
26200         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
26201         __RECIP_PRECISION__ based on the command line switches.
26202         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
26203
26204         * config/rs6000/rs6000.opt (-mrecip): Document add support for
26205         replacing division instructions with reciprocal estimate and fixup.
26206         (-mrecip=<opt>): New option.
26207         (-mrecip-precision): Ditto.
26208
26209         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
26210         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
26211         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
26212         precision scalar.
26213
26214         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
26215         (UNSPEC_VREFP): Ditto.
26216         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
26217         conterparts with regard to support of -mno-fused-madd and -ffast-math.
26218         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
26219         reciprocal estimate instructions to be generated.
26220         (altivec_vrefp): Ditto.
26221
26222         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
26223         estimate support.
26224         (rreg): New mode attribute for reciprocal estimate support.
26225         (recip<mode>3): New insn for division using reciprocal estimate
26226         and fixup builtins.
26227         (divide define_split): New define_split to convert floating point
26228         division to use reciprocal estimate if the user used the
26229         appropriate options and the split is run when we can add new
26230         pseudo registers for the fixup.
26231         (rsqrt<mode>2): New insn for reciprocal square root support.
26232         (recipsf3): Move into recip<mode>3.
26233         (recipdf3): Ditto.
26234         (fres): Use TARGET_FRES.
26235         (rsqrtsf2): Move into rsqrt<mode>2.
26236         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
26237         (copysignsf3): Add support for VSX.
26238         (fred): Use TARGET_FRE.
26239         (fred_fpr): Ditto.
26240         (rsqrtdf_internal1): New function for frsqrte instruciton.
26241
26242         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
26243         (vec_rsqrt): Ditto.
26244
26245 2010-06-03  Richard Guenther  <rguenther@suse.de>
26246
26247         PR middle-end/44291
26248         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
26249         (set_user_assembler_libfunc): Likewise.
26250
26251 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26252
26253         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
26254         defaults.h.
26255         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
26256         to defaults.h
26257         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
26258         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
26259         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
26260         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
26261         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
26262         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
26263         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
26264         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
26265         * defaults.h: Updated for above mentioned changes.
26266
26267 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
26268
26269         * c-common.c: Remove header include of tm_p.h.
26270         * Makefile.in (c-common.o): Remove TM_P_H dependency.
26271
26272 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
26273
26274         * tree.h (struct tree_decl_map): New type.
26275         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
26276         (tree_decl_map_hash): New prototype.
26277         (debug_expr_for_decl, value_expr_for_decl): Change into
26278         tree_decl_map hashtab from tree_map.
26279         (init_ttree): Adjust initialization.
26280         (tree_decl_map_hash): New function.
26281         (decl_debug_expr_lookup, decl_debug_expr_insert,
26282         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
26283
26284 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26285
26286         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
26287         linker emulations.
26288         * configure: Regenerate.
26289         * config.in: Regenerate.
26290
26291         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26292         (X86_64_EMULATION): Define.
26293         (TARGET_LD_EMULATION): Use them.
26294
26295         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26296         (SPARC64_EMULATION): Define.
26297         (LINK_ARCH_SPEC): Use them.
26298
26299 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26300
26301         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26302         smallest_mode_for_size for computing the precision types of new
26303         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26304
26305 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26306
26307         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26308         information.
26309         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26310
26311 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26312
26313         PR middle-end/44363
26314         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26315         return false instead.
26316
26317 2010-06-02  Jan Hubicka  <jh@suse.cz>
26318
26319         PR middle-end/44295
26320         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26321         create new cgraph node to check callee.
26322
26323 2010-06-02  Richard Guenther  <rguenther@suse.de>
26324
26325         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26326
26327 2010-06-02  Richard Guenther  <rguenther@suse.de>
26328
26329         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26330         (lto_wrapper_cleanup): ... this.  Do not exit.
26331         (fatal): Adjust.  Exit here.
26332         (fatal_perror): Likewise.
26333         (fatal_signal): New function.
26334         (main): Set up signal handlers to cleanup temporary files.
26335         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26336
26337 2010-06-02  Richard Guenther  <rguenther@suse.de>
26338
26339         PR tree-optimization/44377
26340         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26341
26342 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26343
26344         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26345         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26346         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26347         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26348         instruction.
26349         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26350
26351 2010-06-02  Jan Hubicka  <jh@suse.cz>
26352
26353         * bitmap.c (bitmap_descriptor): Add search_iter.
26354         (bitmap_find_bit): Increment it.
26355         (print_statistics): Print it.
26356
26357 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26358
26359         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26360         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26361
26362 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26363
26364         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26365         change from yesterday.
26366
26367 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26368
26369         * c-ada-spec.c: Clean up redundant includes.
26370
26371 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26372
26373         * gimplify.c: Do not include except.h and optabs.h.
26374         (gimplify_body): Do not initialize RTL profiling.
26375         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26376         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26377         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26378         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26379         langhooks.h.
26380
26381         * tree-pretty-print.h: Include pretty-print.h.
26382         * gimple-pretty-print.h: Include pretty-print.h.
26383
26384         * tree-pretty-print.c: Do not include diagnostic.h.
26385         * tree-vrp.c: Likewise.
26386         * tree-tailcall.c: Likewise
26387         * tree-scalar-evolution.c: Likewise
26388         * tree-ssa-dse.c: Likewise
26389         * tree-chrec.c: Likewise
26390         * tree-ssa-sccvn.c: Likewise
26391         * tree-ssa-copyrename.c: Likewise
26392         * tree-nomudflap.c: Likewise
26393         * tree-call-cdce.c: Likewise
26394         * tree-stdarg.c: Likewise
26395         * tree-ssa-math-opts.c: Likewise
26396         * tree-nrv.c: Likewise
26397         * tree-ssa-sink.c: Likewise
26398         * tree-browser.c: Likewise
26399         * tree-ssa-loop-ivcanon.c: Likewise
26400         * tree-ssa-loop.c: Likewise
26401         * tree-parloops.c: Likewise
26402         * tree-ssa-address.c: Likewise
26403         * tree-ssa-ifcombine.c: Likewise
26404         * tree-if-conv.c: Likewise
26405         * tree-data-ref.c: Likewise
26406         * tree-affine.c: Likewise
26407         * tree-ssa-phiopt.c: Likewise
26408         * tree-ssa-coalesce.c: Likewise
26409         * tree-ssa-pre.c: Likewise
26410         * tree-ssa-live.c: Likewise
26411         * tree-predcom.c: Likewise
26412         * tree-ssa-forwprop.c: Likewise
26413         * tree-ssa-dce.c: Likewise
26414         * tree-ssa-ter.c: Likewise
26415         * tree-ssa-loop-prefetch.c: Likewise
26416         * tree-optimize.c: Likewise
26417         * tree-ssa-phiprop.c: Likewise
26418         * tree-object-size.c: Likewise
26419         * tree-outof-ssa.c: Likewise
26420         * tree-ssa-structalias.c: Likewise
26421         * tree-switch-conversion.c: Likewise
26422         * tree-ssa-reassoc.c: Likewise
26423         * tree-ssa-operands.c: Likewise
26424         * tree-vectorizer.c: Likewise
26425         * tree-vect-data-refs.c: Likewise
26426         * tree-vect-generic.c: Likewise
26427         * tree-vect-stmts.c: Likewise
26428         * tree-vect-patterns.c: Likewise
26429         * tree-vect-slp.c: Likewise
26430         * tree-vect-loop.c: Likewise
26431         * tree-ssa-loop-ivopts.c: Likewise
26432         * tree-ssa-loop-im.c: Likewise
26433         * tree-ssa-loop-niter.c: Likewise
26434         * tree-ssa-loop-unswitch.c: Likewise
26435         * tree-ssa-loop-manip.c: Likewise
26436         * tree-ssa-loop-ch.c: Likewise
26437         * tree-dump.c: Likewise
26438         * tree-complex.c: Likewise
26439
26440         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26441         * tree-ssa-uninit.c: Likewise
26442         * tree-ssa-threadupdate.c: Likewise
26443         * tree-ssa-uncprop.c: Likewise
26444         * tree-ssa-ccp.c: Likewise
26445         * tree-ssa-dom.c: Likewise
26446         * tree-ssa-propagate.c: Likewise
26447         * tree-ssa-alias.c: Likewise
26448         * tree-dfa.c: Likewise
26449         * tree-cfgcleanup.c: Likewise
26450         * tree-sra.c: Likewise
26451         * tree-ssa-copy.c: Likewise
26452         * tree-ssa.c: Likewise
26453         * tree-profile.c: Likewise
26454         * tree-cfg.c: Likewise
26455         * tree-ssa-threadedge.c: Likewise
26456         * tree-vect-loop-manip.c: Likewise
26457
26458         * tree-inline.c: Do not include diagnostic.h and expr.h.
26459         Include rtl.h.
26460         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26461
26462         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26463         * tree-loop-distribution.c: Likewise.
26464
26465 2010-06-01  Jan Hubicka  <jh@suse.cz>
26466
26467         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26468
26469 2010-06-01  Jan Hubicka  <jh@suse.cz>
26470
26471         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26472         remove return value.
26473         (split_bbs_on_noreturn_calls) .... here.
26474         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26475         * tree-flow.h (fixup_noreturn_call): New.
26476
26477 2010-06-01  Jan Hubicka  <jh@suse.cz>
26478
26479         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26480
26481 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26482
26483         * tree.h (build_nt_call_list): Delete.
26484         * tree.c (build_nt_call_list): Delete.
26485
26486 2010-06-01  Jan Hubicka  <jh@suse.cz>
26487
26488         * fwprop.c: Make emit-rtl.h include last.
26489         * rtlanal.c: Include emit-rtl.h.
26490         * genautomata.c: Output emit-rtl include into insn-automata.c
26491         * df-scan.c: Include emit-rtl.h.
26492         * haifa-sched.c: Indlude emit-rtl.h.
26493         * mode-switching.c: Indlude emit-rtl.h.
26494         * graph.c: Indlude emit-rtl.h.
26495         * sel-sched.c: Include emit-rtl.h.
26496         * sel-sched-ir.c: Include emit-rtl.h.
26497         * ira-build.c: Include emit-rtl.h.
26498         * emit-rtl.c (first_insn, last_insn): Remove defines.
26499         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26500         Move to emit-rtl.h.
26501         (set_new_first_and_last_insn, get_last_insn_anywhere,
26502         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26503         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26504         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26505         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26506         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26507         Use accessor functions.
26508         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26509          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26510         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26511         mem_expr_equal_p): Move here from rtl.h.
26512         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26513         Move here from emit-rtl.c; make inline.
26514         * cfglayout.h: Include emit-rtl.h.
26515         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26516          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26517         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26518         mem_expr_equal_p, get_insns, set_first-insn,
26519         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26520         * reg-stack.c: Include emit-rtl.h.
26521         * dce.c: Likewise.
26522
26523 2010-06-01  Jan Hubicka  <jh@suse.cz>
26524
26525         * cgraph.h (tree_function_versioning): Update prototype.
26526         (cgraph_function_versioning): Update prototype.
26527         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26528         bitmap.
26529         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26530         (cgraph_materialize_clone, save_inline_function_body): Update use of
26531         tree_function_versioning.
26532         * tree-inline.c (copy_bb): Look for previous copied block to link
26533         after; fix debug output.
26534         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26535         (copy_body): Likewise.
26536         (expand_call_inline): Update use of copy_body.
26537         (tree_function_versioning): Update use of copy body; accept
26538         blocks_to_copy and new_entry.
26539
26540 2010-06-01  Jan Hubicka  <jh@suse.cz>
26541
26542         * gegenrtl.c: Remove unnecesary prototypes.
26543         (gendecl): Remove.
26544         (gendef): Produce static inline.
26545         (gencode): Remove.
26546         (main): Do not decode parameters; generate header only.
26547         * Makefile.in (genrtl.c): Remove.
26548
26549 2010-06-01  Jan Hubicka  <jh@suse.cz>
26550
26551         * tree-switch-conversion.c (build_one_array): Make it readonly.
26552
26553 2010-06-01  Richard Guenther  <rguenther@suse.de>
26554
26555         * optabs.c (init_optabs): Guard all accesses to reinit.
26556         * ipa-pure-const.c (propagate): Fix another typo.
26557         * opts.c (common_handle_option): Split assignment to bool.
26558         * c-opts.c (c_common_handle_option): Likewise.
26559
26560 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26561             Matthew Gingell  <gingell@adacore.com>
26562
26563         * doc/invoke.texi: Mention -fdump-ada-spec.
26564         * tree-dump.c (dump_files): Add ada-spec.
26565         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26566         * tree-pass.h (tree_dump_index): Add TDI_ada.
26567         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26568         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26569         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26570         * c-decl.c: Include c-ada-spec.h.
26571         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26572         functions.
26573         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26574         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26575         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26576         * c-ada-spec.h, c-ada-spec.c: New files.
26577
26578 2010-06-01  Richard Guenther  <rguenther@suse.de>
26579
26580         PR lto/43853
26581         * ipa-pure-const.c (get_function_state): Hand back varying state
26582         if we do not have one.
26583         (has_function_state): New function.
26584         (duplicate_node_data): Adjust.
26585         (remove_node_data): Likewise.
26586         (pure_const_write_summary): Likewise.
26587         (propagate): Likewise.  Fix typo.
26588
26589 2010-06-01  Jan Hubicka  <jh@suse.cz>
26590
26591         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26592         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26593         (execute_all_ipa_transforms): Do not play with the states.
26594
26595 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26596
26597         * config/arm/t-linux-androideabi: New.
26598         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26599
26600 2010-06-01  Jan Hubicka  <jh@suse.cz>
26601
26602         * tree-inline.c (estimate_num_insns): For stdarg functions look
26603         into call statement to count cost of argument passing.
26604
26605 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26606
26607         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26608         argument for fprintf.
26609         (ix86_output_addr_diff_elt): Likewise.
26610         (x86_function_profiler): Likewise.
26611         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26612         (LPREFIX): Likewise.
26613         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26614
26615 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26616
26617         PR target/44338
26618         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26619         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26620         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26621         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26622         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26623         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26624         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26625         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26626         TARGET_FUSED_MADD.
26627
26628 2010-05-31  Jan Hubicka  <jh@suse.cz>
26629
26630         * tree.h (tree_range_check_failed): Declare noreturn.
26631
26632 2010-05-31  Jan Hubicka  <jh@suse.cz>
26633
26634         * gimple.c (gimple_call_builtin_p): New function.
26635         * gimple.h (gimple_call_builtin_p): Declare.
26636         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26637         to exit.
26638         (execute_warn_function_return): BUILT_IN_RETURN is return.
26639         (split_critical_edges): Return edges are not critical.
26640         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26641         (gimple_verify_flow_info): Handle built_in_return.
26642         (execute_warn_function_return): Handle built_in_return.
26643         * ipa-pure-const.c (check_call): Ignore builtin_return.
26644
26645 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26646
26647         PR middle-end/44337
26648         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26649         array accesses with non-MEM.
26650
26651         PR tree-optimization/44182
26652         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26653         newly needs to end a bb is followed by debug stmts, instead return
26654         true from the function at the end.
26655         (maybe_move_debug_stmts_to_successors): New function.
26656         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26657
26658 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26659
26660         PR target/44161
26661         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26662
26663 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26664
26665         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26666         for nested functions in non-optimized compilation.
26667
26668 2010-05-31  Richard Guenther  <rguenther@suse.de>
26669
26670         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26671
26672 2010-05-30  Jan Hubicka  <jh@suse.cz>
26673
26674         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26675
26676 2010-05-30  Richard Guenther  <rguenther@suse.de>
26677
26678         PR lto/42975
26679         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26680         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26681         no longer needed.
26682
26683 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26684
26685         * config/darwin.c (output_objc_section_asm_op): Add comment.
26686         (name_needs_quotes): Add '_' to list of valid comment chars.
26687         (machopic_output_function_base_name): Remove unneeded quotes.
26688         (darwin_encode_section_info): Adjust asm whitespace.
26689         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26690         (ASM_OUTPUT_LOCAL): Ditto.
26691         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26692         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26693         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26694
26695 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26696
26697         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26698         RS6000_OUTPUT_BASENAME unconditionally.
26699         (rs6000_output_function_epilogue): Likewise.
26700
26701 2010-05-30  Jan Hubicka  <jh@suse.cz>
26702
26703         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26704         nodes.
26705
26706 2010-05-30  Richard Guenther  <rguenther@suse.de>
26707
26708         * tree-cfg.c (verify_gimple_assign_single): Implement
26709         verification for COND_EXPR rhs.
26710
26711 2010-05-30  Jan Hubicka  <jh@suse.cz>
26712
26713         * cgraph.h (cgraph_dump_file): Declare.
26714         * cgraphunit.c (cgraph_dump_file): Export.
26715         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26716
26717 2010-05-30  Jan Hubicka  <jh@suse.cz>
26718
26719         * dwarf2out.c (reference_to_unused,
26720         premark_types_used_by_global_vars_helper): Avoid creation of new
26721         varpool nodes.
26722
26723 2010-05-30  Jan Hubicka  <jh@suse.cz>
26724
26725         * cgraph.h (cgraph_node_cannot_return,
26726         cgraph_edge_cannot_lead_to_return): New functions.
26727         * cgraph.c (cgraph_node_cannot_return,
26728         cgraph_edge_cannot_lead_to_return): Use them.
26729         * ipa-pure-const.c (pure_const_names): New static var.
26730         (check_call): Handle calls not leading to return.
26731         (pure_const_read_summary): Dump info read.
26732         (propagate): Dump info about propagation process; ignore side effects
26733         of functions not leading to exit; fix handling of pure functions.
26734
26735 2010-05-30  Jan Hubicka  <jh@suse.cz>
26736
26737         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26738         for tail call epilogues.
26739
26740 2010-05-30  Jan Hubicka  <jh@suse.cz>
26741
26742         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26743         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26744         dump files.
26745
26746 2010-05-29  Jan Hubicka  <jh@suse.cz>
26747
26748         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26749         node; remove references in node we no longer keep in cgrpah but need
26750         body of.
26751
26752 2010-05-29  Jan Hubicka  <jh@suse.cz>
26753
26754         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26755
26756 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26757
26758         PR target/44165
26759         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26760
26761 2010-05-29  Jan Hubicka  <jh@suse.cz>
26762
26763         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26764         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26765         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26766         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26767         debug_names_replaced_by, debug_update_ssa): Likewise.
26768         * sbitmap.c (debug_sbitmap): Likewise.
26769         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26770         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26771         debug_tree_chain): Likewise.
26772         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26773         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26774         * optabs.c (debug_optab_libfuncs): Likewise.
26775         (verify_loop_closed_ssa): Likewise.
26776         * value-prof.c (verify_histograms): Likewise.
26777         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26778         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26779         * cfghooks.c (verify_flow_info): Likewise.
26780         * fold-const.c (debug_fold_checksum): Likewise.
26781         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26782         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26783         Likewise.
26784         * omega.c (debug_omega_problem): Likewise.
26785         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26786         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26787         * dominance.c (verify_dominators, debug_dominance_info,
26788         debug_dominance_tree): Likewise.
26789         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26790         * df_regno_debug, df_ref_debug,
26791         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26792         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26793         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26794         * sel-sched.c (debug_state): Likewise.
26795         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26796         Likewise.
26797         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26798         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26799         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26800         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26801         Likewise.
26802         * c-pretty-print.c (debug_c_tree): Likewise.
26803         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26804         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26805         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26806         * ebitmap.c (debug_ebitmap): Likewise.
26807         * function.c (debug_find_var_in_block_tree): Likewise.
26808         * print-rtl.c (debug_rtx): Likewise.
26809         (debug_rtx_count): Likewise.
26810         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26811         * stor-layout.c (debug_rli): Likewise.
26812         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26813         * tree-data-ref.c (debug_data_references,
26814         debug_data_dependence_relations, debug_data_reference,
26815         debug_data_dependence_relation, debug_rdg_vertex,
26816         debug_rdg_component, debug_rdg): Likewise.
26817         * tree-affine.c (debug_aff): Likewise.
26818         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26819         Likewise.
26820         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26821         * emit-rtl.c (verify_rtl_sharing): Likewise.
26822         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26823         debug_value_expressions): Likewise.
26824         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26825         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26826         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26827         * cfglayout.c (verify_insn_chain): Likewise.
26828         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26829         debug_clast_stmt, debug_generated_program): Likewise.
26830         * ggc-page.c (debug_print_page_list): Likewise.
26831         * tree-ssa-ter.c (debug_ter): Likewise.
26832         * graphite-dependences.c (debug_pddr): Likewise.
26833         * sched-deps.c (debug_ds): Likewise.
26834         * tree-ssa.c (verify_ssa): Likewise.
26835         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26836         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26837         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26838         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26839         * tree-inline.c (debug_find_tree): Likewise.
26840         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26841         debug_ppl_powerset_matrix): Likewise.
26842         * var-tracking.c (debug_dv): Likewise.
26843         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26844         * cfgloop.c (verify_loop_structure): Likewise.
26845         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26846         * c-common.c (verify_sequence_points): Likewise.
26847         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26848         debug_candidates, debug_rgn_dependencies): Likewise.
26849         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26850         * debug_constraint_graph, debug_solution_for_var,
26851         debug_sa_points_to_info): Likewise.
26852         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26853         Likewie.
26854         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26855         debug_loops, debug_loop, debug_loop_num): Likewise.
26856         * passes.c (debug_pass): Likewise.
26857         (dump_properties): Likewise; add cfglayout property.
26858         (debug_properties): Likewise.
26859         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26860         * varpool.c (debug_varpool): Likewise.
26861         * regcprop.c (debug_value_data): Likewise.
26862         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26863         debug_immediate_uses_for): Likewise.
26864
26865 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26866
26867         PR bootstrap/44315
26868         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26869         Filter out insn-flags.h.
26870
26871 2010-05-29  Jan Hubicka  <jh@suse.cz>
26872
26873         * cgraph.h (struct varpool_node_set_def,
26874         struct cgraph_node_set_def): Remove unused AUX pointer.
26875         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26876         VEC_empty macro.
26877
26878 2010-05-29  Jan Hubicka  <jh@suse.cz>
26879
26880         PR middle-end/44324
26881         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26882
26883 2010-05-29  Richard Guenther  <rguenther@suse.de>
26884
26885         * lto-streamer.c (cached_bp): New global variable.
26886         (bitpack_create): Return the cached bitpack, if available.
26887         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26888         (bp_pack_value): Remove redundant asserts.
26889
26890 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26891
26892         PR middle-end/44306
26893         * tree-if-conv.c (is_true_predicate): New.
26894         (is_predicated): Use is_true_predicate.
26895         (add_to_predicate_list): Same.  Do not use unshare_expr.
26896         (add_to_dst_predicate_list): Same.
26897
26898 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26899
26900         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26901         field on edges.
26902         (predicate_bbs): Same.
26903         (clean_predicate_lists): Same.
26904         (find_phi_replacement_condition): Do not AND the predicate from
26905         edge->aux.
26906
26907 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26908
26909         PR bootstrap/44315
26910         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26911
26912 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26913
26914         PR target/44261
26915         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26916         (negdf2): Adjust expander pattern and use negdf2_slow.
26917         (negsf2): Likewise.
26918
26919 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26920
26921         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26922         up.
26923         * df.h (struct df_base_ref): Move regno field up.
26924         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26925         * expr.h (struct separate_ops): Move location field up.
26926         * optabs.h (struct optab_d): Move libcall_basename field down.
26927         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26928         * config/i386/i386.h (struct machine_function): Convert call_abi field
26929         into a bitfield.  Move cfa field to the end of the structure.
26930
26931 2010-05-29  Jan Hubicka  <jh@suse.cz>
26932
26933         * varpool.c (varpool_get_node): Fix lookup.
26934
26935 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26936
26937         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26938         RTL specific prototypes with #ifdef RTX_CODE.
26939         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26940         * config/spu/t-spu-elf: Fix dependencies.
26941
26942         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26943
26944 2010-05-29  Mike Stump  <mikestump@comcast.net>
26945
26946         PR bootstrap/44315
26947         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26948         TM_H when building to avoid dependency loops.
26949
26950 2010-05-29  Jan Hubicka  <jh@suse.cz>
26951
26952         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26953         refs and body; not the whole node for masters of materialized clones.
26954
26955 2010-05-29  Mike Stump  <mikestump@comcast.net>
26956
26957         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26958
26959 2010-05-29  Jan Hubicka  <jh@suse.cz>
26960
26961         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26962         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26963         use of clone_function_name.
26964         * cgraph.h (cgraph_create_virtual_clone,
26965         cgraph_function_versioning): update prototypes.
26966         (clone_function_name): Declare.
26967         * ipa-cp.c (ipcp_insert_stage): Update call of
26968         cgraph_create_virtual_clone.
26969         * omp-low.c (create_omp_child_function_name): Use
26970         cgraph_create_virtual_clone.
26971         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26972         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26973         and make decl local.
26974
26975 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26976
26977         * vec.h: Include statistics.h
26978         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26979         with VEC_H.
26980
26981 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26982
26983         * c-lex.c: Do not include c-tree.h.
26984         * c-pretty-print.c: Likewise.
26985         * c-opts.c: Likewise.
26986         * c-gimplify.c: Likewise.
26987         * c-common.c: Likewise.
26988         * c-dump.c: Likewise.  Include c-common.h.
26989
26990 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26991
26992         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26993         before including diagnostic-core.h.
26994         (c_cpp_error): New prototype moved from c-tree.h.
26995         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26996         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26997         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26998         (c_cpp_error): Prototype moved to c-common.h.
26999         * Makefile.in: Update dependency for C_COMMON_H.
27000
27001 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27002
27003         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
27004         * c-common.c (c_register_addr_space): Remove here.
27005         * c-decl.c (c_register_addr_space): Re-add here.
27006
27007 2010-05-28  Mike Stump  <mikestump@comcast.net>
27008
27009         * config/darwin-c.c: Remove c-tree.h include.
27010
27011 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27012
27013         * gcc.c: Include diagnostic.h.
27014         (error_count): Remove.  All users changed to use errorcount.
27015         (programname): Remove.  All users changed to use progname.
27016         (fancy_abort, internal_error, fatal_error, error, warning, inform,
27017         fnotice): Remove.
27018         (execute): Don't include "Internal error" and bug reporting
27019         information in argument of internal_error call.
27020         (process_command): Don't increment error_count after calling
27021         perror_with_name.
27022         (input_filename): Rename to gcc_input_filename.  All users
27023         changed.
27024         (main): Call diagnostic_initialize.  Register delete_temp_files
27025         with atexit.  Use seen_error to test for errors.
27026         * gcc.h: Include diagnostic-core.h.
27027         (fatal_error, error, warning): Remove.
27028         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
27029         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
27030         (gcc.o): Update dependencies.
27031
27032 2010-05-28  Jeff Law  <law@redhat.com>
27033
27034         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
27035         functions.
27036         * ira.h (ira_bad_reload_regno): Declare
27037         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
27038
27039         * ira-color.c (update_curr_costs): Free updated hard reg costs.
27040         (ira_reassign_conflict_allocnos): Remove bogus asserts.
27041         (allocno_reload_assign): Likewise.
27042
27043 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
27044
27045         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
27046         build1_stat.
27047
27048 2010-05-28  Richard Guenther  <rguenther@suse.de>
27049
27050         PR lto/44312
27051         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
27052         Stream fixed-point constants mode.
27053         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
27054         and TYPE_PRECISION.
27055         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
27056         Stream fixed-point constants mode.
27057         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
27058         and TYPE_PRECISION.
27059
27060 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27061
27062         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
27063         only place it was called from.
27064         (number_of_latch_executions): Do not return chrec_dont_know when the
27065         may_be_zero is a runtime condition: instead, return a COND_EXPR
27066         including the may_be_zero condition.
27067         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
27068         of nb_iterations.
27069         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
27070         COND_EXPRs.
27071
27072 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27073
27074         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
27075         generate COND_EXPRs for degenerate_phi_result.
27076
27077 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27078
27079         PR middle-end/44293
27080         * tree-if-conv.c (if_convertible_loop_p): Check the
27081         if-convertibility of phi nodes in non predicated BBs.
27082
27083 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27084
27085         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
27086
27087 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27088
27089         PR driver/15303
27090         * gcc.c (inform, warning, inform): New functions.
27091         (fatal_ice): Rename to internal_error; change cmsgid parameter to
27092         gmsgid.  All callers changed.
27093         (notice): Rename to fnotice; add parameter fp.  All callers changed.
27094         (fatal_error): Rename to fatal_signal.  All users changed.
27095         (fatal): Rename to fatal_error; change cmsgid parameter to
27096         gmsgid.  All callers changed.
27097         (process_command): Use warning instead of error for warnings.
27098         (end_going_arg): Don't use _() around argument of error.
27099         (do_spec_1): Use inform for message from %n specs.  Use warning
27100         instead of error for warnings.
27101         (main): Use inform for comparison messages.  Use warning for
27102         message about unused linker input.
27103         (error): Increment error_count.  Print "error: ".
27104         * gcc.h (fatal): Change to fatal_error.
27105         (warning): Declare.
27106         * config/darwin-driver.c (darwin_default_min_version): Use warning
27107         instead of fprintf for warnings.
27108         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
27109
27110 2010-05-28  Julian Brown  <julian@codesourcery.com>
27111
27112         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
27113         (*thumb2_addsi3_compare0_scratch): New.
27114         * config/arm/constraints.md (Pv): New.
27115         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
27116         for ARM mode only.
27117         (*addsi3_compare0_scratch): Likewise.
27118
27119 2010-05-28  Jan Hubicka  <jh@suse.cz>
27120
27121         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
27122         check.
27123         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
27124         only on local statics.
27125
27126 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
27127
27128         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
27129
27130 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
27131
27132         PR bootstrap/44314
27133         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
27134         (OPTION_GLIBC): Define.
27135
27136 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27137
27138         PR debug/41048
27139         * dwarf2out.c (double_int_type_size_in_bits): New function.
27140         (round_up_to_align): Change first argument and return value to
27141         double_int.
27142         (field_byte_offset): Work internally on double_ints.
27143
27144         PR target/43636
27145         * builtins.c (expand_movstr): Use a temporary pseudo instead
27146         of target even when target is not NULL and not const0_rtx, but
27147         fails movstr predicate.
27148         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
27149
27150 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27151
27152         * final.c (rest_of_clean_state): Use %m in errors instead of
27153         strerror (errno).
27154         * gengtype.c (read_input_list, close_output_files): Use xstrerror
27155         instead of strerror.
27156         * toplev.c (process_options): Use %m in errors instead of strerror
27157         (errno).
27158         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
27159         (errno).
27160
27161 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
27162
27163         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
27164         (ix86_canonical_va_list_type): Make static.  Add declaration.
27165         (ix86_enum_va_list): Make static.  Reindent.
27166         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
27167         (ix86_canonical_va_list_type): Ditto.
27168         (ix86_enum_va_list): Ditto.
27169
27170 2010-05-28  Richard Guenther  <rguenther@suse.de>
27171
27172         * lto-wrapper.c (run_gcc): With -save-temps generate a
27173         user-visible ltrans filename.  Fixup ltrans unit numbering.
27174
27175 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
27176
27177         * c-common.c (c_common_nodes_and_builtins): Replace use
27178         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
27179         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
27180         to ix86_enum_va_list.
27181         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
27182         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
27183         (TARGET_ENUM_VA_LIST_P): Add hook description.
27184         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
27185         * target.h (gcc_target): Add enum_va_list hook.
27186
27187         PR bootstrap/44299
27188         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
27189         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
27190         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
27191
27192 2010-05-28  Alan Modra  <amodra@gmail.com>
27193
27194         PR target/44266
27195         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
27196         emit_library_call machinery to set up __tls_get_addr calls.
27197
27198 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27199
27200         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
27201
27202 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
27203
27204         Revert fix for PR c++/44188
27205         * c-common.c (is_typedef_decl): Revert the moving of  this
27206         definition ...
27207         * tree.c (is_typedef_decl): ... here.
27208         (typdef_variant_p): Revert the moving of this  definition
27209         here from cp/tree.c.
27210         * c-common.h (is_typedef_decl): Revert the moving of this
27211         declaration ...
27212         * tree.h (is_typedef_decl): ... here.
27213         (typedef_variant_p): Revert the moving of this  declaration here
27214         from cp/cp-tree.h
27215         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
27216         (gen_tagged_type_die): Revert the splitting out of ...
27217         (gen_type_die_with_usage): ... this function. Revert the anonymous
27218         tagged type handling.
27219         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
27220         typedefs naming anonymous tagged types.
27221
27222 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27223
27224         * config/rs6000/rs6000-modes.def (PSImode): Delete.
27225
27226 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27227
27228         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
27229         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
27230         throughout.
27231         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
27232         "xer" to "ca".
27233         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
27234         XER_REGS to CA_REGS throughout.
27235         * config/rs6000/rs6000.h: Same.
27236         (ADDITIONAL_REGISTER_NAMES): Add "xer".
27237         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
27238         that mode_iterator "P" is the size for arithmetic carries as well.
27239         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
27240
27241 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27242
27243         PR bootstrap/44255
27244         * combine.c (struct rtx_subst_pair): Define unconditionally.
27245         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
27246         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
27247         Call make_compound_operation on pair->to.
27248         (propagate_for_debug): Don't call make_compound_operation here.
27249         Always use simplify_replace_fn_rtx.
27250
27251 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
27252
27253         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
27254         * config/xtensa/xtensa.c (override_options): Check
27255           TARGET_FORCE_NO_PIC and set flag_pic.
27256         * config/xtensa/xtensa.opt: Document -mforce-no-pic
27257
27258 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27259
27260         PR bootstrap/44299
27261         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
27262         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
27263
27264 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27265
27266         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
27267         toplev.h.
27268         * diagnostic.c: Don't include toplev.h.
27269         (progname): Define.  Moved from toplev.c.
27270         (seen_error): New function.
27271         * diagnostic.h: Include diagnostic-core.h.
27272         (diagnostic_t, emit_diagnostic): Don't declare here.
27273         * toplev.c (progname): Move to toplev.c.
27274         (emit_debug_global_declarations, compile_file, finalize,
27275         do_compile, toplev_main): Use seen_error.
27276         * toplev.h: Include diagnostic-core.h.
27277         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
27278         internal_error, warning, warning_at, error, error_n, error_at,
27279         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
27280         verbatim, fnotice, progname): Move to diagnostic-core.h.
27281         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
27282         (expand_builtin_expect): Use seen_error.
27283         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
27284         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
27285         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
27286         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
27287         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
27288         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
27289         errorcount for errors.
27290         * c-opts.c (c_common_finish): Use seen_error.
27291         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27292         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27293         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27294         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27295         (get_coverage_counts): Use seen_error.
27296         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27297         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27298         gimplify_body): Use seen_error.
27299         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27300         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27301         * ipa-reference.c (gate_reference): Use seen_error.
27302         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27303         * lambda-code.c: Include diagnostic-core.h instead of
27304         diagnostic.h.
27305         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27306         * lto-compress.c: Include diagnostic-core.h instead of
27307         diagnostic.h.
27308         * lto-section-in.c: Include diagnostic-core.h instead of
27309         diagnostic.h.
27310         * lto-streamer-out.c: Include diagnostic-core.h instead of
27311         diagnostic.h.
27312         * lto-streamer.c: Include diagnostic-core.h instead of
27313         diagnostic.h.
27314         (gate_lto_out): Use seen_error.
27315         * matrix-reorg.c: Include diagnostic-core.h instead of
27316         diagnostic.h.
27317         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27318         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27319         (gate_expand_omp, lower_omp_1): Use seen_error.
27320         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27321         (rest_of_decl_compilation, rest_of_type_compilation,
27322         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27323         * tree-cfg.c (label_to_block_fn): Use seen_error.
27324         * tree-inline.c (optimize_inline_calls): Use seen_error.
27325         * tree-mudflap.c (mudflap_finish_file): Use
27326         seen_error.
27327         * tree-optimize.c (gate_all_optimizations,
27328         gate_all_early_local_passes, gate_all_early_optimizations): Use
27329         seen_error.
27330         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27331         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27332         (varpool_remove_unreferenced_decls,
27333         varpool_assemble_pending_decls): Use seen_error.
27334         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27335         (TOPLEV_H, DIAGNOSTIC_H): Update.
27336         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27337         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27338         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27339         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27340         coverage.o, lambda-code.o): Update dependencies.
27341
27342 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27343
27344         PR c++/44188
27345         * c-common.c (is_typedef_decl): Move this definition ...
27346         * tree.c (is_typedef_decl): ... here.
27347         (typdef_variant_p): Move definition here from cp/tree.c.
27348         * c-common.h (is_typedef_decl): Move this declaration ...
27349         * tree.h (is_typedef_decl): ... here.
27350         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27351         * dwarf2out.c (is_naming_typedef_decl): New function.
27352         (gen_tagged_type_die): Split out of ...
27353         (gen_type_die_with_usage): ... this function. When an anonymous
27354         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27355         is emitted for the typedef.
27356         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27357         anonymous tagged types.
27358
27359 2010-05-27  Jason Merrill  <jason@redhat.com>
27360
27361         * print-tree.c (debug_vec_tree): New fn.
27362         (print_vec_tree): New fn.
27363         * tree.h: Declare them.
27364         * gdbinit.in (pvt): New command.
27365
27366         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27367
27368         * gdbinit.in (pdd): New command.
27369
27370 2010-05-27  Jan Hubicka  <jh@suse.cz>
27371
27372         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27373         (update_caller_keys): Return early if there are no callers;
27374         only update fibheap when decresing the key.
27375         (update_callee_keys): Avoid recursion.
27376         (decide_inlining_of_small_functions): When badness does not match;
27377         re-insert into fibheap.
27378
27379 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27380
27381         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27382         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27383         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27384         (ALL_HOST_OBJS): Now a union of the above two.
27385         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27386         all files in ALL_HOST_FRONTEND_OBJS.
27387         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27388
27389         * c-common.c: Pretend to be a backend file by undefining
27390         IN_GCC_FRONTEND (still need rtl.h here).
27391
27392 2010-05-27  Jan Hubicka  <jh@suse.cz>
27393
27394         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27395         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27396
27397 2010-05-27  Jan Hubicka  <jh@suse.cz>
27398
27399         * sched-ebb.c: Rename struct deps to struct deps_desc.
27400         * ddg.c: Likewise.
27401         * sel-sched-ir.c: Likewise.
27402         * sched-deps.c: Likewise.
27403         * sched-int.h: Likewise.
27404         * sched-rgn.c: Likewise.
27405
27406 2010-05-27  Jon Beniston  <jon@beniston.com>
27407
27408         PR 43726
27409         * config/lm32/lm32.h: Remove definition of
27410         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27411
27412 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27413
27414         PR lto/44230
27415         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27416
27417 2010-05-27  Richard Guenther  <rguenther@suse.de>
27418
27419         PR tree-optimization/44284
27420         * tree-vect-stmts.c (vectorizable_assignment): Handle
27421         sign-changing conversions as simple copy.
27422
27423 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27424
27425         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27426         Bionic C library.
27427         (__gthread_active_p): Check for pthread_create if compiling against
27428         Bionic C library.
27429
27430 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27431
27432         Support compilation for Android platform.  Reimplement -mandroid.
27433
27434         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27435         (*android*): Set ANDROID_DEFAULT.
27436         (arm*-*-linux*): Include linux-android.h.
27437         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27438         * config/arm/eabi.h: Remove, move Android-specific parts ...
27439         * config/linux-android.h: ... here.  New file.
27440         * config/arm/eabi.opt: Rename to ...
27441         * config/linux-android.opt: ... this.
27442         (mandroid): Allow -mno-android option.  Initialize based on
27443         ANDROID_DEFAULT.
27444         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27445         Move logic to corresponding LINUX_TARGET_* macros.
27446         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27447         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27448         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27449         Android definitions.
27450         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27451         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27452         Document.
27453
27454 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27455
27456         Add support for Bionic C library
27457
27458         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27459         macro.
27460         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27461         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27462
27463         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27464         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27465         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27466         to support multiple C libraries.  Handle Bionic.
27467         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27468         (BIONIC_DYNAMIC_LINKER64): Define.
27469         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27470         Update.
27471         (TARGET_HAS_SINCOS): Enable for Bionic.
27472
27473         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27474         the last option specified on command line take effect.
27475         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27476         (mbionic): New.
27477         (mglibc, muclibc): Update.
27478
27479         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27480         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27481         DEFAULT_LIBC.
27482
27483         * doc/invoke.texi (-mglibc, -muclibc): Update.
27484         (-mbionic): Document.
27485
27486 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27487
27488         * c-common.h (c_register_addr_space): Add prototype.
27489         (ADDR_SPACE_KEYWORD): Remove.
27490         * c-common.c (c_register_addr_space): New function.
27491         (c_addr_space_name): Reimplement.
27492         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27493
27494         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27495         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27496
27497         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27498         Remove TARGET_ADDR_SPACE_KEYWORDS.
27499
27500 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27501
27502         * input.c: New file.
27503         * input.h (main_input_filename): Move declaration to toplev.h.
27504         * toplev.c (input_location, line_table): Move to input.c
27505         * toplev.h (main_input_filename): Move declaration from input.h.
27506         * tree.c (expand_location): Move to input.c.
27507         * Makefile.in (OBJS-common): Add input.o.
27508         (input.o): Add dependencies.
27509
27510 2010-05-27  Richard Guenther  <rguenther@suse.de>
27511
27512         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27513         for non-existant files.
27514         (fork_execute): Mark args_name file as deleted.
27515
27516 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27517
27518         PR bootstrp/44287
27519         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27520         (narrow_signed_type): Likewise.
27521
27522 2010-05-26  Jan Hubicka  <jh@suse.cz>
27523
27524         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27525         edge only when checking is enabled; check using former_clone_of;
27526         check inline clones too.
27527         (cgraph_materialize_clone): Record former_clone_of pointer.
27528         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27529         combining redirections; dump args_to_skip bitmap
27530         (cgraph_materialize_all_clones): Do no redirection here.
27531         * ipa-inline.c (inline_transform): Do redirection here.
27532         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27533         cheking only).
27534
27535 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27536
27537         * config/avr/avr-c.c: Do not include regs.h.
27538         Include cpplib.h for cpp_define and tree.h for c-common.h.
27539         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27540         * config/avr/t-avr: Fix dependencies for avr-c.o.
27541
27542 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27543
27544         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27545         string instead of SYMBOL_REF rtx.
27546         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27547         * libfuncs.h: ...to here.  Adjust for explow.c change.
27548
27549 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27550
27551         * pretty-print.c: Don't include ggc.h.
27552         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27553         (identifier_to_locale): Use them for allocation.
27554         * pretty-print.h (identifier_to_locale_alloc,
27555         identifier_to_locale_free): Declare.
27556         * toplev.c (alloc_for_identifier_to_locale): New.
27557         (general_init): Set identifier_to_locale_alloc and
27558         identifier_to_locale_free.
27559         * Makefile.in (pretty-print.o): Update dependencies.
27560
27561 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27562
27563         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27564         pointer types if they have different alignment or mode.
27565
27566 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27567
27568         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27569         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27570         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27571         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27572         sparc_function_value_regno_p): New functions.
27573         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27574         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27575         (function_value): Rename to...
27576         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27577         argument to 'outgoing'.
27578         (function_arg_record_value, function_arg_union_value,
27579         function_arg_vector_value): Update comment.
27580
27581 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27582
27583         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27584         (fde_needed_for_eh_p): New predicate.
27585         (output_call_frame_info): Use it throughout to decide whether FDEs
27586         are needed for EH purpose.
27587         (dwarf2out_begin_prologue): Reorder assignments.
27588
27589 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27590
27591         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27592         special case loop->header.
27593         (is_predicated): New.
27594         (if_convertible_loop_p): Call it.
27595
27596 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27597
27598         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27599         iterator in parameter.  Do not generate code during the analysis.
27600         (tree_if_convert_cond_stmt): Removed.
27601         (tree_if_convert_stmt): Removed.
27602         (predicate_bbs): New.
27603         (if_convertible_loop_p): Call predicate_bbs.
27604         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27605         now contains all the analysis part.
27606
27607 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27608
27609         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27610         statements in the analysis part.
27611         (tree_if_convert_stmt): Update comment.
27612         (remove_conditions_and_labels): New.
27613         (combine_blocks): Call remove_conditions_and_labels.
27614         (tree_if_conversion): Update comment.
27615
27616 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27617
27618         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27619         than 2 predecessors or more than 2 successors.
27620
27621 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27622
27623         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27624         of loops in which the data dependence analysis fails.
27625
27626 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27627
27628         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27629         CDI_POST_DOMINATORS.
27630         (tree_if_conversion): Same.
27631
27632 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27633
27634         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27635
27636 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27637
27638         * tree-if-conv.c: Update copyright years.  Fix comments.
27639         Fix indentation.
27640
27641 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27642
27643         * builtin-types.def (BT_INT128): New primitive type.
27644         (BT_UINT128): Likewise.
27645         * c-common.c (c_common_r): Add __int128 keyword.
27646         (c_common_type_for_size): Handle __int128.
27647         (c_common_type_for_mode): Likewise.
27648         (c_common_signed_or_unsigned_type): Likewise.
27649         (c_common_nodes_and_builtins): Add builtin type
27650         if target supports 128-bit integer scalar.
27651         * c-common.h (enum rid): Add RID_INT128.
27652         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27653         if target supports 128-bit integer scalar.
27654         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27655         (finish_declspecs): Likewise.
27656         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27657         (c_token_starts_declspecs): Likewise.
27658         (c_parser_declspecs): Likewise.
27659         (c_parser_attributes): Likewise.
27660         (c_parser_objc_selector): Likewise.
27661         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27662         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27663         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27664         * tree.c (make_or_reuse_type): Likewise.
27665         (make_unsigned_type): Likewise.
27666         (build_common_tree_nodes_2): Likewise.
27667         * tree.h (enum integer_type_kind): Add itk_int128 and
27668         itk_unsigned_int128.
27669         (int128_integer_type_node): New define.
27670         (int128_unsigned_type_node): New define.
27671         * doc/extend.texi: Add documentation about __int128 type.
27672
27673 2010-05-26  Richard Guenther  <rguenther@suse.de>
27674
27675         * tree-ssa-sccvn.c (copy_nary): Adjust.
27676         (copy_phis): Rename to ...
27677         (copy_phi): ... this.  Adjust.
27678         (copy_references): Rename to ...
27679         (copy_reference): ... this.  Adjust.
27680         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27681         result into the valid table.
27682
27683 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27684
27685         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27686         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27687
27688 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27689
27690         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27691
27692 2010-05-26  Richard Guenther  <rguenther@suse.de>
27693
27694         * opts.c (common_handle_option): Handle OPT_Ofast.
27695
27696 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27697
27698         * diagnostic.c: Don't include opts.h.
27699         (permissive_error_option): Define.
27700         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27701         for classify_diagnostic.  Don't use memset for
27702         classify_diagnostic.  Initialize new and recently added fields.
27703         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27704         N_OPTS.
27705         (diagnostic_report_diagnostic): Pass context parameter to
27706         diagnostic_report_warnings_p.  Use option_enabled and option_name
27707         hooks from context.
27708         (emit_diagnostic): Use permissive_error_option.
27709         (permerror): Likewise.
27710         * diagnostic.h: Don't include options.h.
27711         (struct diagnostic_context): Add n_opts, opt_permissive,
27712         inhibit_warnings, warn_system_headers, option_enabled and
27713         option_name fields.  Change classify_diagnostic to a pointer.
27714         * opts-diagnostic.h: New file.
27715         * opts.c: Include opts-diagnostic.h.
27716         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27717         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27718         (option_name): New function.
27719         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27720         (c_common_handle_option): Set global_dc->permissive for
27721         -fpermissive.
27722         * c-common.c (c_cpp_error): Save and restore
27723         global_dc->warn_system_headers, not variable warn_system_headers.
27724         * toplev.c: Include opts-diagnostic.h.
27725         (general_init): Update call to diagnostic_initialize.  Set
27726         global_dc->show_column, global_dc->option_enabled and
27727         global_dc->option_name.
27728         (process_options): Don't set global_dc fields here.
27729         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27730         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27731
27732 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27733
27734         * config/picochip/picochip.md (movsi): Split a movsi from a
27735         const after reload.
27736
27737 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27738
27739         * ggc-zone.c: Update copyright year.
27740         (poison_region): Mark memory for Valgrind as undefined before
27741         memset () call and inaccessible afterwards.
27742         (ggc_pch_total_size): Change type of i to int.
27743
27744 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27745
27746         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27747
27748 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27749
27750         * ggc-common.c: Update copyright year.
27751         (ggc_rlimit_bound): Remove prototype.  Compile only if
27752         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27753         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27754         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27755         (ggc_min_heapsize_heuristic): Likewise.
27756
27757 2010-05-26  Richard Guenther  <rguenther@suse.de>
27758
27759         PR rtl-optimization/44164
27760         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27761         no-common access-path disambiguation.
27762         (indirect_ref_may_alias_decl_p): Adjust.
27763         (indirect_refs_may_alias_p): Likewise.
27764         (refs_may_alias_p_1): Likewise.
27765
27766 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27767
27768         * c-typeck.c: Do not include expr.h.
27769
27770 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27771
27772         * rtl.h (decl_default_tls_model): Move prototype from here...
27773         * output.h: ...to here.
27774         * c-decl.c: Do not include rtl.h.
27775         * c-pragma.c: Likewise.
27776         * c-parser.c: Likewise.
27777         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27778         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27779         FIXME note for it.  Add a FIXME note for expr.h.
27780         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27781         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27782         defined.
27783
27784 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27785
27786         PR target/44199
27787         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27788         or total_size is larger than red zone size for non-V4 ABI, emit a
27789         stack_tie resp. frame_tie insn before stack pointer restore.
27790         * config/rs6000/rs6000.md (frame_tie): New insn.
27791
27792 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27793
27794         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27795         * lto-streamer-in.c (input_function): Stream it in.
27796         * lto-streamer-out.c (output_function): Stream it out.
27797         * function.c (allocate_struct_function): Set it.
27798         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27799         for flag_non_call_exceptions.
27800         * cfgbuild.c (control_flow_insn_p): Likewise.
27801         (make_edges): Likewise.
27802         * cfgexpand.c (expand_stack_alignment): Likewise.
27803         * combine.c (distribute_notes): Likewise.
27804         * cse.c (cse_extended_basic_block): Likewise.
27805         * except.c (insn_could_throw_p): Likewise.
27806         * gcse.c (simple_mem): Likewise.
27807         * ipa-pure-const.c (check_call): Likewise.
27808         (check_stmt ): Likewise.
27809         * lower-subreg.c (lower-subreg.c): Likewise.
27810         * optabs.c (emit_libcall_block): Likewise.
27811         (prepare_cmp_insn): Likewise.
27812         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27813         * postreload.c (rest_of_handle_postreload): Likewise.
27814         * reload1.c (reload_as_needed): Likewise.
27815         (emit_input_reload_insns): Likewise.
27816         (emit_output_reload_insns): Likewise.
27817         (fixup_abnormal_edges): Likewise.
27818         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27819         * store-motion.c (find_moveable_store): Likewise.
27820         * tree-eh.c (stmt_could_throw_p): Likewise.
27821         (tree_could_throw_p): Likewise.
27822         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27823         * config/arm/arm.c (arm_expand_prologue): Likewise.
27824         (thumb1_expand_prologue): Likewise.
27825         * config/rx/rx.md (cbranchsf4): Likewise.
27826         (cmpsf): Likewise.
27827         * config/s390/s390.c (s390_emit_prologue): Likewise.
27828         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27829         (inline_forbidden_into_p): New predicate.
27830         (expand_call_inline): Use it to forbid inlining.
27831         (tree_can_inline_p): Likewise.
27832
27833 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27834
27835         * config/i386/i386-c.c: Do not include rtl.h.
27836         * config/i386/t-i386: Update dependencies.
27837
27838 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27839
27840         * attribs.c: Do not include rtl.h.
27841         * Makefile.in: Update dependencies.
27842
27843 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27844
27845         * double-int.h (double_int_and): New.
27846         * combine.c (try_combine): Clean up, use double_int_* and
27847         immed_double_int_const functions.
27848
27849 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27850
27851         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27852         stderr to /dev/null instead of grep -q.
27853         * configure: Regenerate.
27854
27855 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27856
27857         * Makefile.in (EXCEPT_H): Fix typo.
27858
27859 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27860
27861         * ira-build.c (update_conflict_hard_reg_costs): New.
27862         (ira_build): Call update_conflict_hard_reg_costs.
27863
27864 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27865
27866         PR debug/41371
27867         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27868         ENABLE_CHECKING.
27869         (intersect_loc_chains): Walk the s2var's loc_chain together
27870         with s1node chain as long as the locations are equal, don't
27871         call find_loc_in_1pdv in that case.
27872
27873         PR debug/42801
27874         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27875         (copy_bind_expr): ... instead of here.
27876         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27877         if the block hasn't been remapped.
27878         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27879         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27880
27881 2010-05-25  Richard Guenther  <rguenther@suse.de>
27882
27883         PR middle-end/44069
27884         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27885         out-of-bounds array accesses.
27886
27887 2010-05-25  Richard Guenther  <rguenther@suse.de>
27888
27889         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27890         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27891         (run_gcc): Re-organize to make cleanup easier.
27892
27893 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27894
27895         * config/s390/s390.c (optimization_options): Fix and move the
27896         flag_prefetch_loop_arrays override ...
27897         (override_options): ... here.
27898
27899 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27900
27901         * diagnostic.c: Don't include plugin.h.
27902         (diagnostic_report_diagnostic): Don't handle plugins specially
27903         here.  Pass context to internal_error callback.
27904         * diagnostic.h (struct diagnostic_context): Add context parameter
27905         to internal_error callback.
27906         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27907         * plugin.h (struct diagnostic_context): Declare.
27908         (warn_if_plugins, plugins_internal_error_function): Declare.
27909         * toplev.c (general_init): Set global_dc->internal_error.
27910         * Makefile.in (diagnostic.o): Update dependencies.
27911
27912 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27913
27914         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27915         * config/rs6000/t-darwin64: New.
27916         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27917         build crt2.
27918
27919 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27920
27921         PR 44203
27922         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27923         match the original (and intended) behaviour before r159557.  This
27924         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27925         in two ways.
27926
27927 2010-05-25  Richard Guenther  <rguenther@suse.de>
27928
27929         * doc/invoke.texi: Document -Ofast.
27930         * target.h (struct gcc_target): Add handle_ofast.
27931         * target-def.h (TARGET_HANDLE_OFAST): Add.
27932         (TARGET_INITIALIZER): Adjust.
27933         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27934         * common.opt (Ofast): Add.
27935
27936 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27937
27938         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27939         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27940
27941 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27942
27943         PR target/43610
27944         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27945         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27946         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27947         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27948
27949 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27950
27951         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27952         DW_OP_minus with negated offset instead of DW_OP_plus.
27953         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27954
27955 2010-05-25  Wei Guozhi  <carrot@google.com>
27956
27957         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27958         tst instruction and a new alternative.
27959         * config/arm/constraints.md (Pu): New constraint.
27960
27961 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27962
27963         * function.c (assign_stack_local_1): Initialize variable
27964         to avoid warning when bootstrapping at -O3.
27965
27966 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27967
27968         * configure.ac (all_lang_makefiles): Remove everything related to it.
27969         * configure: Regenerate.
27970         * Makefile.in: Fix reference to ada Make-lang.in.
27971         Remove support for LANG_MAKEFILES.
27972
27973 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27974             Sandra Loosemore  <sandra@codesourcery.com>
27975
27976         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27977         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27978         description.  Add arm_neon_fp16_ok.
27979         (Add Options): Add arm_neon and arm_neon_fp16.
27980
27981 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27982
27983         * diagnostic.c: Don't include flags.h.
27984         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27985         context parameters.  Check flags in the context passed as a parameter.
27986         (diagnostic_build_prefix): Add context parameter.  Check
27987         show_column flag in context.
27988         (diagnostic_action_after_output): Check fatal_errors flag in context.
27989         (diagnostic_report_current_module): Check show_column flag in context.
27990         (default_diagnostic_starter): Update call to
27991         diagnostic_build_prefix.
27992         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27993         (emit_diagnostic): Pass context to permissive_error_kind.
27994         (permerror): Pass context to permissive_error_kind.
27995         * diagnostic.h (struct diagnostic_context): Add show_column,
27996         pedantic_errors, permissive and fatal_errors fields.
27997         (diagnostic_build_prefix): Update prototype.
27998         * langhooks.c
27999         * toplev.c (process_options): Set flags in global_dc from
28000         flag_show_column, flag_pedantic_errors, flag_permissive,
28001         flag_fatal_errors.
28002         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
28003         to diagnostic_build_prefix.
28004         * Makefile.in (diagnostic.o): Update dependencies.
28005
28006 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
28007
28008         * config/i386/ia32intrin.h (__crc32q): Define only if
28009         __SSE4_2__ is defined.
28010
28011 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
28012
28013         PR target/44132
28014         PR middle-end/43602
28015         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
28016         DECL_VISIBILITY_SPECIFIED.
28017         (emutls_decl): Set DECL_PRESERVE_P and copy
28018         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
28019         (emutls_finalize_control_var): New callback.
28020         (emutls_finish): Finalize emutls control variables.
28021         * toplev.c (compile_file): Move the call to emutls_finish ()
28022         before varpool_assemble_pending_decls ().
28023
28024 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
28025
28026         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
28027         added to the preprocessor condition.
28028
28029 2010-05-24  Paul Brook  <paul@codesourcery.com>
28030
28031         * gengtype-lex.l: Add HARD_REG_SET.
28032         * expr.c (expand_expr_real_1): Record writes to hard registers.
28033         * function.c (rtl_data): Add asm_clobbers.
28034         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
28035         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
28036         Use crtl->asm_clobbers.
28037
28038 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28039
28040         * doc/makefile.texi (Makefile): Mention stages 'profile'
28041         and 'feedback' for profiledbootstrap.
28042
28043 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
28044
28045         PR target/44245
28046         * config/i386/i386.c (def_builtin): Properly check
28047         OPTION_MASK_ISA_64BIT.
28048
28049 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
28050
28051         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
28052         typedefs with different but compatible types.  Allow duplicate
28053         typedefs with the same type except for pedantic non-C1X, but give
28054         warning for variably modified types.
28055         * c-typeck.c (tagged_types_tu_compatible_p,
28056         function_types_compatible_p, type_lists_compatible_p,
28057         comptypes_internal): Add parameter different_types_p; set
28058         *different_types_p for different but compatible types.  All
28059         callers changed.
28060         (comptypes_check_different_types): New.
28061         * c-tree.h (comptypes_check_different_types): Declare.
28062
28063 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28064
28065         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
28066         * jump.c: Include basic-block.h.
28067         * profile.c: Likewise.
28068         * tree-profile.c: Likewise.
28069         * coverage.c: Likewise.
28070         * basic-block.h (optimize_function_for_size_p): Move to function.h.
28071         (optimize_function_for_speed_p): Likewise.
28072         * function.h (optimize_function_for_size_p,
28073         optimize_function_for_speed_p): Moved here from basic-block.h.
28074         * Makefile.in: Update dependencies.
28075
28076 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28077
28078         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
28079         before calling make; allow override through $MAKE.
28080         * doc/invoke.texi (Optimize Options): Document override.
28081
28082 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
28083
28084         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
28085         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28086         (rs6000_mode_dependent_address_ptr): Make static.
28087         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28088         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
28089         Remove.
28090
28091 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
28092
28093         PR target/43869
28094         * config/i386/i386.c: Make sure that the correct regparm is passed.
28095
28096 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28097
28098         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
28099         * sbitmap.c: ...to here to internalize sbitmap element access.
28100         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
28101         Explain why basic-block.h is included.
28102         * function.h: Include tm.h for CUMULATIVE_ARGS.
28103         * Makefile.in: Update dependencies.
28104
28105 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28106
28107         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
28108         New core types.
28109         * sbitmap.h (struct sbitmap_def): Do not typedef here.
28110         * sbitmap.c: Include sbitmap.h.
28111         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
28112         hard-reg-set.h.  Split everything related to regsets out from here...
28113         * regset.h: ...to here.  New file.
28114         * df.h: Include regset.h and sbitmap.h.
28115         * tree-flow.h: Likewise.
28116         * cfgloop.h: Likewise.
28117         * except.h: Do not include sbitmap.h.  Include hashtab.h.
28118         * cgraph.h: Include vec.h and function.h.
28119         * reload.h (struct insn_chain): Change types of live_throughout
28120         and dead_or_set from regset_head to bitmap_head.
28121         (compute_use_by_pseudos): Be defined also if regset.h is not included.
28122         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
28123         spilled_regs from regset_head to bitmap_head to avoid dependency
28124         in regset.h.
28125         * sel-sched-ir.h: Include regset.h.
28126         * reload.c: Include df.h before reload.h.
28127         * caller-save.c: Likewise.
28128         * reload1.c: Likewise.
28129         * ira.c: Likewise.
28130         (mark_elimination): Update type of r to bitmap, consistent with
28131         DF_LR_IN.
28132         * dominance.c: Include bitmap.h.
28133         * modulo-sched.c: Include df.h.
28134         * cfganal.c: Include bitmap.h and sbitmap.h.
28135         * cfgbuild.c: Include sbitmap.h.
28136         * lcm.c: Include sbitmap.h.
28137         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
28138         * domwalk.c: Include sbitmap.h, exclude ggc.h.
28139         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
28140         * cselib.c: Include bitmap.h.
28141         * tree-optimize.c: Include regset.h.
28142         * stmt.c: Include bitmap.h.
28143         * Makefile.in: Update dependencies.
28144
28145 2010-05-22  Jan Hubicka  <jh@suse.cz>
28146
28147         * cgraph.h (struct varpool_node): Add same_comdat_group.
28148         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
28149         pointer.
28150         (output_varpool): Update call of lto_output_varpool_node.
28151         (input_varpool): Read same_comdat_group pointer.
28152         (input_varpool_1): Fixup same_comdat_group pointer.
28153         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
28154         group is needed, all are.
28155         * varpool.c (varpool_remove_node): Remove node from same comdat group
28156         linklist too.
28157         (varpool_analyze_pending_decls): Walk same comdat groups.
28158
28159 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28160
28161         * rtl.h (union rtunion_def): Remove rt_bit member.
28162         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
28163         * print-rtl (print_rtx): Do not print the member.
28164         * gengtype.c (adjust_field_rtx_def): Do not handle it.
28165         * gengenrtl.c (type_from_format): Likewise.
28166         (accessor_from_format): Likewise.
28167
28168 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
28169
28170         * dbgcnt.c: Include toplev.h instead of errors.h.
28171         * ira-emit.c: Don't include errors.h.
28172         * ira.c: Include toplev.h instead of errors.h.
28173         * lto-compress.c: Include toplev.h instead of errors.h.
28174         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
28175         ira.o, dbgcnt.o): Update dependencies.
28176
28177 2010-05-22  Richard Guenther  <rguenther@suse.de>
28178
28179         * gimple.c (gimple_types_compatible_p): Check type qualifications
28180         before merging pointer to complete and pointer to incomplete type.
28181         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
28182         we use our own resolution algorithm.  The gold linker plugin
28183         doesn't do the job we want it to do here.
28184
28185 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
28186
28187         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28188         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28189         (sparc_mode_dependent_address_p): New function.
28190
28191 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28192
28193         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
28194
28195         * timevar.c: Do not include any core headers.
28196         (timevar_print): De-i18n-ize.
28197         (print_time): Likewise.
28198         * timevar.h (timevar_push, timevar_pop): Make inline functions.
28199
28200 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
28201
28202         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
28203         langhooks-def.h.
28204         (diagnostic_initialize): Initialize x_data not last_function.
28205         (diagnostic_report_current_function): Move to tree-diagnostic.c.
28206         (default_diagnostic_starter): Call
28207         diagnostic_report_current_module not
28208         diagnostic_report_current_function.
28209         (diagnostic_report_diagnostic): Initialize x_data not
28210         abstract_origin.
28211         (verbatim): Likewise.
28212         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
28213         x_data.
28214         (struct diagnostic_context): Change last_function to x_data.
28215         (diagnostic_auxiliary_data): Replace with
28216         diagnostic_context_auxiliary_data and
28217         diagnostic_info_auxiliary_data.
28218         (diagnostic_last_function_changed, diagnostic_set_last_function,
28219         diagnostic_report_current_function): Move to tree-diagnostic.h.
28220         (print_declaration, dump_generic_node, print_generic_stmt,
28221         print_generic_stmt_indented, print_generic_expr,
28222         print_generic_decl, debug_c_tree, dump_omp_clauses,
28223         print_call_name, debug_generic_expr, debug_generic_stmt,
28224         debug_tree_chain, default_tree_printer): Move to
28225         tree-pretty-print.h.
28226         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
28227         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
28228         gimple-pretty-print.h.
28229         * pretty-print.c: Don't include tree.h
28230         (pp_base_format): Don't handle %K here.
28231         (pp_base_tree_identifier): Move to tree-pretty-print.c.
28232         * pretty-print.h (text_info): Change abstract_origin to x_data.
28233         (pp_tree_identifier, pp_unsupported_tree,
28234         pp_base_tree_identifier): Move to tree-pretty-print.h.
28235         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
28236         tree-pretty-print.h: New files.
28237         * tree-pretty-print.c: Include tree-pretty-print.h.
28238         (percent_K_format): New.  Moved from pretty-print.c.
28239         (pp_base_tree_identifier): Move from pretty-print.c.
28240         * c-objc-common.c: Include tree-pretty-print.h.
28241         (c_tree_printer): Handle %K here.
28242         * langhooks.c: Include tree-diagnostic.h.
28243         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
28244         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
28245         (default_tree_printer): Handle %K using percent_K_format.
28246         (general_init): Use default_tree_diagnostic_starter.
28247         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
28248         (free_lang_data): Use default_tree_diagnostic_starter.
28249         * c-pretty-print.c: Include tree-pretty-print.h.
28250         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28251         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28252         * dwarf2out.c: Include tree-pretty-print.h.
28253         * except.c: Include tree-pretty-print.h.
28254         * gimple-pretty-print.c: Include tree-pretty-print.h and
28255         gimple-pretty-print.h.
28256         * gimplify.c: Include tree-pretty-print.h.
28257         * graphite-poly.c: Include tree-pretty-print.h and
28258         gimple-pretty-print.h.
28259         * ipa-cp.c: Include tree-pretty-print.h.
28260         * ipa-inline.c: Include gimple-pretty-print.h.
28261         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28262         * ipa-pure-const.c: Include gimple-pretty-print.h.
28263         * ipa-struct-reorg.c: Include tree-pretty-print.h and
28264         gimple-pretty-print.h.
28265         * ipa-type-escape.c: Include tree-pretty-print.h.
28266         * print-rtl.c: Include tree-pretty-print.h.
28267         * print-tree.c: Include gimple-pretty-print.h.
28268         * sese.c: Include tree-pretty-print.h.
28269         * tree-affine.c: Include tree-pretty-print.h.
28270         * tree-browser.c: Include tree-pretty-print.h.
28271         * tree-call-cdce.c: Include gimple-pretty-print.h.
28272         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28273         * tree-chrec.c: Include tree-pretty-print.h.
28274         * tree-data-ref.c: Include tree-pretty-print.h and
28275         gimple-pretty-print.h.
28276         * tree-dfa.c: Include tree-pretty-print.h.
28277         * tree-if-conv.c: Include tree-pretty-print.h and
28278         gimple-pretty-print.h.
28279         * tree-inline.c: Include tree-pretty-print.h.
28280         * tree-into-ssa.c: Include tree-pretty-print.h and
28281         gimple-pretty-print.h.
28282         * tree-nrv.c: Include tree-pretty-print.h.
28283         * tree-object-size.c: Include tree-pretty-print.h and
28284         gimple-pretty-print.h.
28285         * tree-outof-ssa.c: Include tree-pretty-print.h and
28286         gimple-pretty-print.h.
28287         * tree-parloops.c: Include tree-pretty-print.h and
28288         gimple-pretty-print.h.
28289         * tree-predcom.c: Include tree-pretty-print.h and
28290         gimple-pretty-print.h.
28291         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28292         gimple-pretty-print.h.
28293         * tree-sra.c: Include tree-pretty-print.h.
28294         * tree-ssa-address.c: Include tree-pretty-print.h.
28295         * tree-ssa-alias.c: Include tree-pretty-print.h.
28296         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28297         gimple-pretty-print.h.
28298         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28299         * tree-ssa-copy.c: Include tree-pretty-print.h and
28300         gimple-pretty-print.h.
28301         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28302         * tree-ssa-dce.c: Include tree-pretty-print.h and
28303         gimple-pretty-print.h.
28304         * tree-ssa-dom.c: Include tree-pretty-print.h and
28305         gimple-pretty-print.h.
28306         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28307         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28308         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28309         * tree-ssa-live.c: Include tree-pretty-print.h and
28310         gimple-pretty-print.h.
28311         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28312         gimple-pretty-print.h.
28313         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28314         gimple-pretty-print.h.
28315         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28316         gimple-pretty-print.h.
28317         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28318         gimple-pretty-print.h.
28319         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28320         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28321         * tree-ssa-operands.c: Include tree-pretty-print.h and
28322         gimple-pretty-print.h.
28323         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28324         gimple-pretty-print.h.
28325         * tree-ssa-pre.c: Include tree-pretty-print.h and
28326         gimple-pretty-print.h.
28327         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28328         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28329         gimple-pretty-print.h.
28330         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28331         gimple-pretty-print.h.
28332         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28333         * tree-ssa-ter.c: Include tree-pretty-print.h and
28334         gimple-pretty-print.h.
28335         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28336         * tree-ssa.c: Include tree-pretty-print.h and
28337         gimple-pretty-print.h.
28338         * tree-stdarg.c: Include gimple-pretty-print.h.
28339         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28340         * tree-tailcall.c: Include tree-pretty-print.h and
28341         gimple-pretty-print.h.
28342         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28343         gimple-pretty-print.h.
28344         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28345         gimple-pretty-print.h.
28346         * tree-vect-loop.c: Include tree-pretty-print.h and
28347         gimple-pretty-print.h.
28348         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28349         * tree-vect-slp.c: Include tree-pretty-print.h and
28350         gimple-pretty-print.h.
28351         * tree-vect-stmts.c: Include tree-pretty-print.h and
28352         gimple-pretty-print.h.
28353         * tree-vectorizer.c: Include tree-pretty-print.h.
28354         * tree-vrp.c: Include tree-pretty-print.h and
28355         gimple-pretty-print.h.
28356         * value-prof.c: Include tree-pretty-print.h and
28357         gimple-pretty-print.h.
28358         * var-tracking.c: Include tree-pretty-print.h.
28359         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28360         (tree-diagnostic.o): New dependencies.
28361         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28362         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28363         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28364         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28365         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28366         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28367         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28368         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28369         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28370         tree-ssa-address.o, tree-ssa-loop-niter.o,
28371         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28372         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28373         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28374         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28375         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28376         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28377         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28378         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28379         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28380         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28381         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28382         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28383         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28384         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28385         cfgexpand.o, pretty-print.o): Update dependencies.
28386
28387 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28388
28389         * tree-ssa-structalias.c: Remove tm_p.h from include.
28390
28391 2010-05-21  Jeff Law  <law@redhat.com>
28392
28393         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28394
28395 2010-05-21  Jason Merrill  <jason@redhat.com>
28396
28397         * tree-eh.c (cleanup_is_dead_in): New.
28398         (lower_try_finally): Don't generate a dead cleanup region.
28399         (lower_cleanup): Likewise.
28400
28401 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28402
28403         PR debug/44223
28404         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28405         unchain each use from the cyclic next_regno_use chain first.
28406
28407 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28408
28409         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28410         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28411         (real_value_negate, real_value_abs): New prototypes.
28412         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28413         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28414         new include file for interface between MPFR and REAL_VALUE_TYPE.
28415         * real.c: Include realmpfr.h.
28416         (real_arithmetic2): Remove legacy function.
28417         (real_value_negate): New.
28418         (real_value_abs): New.
28419         (mfpr_from_real, real_from_mpfr): Move from here...
28420         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28421         * builtins.c: Include realmpfr.h.
28422         * fold-const.c: Include realmpfr.h.
28423         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28424         (fold_negate_const): Likewise.
28425         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28426         * toplev.c: Include realmpfr.h.
28427         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28428         and real_value_negate.
28429         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28430         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28431         (vfp3_const_double_index): Likewise.
28432         (arm_print_operand): Likewise.
28433         * Makefile.in: Update dependencies.
28434
28435 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28436
28437         * config/s390/s390.c (override_options): Increase the default
28438         of max-completely-peel-times.
28439
28440 2010-05-21  Julian Brown  <julian@codesourcery.com>
28441             Mark Mitchell  <mark@codesourcery.com>
28442
28443         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28444         sibling calls for Thumb-1.
28445         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28446         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28447         Thumb-2.
28448         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28449         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28450         for Thumb-2.
28451         (return): New expander.
28452         (*arm_return): New name for ARM return insn.
28453         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28454
28455 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28456
28457         * config.gcc (sparc64-*-rtems*): New target.
28458
28459 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28460
28461         * tree.c (build_function_decl_skip_args): Fix grammar.
28462         (build_function_type_list_1): Fix typos, adjust formatting.
28463
28464 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28465
28466         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28467         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28468         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28469         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28470         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28471         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28472         tree-pretty-print.c, tree-loop-distribution.c,
28473         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28474         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28475         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28476         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28477         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28478         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28479         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28480         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28481         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28482         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28483         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28484         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28485         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28486         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28487         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28488         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28489         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28490         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28491         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28492         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28493         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28494         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28495         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28496         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28497         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28498         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28499         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28500         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28501         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28502         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28503         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28504         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28505         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28506         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28507         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28508         config/bfin/bfin.c: Clean up redundant includes.
28509         * Makefile.in: Update accordingly.
28510
28511 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28512
28513         PR middle-end/44204
28514         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28515         statement has no arguments.
28516
28517 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28518
28519         PR/44139
28520         * varasm.c (emutls_decl): Merge attributes to new decl.
28521
28522 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28523
28524         PR middle-end/44101
28525         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28526         around the uniquized constructor if its type requires a conversion.
28527
28528 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28529
28530         PR debug/44205
28531         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28532         at -O0 goto_locus of any of the incoming edges differs from
28533         goto_locus of outgoing edge, or gimple_location of any of the
28534         labels differs.
28535
28536 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28537
28538         * ira.c (ira_non_ordered_class_hard_regs): Define.
28539         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28540         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28541         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28542         cost of unaligned hard regs when allocating multi-reg pseudos.
28543
28544 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28545
28546         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28547         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28548         for TARGET_NO_FLOAT.
28549         * config/mips/mips.c (mips_file_start): Expand conditional expression
28550         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28551         (mips_override_options): Move -mno-float override -msoft-float and
28552         -mhard-float.
28553         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28554         Condition(TARGET_SUPPORTS_NO_FLOAT).
28555         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28556         __mips_no_float here.
28557         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28558         (TARGET_SUPPORTS_NO_FLOAT): Define.
28559         * config/mips/sdemtk.opt: Delete.
28560
28561 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28562
28563         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28564
28565 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28566
28567         PR target/43733
28568         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28569         * configure: Regenerate.
28570         * config.in: Regenerate.
28571         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28572         instead of sahf only for 64bit targets.
28573
28574 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28575
28576         PR debug/44178
28577         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28578         setup_ref_regs for DEBUG_INSNs.
28579
28580 2010-05-20  Jan Hubicka  <jh@suse.cz>
28581
28582         PR middle-end/44197
28583         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28584
28585 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28586
28587         PR bootstrap/43870
28588         * df-scan.c (df_ref_compare): Stabilize sort.
28589
28590 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28591
28592         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28593         argument.  Don't use DW_OP_piece if offset is non-zero,
28594         put offset into second DW_OP_bit_piece argument.
28595         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28596         compute offset.
28597
28598 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28599
28600         PR target/44202
28601         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28602         settings for 16-bit-constant "addo" alternative.
28603
28604 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28605
28606         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28607         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28608
28609         PR target/43764
28610         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28611         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28612         Use it.
28613
28614 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28615
28616         * diagnostic.c (FLOAT, FFS): Don't undefine.
28617         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28618         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28619         include ordering.
28620
28621 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28622
28623         * combine.c (propagate_for_debug): Call make_compound_operation
28624         on the source value.
28625         (try_combine): When implementing a split chosen by find_split_point,
28626         either copy i2src or set it to null.  Assert that i2src is not null
28627         before substituting into CALL_INSN_FUNCTION_USAGE.
28628
28629 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28630
28631         * double-int.h (double_int_ior): New function.
28632         * tree.h (build_int_cst_wide_type): Remove.
28633         * tree.c (build_int_cst_wide_type): Remove.
28634         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28635         of build_int_cst_wide_type.
28636         * stor-layout.c (set_sizetype): (Ditto.).
28637         * dojump.c (do_jump): Use build_int_cstu instead of
28638         build_int_cst_wide_type.
28639
28640 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28641
28642         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28643         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28644         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28645         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28646         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28647         propagate the 'data' argument to copy_tree_r.
28648         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28649         Propagate 'data' argument to walk_tree.
28650         (copy_if_shared): New function.
28651         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28652         (unmark_visited): New function.
28653         (unshare_body): Call copy_if_shared instead of doing it manually.
28654         (unvisit_body): Call unmark_visited instead of doing it manually.
28655
28656 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28657
28658         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28659         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28660         * hooks.c: Likewise.
28661         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28662         hook_tree_tree_int_treep_bool_null.
28663         * target.h (struct gcc_target): Update signature of fold_builtin
28664         field.
28665         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28666         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28667         instead of the call expression.
28668         (fold_builtin_call_array): Pass n and argarray directly.
28669         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28670         consing a list.
28671         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28672         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28673         `i' and use it in place of `arity'.
28674         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28675         Dereference `args' directly.
28676         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28677
28678 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28679
28680         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28681         3dnow, sse3, sse2.
28682         (Directives): Document optional dg-require-effective-target
28683         selector.
28684
28685 2010-05-19  Richard Guenther  <rguenther@suse.de>
28686
28687         PR lto/44196
28688         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28689
28690 2010-05-19  Richard Guenther  <rguenther@suse.de>
28691
28692         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28693         * common.opt (fwhopr=): New.
28694         * opts.c (common_handle_option): Handle OPT_fwhopr.
28695         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28696         * collect2.c (main): Match -fwhopr*.
28697         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28698         Execute ltrans stage in parallel when jobs is bigger than 1.
28699
28700 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28701
28702         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28703         pentiumpro on Solaris 8/x86 with Sun as.
28704         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28705         hidden alias bug.
28706         (gcc_cv_as_ix86_quad): Check for .quad directive.
28707         * configure: Regenerate.
28708         * config.in: Regenerate.
28709         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28710
28711 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28712
28713         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28714         also for indirect edges.  Actual printing moved...
28715         (ipa_print_node_jump_functions_for_edge): ...here.
28716         (ipa_compute_jump_functions): Renamed to
28717         ipa_compute_jump_functions_for_edge and made static.
28718         (ipa_compute_jump_functions): New function.
28719         (make_edge_direct_to_target): Check if the number of arguments on
28720         the newly direct edge is the same as the number of parametrs of
28721         the callee.
28722         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28723         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28724         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28725         analysis functions unconditionally, call the new
28726         ipa_analyze_params_uses on the node instead of every edge.
28727
28728 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28729
28730         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28731         to tree.
28732         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28733         also checks for a constant int vs.  non-constant but
28734         loop-invariant steps.
28735         (find_or_create_group): Change the sort algorithm to only consider
28736         steps that are constant ints.
28737         (idx_analyze_ref): Adopt code to handle a tree instead of a
28738         HOST_WIDE_INT for step.
28739         (gather_memory_references_ref): Handle tree instead of int and be
28740         prepared to see a NULL_TREE.
28741         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28742         prefetches if the step cannot be calculated at compile time.
28743         (issue_prefetch_ref): Issue prefetches for non-constant but
28744         loop-invariant steps.
28745
28746 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28747
28748         Revert:
28749         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28750
28751         * tree.h (build_call_list): Remove.
28752         * tree.c (build_call_list): Remove.
28753
28754 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28755
28756         * tree.h (build_call_list): Remove.
28757         * tree.c (build_call_list): Remove.
28758
28759 2010-05-18  Jan Hubicka  <jh@suse.cz>
28760
28761         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28762
28763 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28764
28765         PR rtl-optimization/43332
28766         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28767
28768 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28769
28770         * tree.h (build_int_cstu): Implement as static inline.
28771         * tree.c (build_int_cstu): Remove function.
28772         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28773         sign extended.
28774
28775 2010-05-18  Richard Guenther  <rguenther@suse.de>
28776
28777         PR lto/44143
28778         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28779         (debug): Initialize from -save-temps.
28780         (collect_execute): Print command-line when verbose.
28781         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28782         for ltrans invocation.  Produce -dumpbase flag again.
28783         (process_args): Remove.
28784         (main): Simplify.
28785         * collect2.c (maybe_run_lto_and_relink): Only pass object
28786         files to lto-wrapper.
28787         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28788
28789 2010-05-18  Jan Hubicka  <jh@suse.cz>
28790
28791         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28792         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28793
28794 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28795
28796         PR lto/44184
28797         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28798         in a GIMPLE_ASM.
28799         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28800         in a GIMPLE_ASM.
28801
28802 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28803
28804         PR debug/41371
28805         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28806         rtx_equal_p inline.
28807
28808 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28809
28810         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28811         lto-macho as lto_binary_reader.
28812
28813         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28814         after .section directive; just print it before the directive instead.
28815
28816 2010-05-17  Jan Hubicka  <jh@suse.cz>
28817
28818         * cgraph.c (cgraph_create_virtual_clone): Only check
28819         versionable_function_p when not in wpa and checking is enabled.
28820         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28821         there are no more functions to materialize.
28822
28823 2010-05-17  Jan Hubicka  <jh@suse.cz>
28824
28825         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28826         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28827         New functions.
28828         (output_cgraph): Call output_cgraph_opt_summary.
28829         (input_cgrpah): Call input_cgraph_opt_summary.
28830         (output_cgraph_opt_summary_p, output_node_opt_summary,
28831         input_node_opt_summary, input_cgraph_opt_section): New functions.
28832         * lto-section-in.c (lto_section_name): Add cgraphopt.
28833         * tree-inline.c (tree_function_versioning): Handle parm_num.
28834         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28835         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28836
28837 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28838
28839         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28840         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28841         the insn to prefetch ratio heuristic to loops with known trip count.
28842
28843 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28844
28845         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28846         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28847         is far from what is required by the prefetch.
28848
28849 2010-05-17  Jan Hubicka  <jh@suse.cz>
28850
28851         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28852         (ipcp_estimate_growth): Likewise.
28853         (ipcp_const_param_count): Likewise.
28854         (ipcp_insert_stage): Likewise.
28855         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28856         (visit_store_addr_for_mod_analysis): Set used flag.
28857         (ipa_detect_param_modifications): Set used flag for SSE params;
28858         update use of walk_stmt_load_store_addr_ops.
28859         (ipa_print_node_params): Print used flag.
28860         (ipa_write_node_info): Stream used flag.
28861         (ipa_read_node_info): Likewise.
28862         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28863         (ipa_is_param_used): New function.
28864         (lto_ipa_fixup_call_notes): Remove unused declaration.
28865
28866 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28867
28868         PR target/44074
28869         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28870         * configure: Regenerate.
28871         * config.in: Regenerate.
28872         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28873         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28874         Don't emit whitespace.
28875         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28876         (*rep_movsi): Likewise.
28877         (*rep_movsi_rex64): Likewise.
28878         (*rep_movqi): Likewise.
28879         (*rep_movqi_rex64): Likewise.
28880         (*rep_stosdi_rex64): Likewise.
28881         (*rep_stossi): Likewise.
28882         (*rep_stossi_rex64): Likewise.
28883         (*rep_stosqi): Likewise.
28884         (*rep_stosqi_rex64): Likewise.
28885         (*cmpstrnqi_nz_1): Use {%;} after repz.
28886         (*cmpstrnqi_nz_rex_1): Likewise.
28887         (*cmpstrnqi_1): Likewise.
28888         (*cmpstrnqi_rex_1): Likewise.
28889         (*strlenqi_1): Use {%;} after repnz.
28890         (*strlenqi_rex_1): Likewise.
28891         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28892         (*sync_compare_and_swap<mode>): Likewise.
28893         (sync_double_compare_and_swap<mode>): Likewise.
28894         (*sync_double_compare_and_swapdi_pic): Likewise.
28895         (sync_old_add<mode>): Likewise.
28896         (sync_add<mode>): Likewise.
28897         (sync_sub<mode>): Likewise.
28898         (sync_<code><mode>): Likewise.
28899
28900 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28901
28902         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28903         otr_token and polymorphic.
28904         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28905         (cgraph_clone_edge): Copy the above fields.
28906         * tree.c (get_binfo_at_offset): New function.
28907         * tree.h (get_binfo_at_offset): Declare.
28908         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28909         type, reordered items, updated comments.
28910         (union jump_func_value): Added base_type field, reordered fields.
28911         (enum ipa_lattice_type): Moved down in the file.
28912         (struct ipa_param_descriptor): New field polymorphic.
28913         (ipa_is_param_polymorphic): New function.
28914         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28915         (ipa_print_node_jump_functions): Print known type jump functions.
28916         (compute_complex_pass_through): Renamed to...
28917         (compute_complex_assign_jump_func): this.
28918         (compute_complex_ancestor_jump_func): New function.
28919         (compute_known_type_jump_func): Likewise.
28920         (compute_scalar_jump_functions): Create known type and complex ancestor
28921         jump functions.
28922         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28923         flag in the call note accordingly.
28924         (ipa_analyze_call_uses): Renamed to...
28925         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28926         variable var only in the block where it is used.
28927         (ipa_analyze_virtual_call_uses): New function.
28928         (ipa_analyze_call_uses): Likewise.
28929         (combine_known_type_and_ancestor_jfs): Likewise.
28930         (update_jump_functions_after_inlining): Implemented handling of a
28931         number of new jump function types combination.
28932         (print_edge_addition_message): Removed.
28933         (make_edge_direct_to_target): New function.
28934         (try_make_edge_direct_simple_call): Likewise.
28935         (try_make_edge_direct_virtual_call): Likewise.
28936         (update_call_notes_after_inlining): Renamed to...
28937         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28938         indirect calls to try_make_edge_direct_simple_call, also calls
28939         try_make_edge_direct_virtual_call for virtual calls.
28940         (ipa_print_node_params): Changed the header message.
28941         (ipa_write_jump_function): Stream also known type jump functions.
28942         (ipa_read_jump_function): Likewise.
28943         (ipa_write_indirect_edge_info): Stream new fields in
28944         cgraph_indirect_call_info.
28945         (ipa_read_indirect_edge_info): Likewise.
28946         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28947         GIMPLE_FOLD_H.
28948
28949 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28950
28951         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28952
28953 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28954
28955         * tree.h (CALL_EXPR_ARGS): Delete.
28956         (call_expr_arglist): Delete.
28957         * tree.c (call_expr_arglist): Delete.
28958         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28959         targetm.fold_builtin.
28960         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28961         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28962         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28963         arglist parameter.  Use CALL_EXPR_ARG.
28964         (picochip_expand_builtin_3op): Likewise.
28965         (picochip_expand_builtin_2opvoid): Likewise.
28966         (picochip_expand_array_get): Likewise.
28967         (picochip_expand_array_put): Likewise.
28968         (picochip_expand_array_testport): Likewise.
28969         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28970         rather than arglist.
28971         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28972         CALL_EXPR_ARGS.
28973         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28974         than TREE_VALUE and TREE_CHAIN.
28975         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28976         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28977         the arglist.
28978
28979 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28980
28981         PR bootstrap/42347
28982         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28983         to have no fallthru edge.
28984
28985         PR middle-end/44102
28986         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28987         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28988         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28989         add BARRIER after previous bb if needed.
28990
28991 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28992
28993         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28994
28995 2010-05-17  Alan Modra  <amodra@gmail.com>
28996
28997         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28998         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28999         with copy_reg rtx param.
29000         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
29001         Correct cases where code for ABI_V4 did not initialise the reg
29002         used to access frame.  Also leave frame_reg_rtx as sp for large
29003         frames that save no regs.
29004
29005 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29006
29007         PR middle-end/44133
29008         * tree-sra.c (create_access_replacement): New parameter rename, mark
29009         the replaement for renaming only when it is true.
29010         (get_access_replacement): Pass true in the rename parameter of
29011         create_access_replacement.
29012         (get_unrenamed_access_replacement): New function.
29013         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
29014         replacement declaration from it.
29015
29016 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
29017
29018         * function.c (try_fit_stack_local, add_frame_space): New static
29019         functions.
29020         (assign_stack_local_1): Use them.  Look for opportunities to use
29021         space previously wasted on alignment.
29022         * function.h (struct frame_space): New.
29023         (struct rtl_data): Add FRAME_SPACE_LIST member.
29024         * reload1.c (something_was_spilled): New static variable.
29025         (alter_reg): Set it.
29026         (reload): Test it in addition to testing if the frame size changed.
29027
29028 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
29029
29030         * config/s390/s390.c: Define sane prefetch settings and activate
29031         flag_prefetch_loop_arrays on -O3.
29032         * config/s390/s390.h: Declare that read can use write prefetch.
29033
29034 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29035
29036         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
29037         build.
29038
29039 2010-05-16  Jan Hubicka  <jh@suse.cz>
29040
29041         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
29042         function body; do not check stdarg field of struct function.
29043
29044 2010-05-16  Jan Hubicka  <jh@suse.cz>
29045
29046         * cgraph.c (dump_cgraph_node): Dump versionable flag.
29047         * cgraph.h (cgraph_local_info): Add versionable flag.
29048         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
29049         (ipcp_versionable_function_p): Use it.
29050         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
29051         versionable flag.
29052
29053 2010-05-16  Jan Hubicka  <jh@suse.cz>
29054
29055         * cgraph.c (cgraph_clone_node): Take decl argument and insert
29056         clone into hash when it is different from orig.
29057         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
29058         * cgraph.h (cgraph_clone_node): Update prototype.
29059         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
29060         (lto_cgraph_encoder_delete): Delete body map.
29061         (lto_cgraph_encoder_size): Move to header.
29062         (lto_cgraph_encoder_encode_body_p,
29063         lto_set_cgraph_encoder_encode_body): New.
29064         (lto_output_node): Do not take written_decls argument; output clone_of
29065         pointer.
29066         (add_node_to): Add include_body_argument; call
29067         lto_set_cgraph_encoder_encode_body on master of the clone.
29068         (add_references): Update use of add_node_to.
29069         (compute_ltrans_boundary): Likewise.
29070         (output_cgraph): Do not create written_decls bitmap.
29071         (input_node): Take nodes argument; stream in clone_of correctly.
29072         (input_cgraph_1): Update use of input_node.
29073         * lto-streamer-out.c (lto_output): Use encoder info to decide
29074         what bodies to output.
29075         * ipa-inline.c (cgraph_clone_inlined_nodes,
29076         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
29077         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
29078         (lto_cgraph_encoder_size): Define here.
29079         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
29080         Declare.
29081
29082 2010-05-16  Richard Guenther  <rguenther@suse.de>
29083
29084         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
29085         -fipa-type-escape.
29086         * ipa-type-escape.c (gate_type_escape_vars): Run when
29087         -fipa-struct-reorg runs.
29088         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
29089         * common.opt (fipa-type-escape): Remove.
29090
29091 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29092
29093         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
29094         (decode_options): Likewise.
29095         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
29096
29097 2010-05-16  Jan Hubicka  <jh@suse.cz>
29098
29099         * ipa.c (function_and_variable_visibility): Also bring local all
29100         aliases.
29101
29102 2010-05-16  Richard Guenther  <rguenther@suse.de>
29103
29104         * alias.c (nonoverlapping_memrefs_p): Remove use of
29105         IPA type-escape information.
29106
29107 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
29108
29109         * c-common.c (c_common_reswords): Add _Static_assert for C.
29110         * c-parser.c (c_token_starts_declaration,
29111         c_parser_next_token_starts_declaration,
29112         c_parser_static_assert_declaration_no_semi,
29113         c_parser_static_assert_declaration): New.
29114         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
29115         Handle static assertions if static_assert_ok.
29116         (c_parser_external_declaration, c_parser_declaration_or_fndef,
29117         c_parser_compound_statement_nostart, c_parser_label,
29118         c_parser_for_statement, c_parser_objc_methodprotolist,
29119         c_parser_omp_for_loop): All callers of
29120         c_parser_declaration_or_fndef changed.
29121         (c_parser_struct_declaration): Handle static assertions.
29122         (c_parser_compound_statement_nostart): Use
29123         c_parser_next_token_starts_declaration and
29124         c_token_starts_declaration to detect start of declarations.
29125         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
29126         Likewise.
29127
29128 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
29129
29130         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29131         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29132         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29133         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29134         (mmix_function_outgoing_value): Rename to...
29135         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
29136         (mmix_function_value_regno_p): Make static.
29137         (mmix_libcall_value): New function.
29138         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
29139         mmix_function_value_regno_p): Remove declaration.
29140
29141 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29142
29143         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
29144         BUILT_IN_ALLOCA if stack checking is enabled.
29145
29146 2010-05-16  Richard Guenther  <rguenther@suse.de>
29147
29148         * var-tracking.c (vars_copy_1): Inline ...
29149         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29150         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
29151         (variable_merge_over_cur): Adjust.  Merge asserts.
29152         (variable_merge_over_src): Likewise.
29153         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
29154         (variable_post_merge_new_vals): Merge asserts.
29155         (variable_post_merge_perm_vals): Likewise.
29156         (find_mem_expr_in_1pdv): Likewise.
29157         (dataflow_set_different_value): Remove.
29158         (onepart_variable_different_p): Merge asserts.
29159         (variable_different_p): Likewise.
29160         (dataflow_set_different_1): Inline ...
29161         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29162         (emit_notes_for_differences_1): Merge asserts.
29163
29164 2010-05-16  Richard Guenther  <rguenther@suse.de>
29165
29166         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
29167         * optabs.c (libfunc_decl_hash): Likewise.
29168         * varasm.c (emutls_decl): Likewise.
29169
29170 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
29171
29172         * c-decl.c: Don't include gimple.h.
29173         (merge_decls): Do not copy gimple_body.
29174
29175 2010-05-15  Jason Merrill  <jason@redhat.com>
29176
29177         * c.opt: Add -fnothrow-opt.
29178
29179 2010-05-15  Jan Hubicka  <jh@suse.cz>
29180
29181         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
29182         analyzed.
29183         * passes.c (ipa_write_summaries): Write all analyzed nodes.
29184
29185 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
29186
29187         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
29188         * Makefile.in: Add it.
29189         Fix all other Makefile dependencies for changes below.
29190         * tree.h: Include it instead of defining VEC primitives here.
29191         * gimple.h: Likewise.
29192         * rtl.h: Likewise.
29193         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
29194         * except.h: Include vecir.h, break dependence on tree.h.
29195
29196         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
29197         Move from here...
29198         * tree-iterator.c: ...to here.
29199         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
29200
29201         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
29202         tm_p.h.
29203         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
29204         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
29205         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
29206         tree-mudflap.h, and target.h.
29207         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
29208         predict.h, tree-inline.h, gimple.h, and langhooks.h.
29209         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
29210         Add FIXME for why gimple.h is still included (should be unnecessary
29211         since GCC 4.5 gimplification unit-at-a-time).
29212         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
29213         * c-pragma.c: Add FIXME for why function.h needs to be included just
29214         for cfun, at front-end level.
29215         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
29216         Do not include ggc.h, but include vecprim.h for VEC(char).
29217         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
29218         Explain why target.h is included.
29219         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
29220         Explain why gimple.h is included.
29221         * c-ppoutput.c: Do not include tm.h.
29222         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
29223         * c-parses.c: Explain why rtl.h is included, and that this (and only
29224         this) is also why tm.h must be included.
29225         Do not include except.h.
29226         * c-lang.c: Do not include ggc.h.
29227
29228 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
29229
29230         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
29231
29232 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
29233
29234         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
29235         unions by default if those structs and unions have no tags.  Do
29236         not condition anonymous struct and unions handling on flag_iso.
29237         Allow anonymous structs and unions for C1X.
29238         (finish_struct): Do not diagnose lack of named fields when
29239         anonymous structs and unions present for C1X.  Accept flexible
29240         array members in structure with anonymous structs or unions but no
29241         directly named fields.
29242         * doc/extend.texi (Unnamed Fields): Update.
29243
29244 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
29245
29246         * gimple.h (compare_field_offset): Rename into...
29247         (gimple_compare_field_offset): ...this.
29248         * gimple.c (compare_field_offset): Rename into...
29249         (gimple_compare_field_offset): ...this.  Compare the full access if
29250         the offset is self-referential.
29251         (gimple_types_compatible_p): Adjust for above renaming.
29252         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
29253         DECL_NONADDRESSABLE_P flag of fields before merging them.
29254
29255 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
29256
29257         * tree.h (ctor_to_list): Delete.
29258         * tree.c (ctor_to_list): Delete.
29259
29260 2010-05-15  Jan Hubicka  <jh@suse.cz>
29261
29262         * ipa-reference.c: Include toplev.h
29263         (is_proper_for_analysis): Only add to all_module_statics
29264         if it is allocated.
29265         (write_node_summary_p, stream_out_bitmap,
29266         ipa_reference_write_optimization_summary,
29267         ipa_reference_read_optimization_summary): New.
29268         (struct ipa_opt_pass_d pass_ipa_reference): Add
29269         optimization summary streaming.
29270         * lto-cgraph.c (referenced_from_this_partition_p,
29271         reachable_from_this_partition_p): New functions.
29272         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
29273         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
29274         * opts.c (decode_options): Enable ipa_reference.
29275         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
29276         * lto-streamer.h (referenced_from_this_partition_p,
29277         reachable_from_this_partition_p): Declare.
29278
29279 2010-05-15  Richard Guenther  <rguenther@suse.de>
29280
29281         PR tree-optimization/44038
29282         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
29283         taking the address of a V_C_E of a constant.
29284
29285 2010-05-14  Jan Hubicka  <jh@suse.cz>
29286
29287         * tree.h (memory_identifier_string): Remove.
29288         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
29289         (ipa_reference_global_vars_info_d): Remove statics_not_read and
29290         statics_not_written.
29291         (ipa_reference_optimization_summary_d): New structure.
29292         (ipa_reference_optimization_summary_t): New type and vector.
29293         (ipa_reference_vars_info_d): Embedd structures instead of using
29294         pointers.
29295         (reference_vars_to_consider): Remove out of GGC space.
29296         (module_statics_escape): Remove.
29297         (global_info_obstack): Rename to ...
29298         (optimization_summary_obstack): ... this one.
29299         (initialization_status_t): Remove.
29300         (memory_identifier_string): Remove.
29301         (get_reference_vars_info): Fix indenting.
29302         (set_reference_vars_info): Likewise.
29303         (get_reference_optimization_summary): New.
29304         (set_reference_optimization_summary): New.
29305         (get_global_reference_vars_info): Remove.
29306         (ipa_reference_get_read_global): Remove.
29307         (ipa_reference_get_written_global): Remove.
29308         (ipa_reference_get_not_read_global): Update.
29309         (ipa_reference_get_not_written_global): Update.
29310         (is_proper_for_analysis): Outlaw addressable.
29311         (propagate_bits): Update for new datastructures.
29312         (analyze_variable): Remove.
29313         (init_function_info): Update for new datastructures.
29314         (clean_function_local_data): Remove.
29315         (clean_function): Remove.
29316         (copy_global_bitmap): Use optimizations_summary_obstack.
29317         (duplicate_node_data): Duplicate optimization summary only.
29318         (remove_node_data): Remove optimization summary only.
29319         (generate_summary): Do not analyze variables; do not compute
29320         module_statics_escape; do not prune solutions by it.
29321         (read_write_all_from_decl): Fix typos in comments.
29322         (propagate): Doscover readonly and nonaddressable first;
29323         update for new datastructures; share global bitmaps.
29324         * ipa-reference.h (ipa_reference_get_read_global,
29325         ipa_reference_get_written_global): Remove.
29326         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29327         * Makefile.in: Remove ipa-refereference from GT files.
29328
29329 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29330
29331         PR debug/44112
29332         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29333         for all SYMBOL_REF_DECLs.
29334
29335 2010-05-14  Jan Hubicka  <jh@suse.cz>
29336
29337         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29338         (varpool_all_refs_explicit_p): New inline function.
29339         * ipa-reference.c: Update comment.
29340         (module_statics_written): Remove.
29341         (get_static_decl): Remove.
29342         (ipa_init): Do not initialize module_statics_written.
29343         (analyze_function): Likewise.
29344         (generate_summary): Likewise; do not compute module_statics_readonly
29345         and do not update variable flags.
29346         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29347         * ipa.c: Inlucde flags.h
29348         (cgraph_local_node_p): New.
29349         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29350         promote functions to local.
29351         (ipa_discover_readonly_nonaddressable_vars): New function.
29352         (function_and_variable_visibility): Use cgraph_local_node_p.
29353         * varpool.c (varpool_finalize_decl): Set force_output for
29354         DECL_PRESERVE_P vars.
29355
29356 2010-05-14  Jan Hubicka  <jh@suse.cz>
29357
29358         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29359
29360 2010-05-14  Richard Guenther  <rguenther@suse.de>
29361
29362         PR tree-optimization/44119
29363         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29364         a PHI node necessary.
29365
29366 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29367
29368         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29369
29370 2010-05-14  Jason Merrill  <jason@redhat.com>
29371
29372         PR c++/44127
29373         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29374         (gimple_call_set_nothrow): New.
29375         * gimple.c (gimple_build_call_from_tree): Call it.
29376         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29377
29378         PR c++/44127
29379         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29380         * gimple.h: Declare it.
29381         * gimple.c (gimple_build_eh_filter): No ops.
29382
29383 2010-05-14  Jan Hubicka  <jh@suse.cz>
29384
29385         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29386         nodes already in queue.
29387         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29388         re-enqueueing node.
29389
29390 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29391
29392         PR debug/44136
29393         * cfgexpand.c (expand_debug_expr): If non-memory op0
29394         has BLKmode, return NULL.
29395
29396 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29397
29398         * config.gcc: Add support for --with-cpu option for bdver1.
29399         * config/i386/i386.h (TARGET_BDVER1): New macro.
29400         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29401         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29402         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29403         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29404         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29405         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29406         (processor_type): Add PROCESSOR_BDVER1.
29407         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29408         processor_type in config/i386/i386.h.
29409         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29410         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29411         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29412         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29413         to emit packed xor instead of packed double/packed integer
29414         xor for SSE and AVX when moving a zero value.
29415         * config/i386/sse.md: Add check for
29416         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29417         movapd/movdqa for SSE and AVX.
29418         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29419         single logical operations i.e and, or and xor instead of packed double
29420         logical operations for SSE and AVX.
29421         * config/i386/i386-c.c (ix86_target_macros_internal):
29422         Add PROCESSOR_BDVER1.
29423         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29424         (has_fma4, has_xop): New.
29425         * config/i386/i386.c (bdver1_cost): New variable.
29426         (m_BDVER1): New macro.
29427         (m_AMD_MULTIPLE): Add m_BDVER1.
29428         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29429         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29430         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29431         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29432         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29433         x86_tune_sse_partial_reg_dependency,
29434         x86_tune_sse_unaligned_load_optimal,
29435         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29436         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29437         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29438         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29439         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29440         Enable/disable for bdver1.
29441         (processor_target_table): Add bdver1_cost.
29442         (cpu_names): Add bdver1.
29443         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29444          processor_alias_table.
29445         (ix86_expand_vector_move_misalign): Change.
29446         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29447         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29448         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29449         of movupd/movdqu for SSE and AVX.
29450         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29451         (ix86_tune_adjust_cost): Add code for bdver1.
29452         (standard_sse_constant_opcode): Add check for
29453         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29454         of packed double xor for SSE and AVX.
29455
29456 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29457
29458         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29459         result to unsigned.
29460
29461 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29462
29463         * toplev.c (default_debug_hooks): Remove this variable.
29464         (process_options): Remove assignments to default_debug_hooks.
29465
29466 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29467
29468         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29469         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29470         * langhooks.h (struct lang_hooks_for_decls): Removed field
29471         fold_obj_type_ref.
29472         * tree.c (free_lang_data): Remove assignment to
29473         lang_hooks.fold_obj_type_ref.
29474         * tree.def (OBJ_TYPE_REF): Update comment.
29475
29476 2010-05-14  Richard Guenther  <rguenther@suse.de>
29477
29478         PR tree-optimization/44124
29479         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29480
29481 2010-05-14  Alan Modra  <amodra@gmail.com>
29482
29483         PR target/44075
29484         * config/rs6000/rs6000.c (struct machine_function): Reorder
29485         fields for better packing.  Add lr_save_state.
29486         (rs6000_ra_ever_killed): Return lr_save_state if set.
29487         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29488
29489 2010-05-13  Jan Hubicka  <jh@suse.cz>
29490
29491         * varpool.c (decide_is_variable_needed): Drop code checking
29492         TREE_SYMBOL_REFERENCED.
29493
29494 2010-05-13  Jan Hubicka  <jh@suse.cz>
29495
29496         * final.c (output_addr_const): Do not call mark_decl_referenced.
29497         * cgraphunit.c (process_function_and_variable_attributes): Use
29498         mark_needed_node dirrectly.
29499         (assemble_thunk): Do not call mark_decl_referenced.
29500
29501 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29502
29503         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29504
29505 2010-05-13  Jeff Law  <law@redhat.com>
29506
29507         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29508         from...
29509         (print_conflicts): Call print_allocno_conflicts.
29510
29511 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29512
29513         PR debug/44104
29514         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29515         if it is NULL.
29516
29517 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29518
29519         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29520         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29521         * config/i386/t-mingw-w32: New.
29522         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29523
29524 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29525
29526         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29527         gimple-fold.c).
29528         * gimple-fold.c (get_base_binfo_for_type): New function.
29529         (gimple_get_relevant_ref_binfo): Likewise.
29530         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29531         (gimple_fold_obj_type_ref): Likewise.
29532         (fold_gimple_call): Simplify condition for folding virtual calls
29533         and call gimple_fold_obj_type_ref.
29534         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29535         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29536
29537 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29538
29539         * config/rs6000/rs6000-protos.h
29540         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29541         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29542         (rs6000_debug_mode_dependent_address)
29543         (rs6000_mode_dependent_address_ptr): Likewise.
29544
29545 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29546
29547         PR debug/43983
29548         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29549         by SRA.
29550         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29551         * tree-sra.c (create_access_replacement): Call unshare_expr before
29552         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29553         * dwarf2out.c: Include tree-flow.h.
29554         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29555         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29556         Handle DW_OP_bit_piece.
29557         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29558         construct_piece_list, adjust_piece_list): New functions.
29559         (add_var_loc_to_decl): Handle SRA optimized variables.
29560         Adjust for var_loc_note to loc field renaming.
29561         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29562         in VAR_LOCATION note.
29563         (new_loc_descr_op_bit_piece): New function.
29564         (dw_sra_loc_expr): New function.
29565         (dw_loc_list): Use it.  Don't handle the last range after the
29566         loop, handle it inside of the loop.  Adjust for var_loc_note
29567         to loc field renaming.
29568         (add_location_or_const_value_attribute): Only special case
29569         single entry loc lists if loc is NOTE_P.  Adjust for
29570         var_loc_note to loc field renaming.
29571         (dwarf2out_var_location): Don't set newloc->var_loc_note
29572         and newloc->next here.
29573
29574 2010-05-12  Jan Hubicka  <jh@suse.cz>
29575
29576         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29577         flag.
29578         * cgraph.h (cgraph_only_called_directly_p,
29579         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29580         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29581         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29582         (assemble
29583         * ipa.c (cgraph_remove_unreachable_nodes): Use
29584         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29585         flags.
29586         * tree-inline.c (copy_bb): Check address_taken flag.
29587         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29588         externally_visible flag.
29589
29590 2010-05-12  Jason Merrill  <jason@redhat.com>
29591
29592         PR bootstrap/44048
29593         PR target/44099
29594         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29595         * sdbout.c (plain_type_1): Likewise.
29596         * dwarf2out.c (is_base_type): Likewise.
29597         (gen_type_die_with_usage): Likewise.  Generate
29598         DW_TAG_unspecified_type for any LANG_TYPE.
29599
29600 2010-05-12  Jan Hubicka  <jh@suse.cz>
29601
29602         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29603         indrect edges too.
29604         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29605         (cgraph_clone_edge): Update.
29606         (cgraph_node_remove_callees): Remove indirect calls too.
29607         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29608         (cgraph_create_indirect_edge): Update prototype.
29609         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29610         is_proper_for_analysis.
29611         (add_new_function, visited_nodes, function_insertion_hook_holder,
29612         get_local_reference_vars_info, mark_address_taken, mark_address,
29613         mark_load, mark_store, check_asm_memory_clobber, check_call,
29614         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29615         (ipa_init): Do not initialize visited_nodes;
29616         function_insertion_hook_holder.
29617         (analyze_variable): Rewrite.
29618         (analyze_function): Rewrite.
29619         (copy_local_bitmap): Remove.
29620         (duplicate_node_dat): Do not duplicate local info.
29621         (generate_summary): Simplify to only walk cgraph.
29622         (write_node_summary_p, ipa_reference_write_summary,
29623         ipa_reference_read_summary): Remove.
29624         (propagate): Do not remove function insertion;
29625         generate summary.
29626         (pass_ipa_reference): NULLify summary handling fields.
29627         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29628         (input_edge): Input ecf_flags.
29629         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29630         (update_indirect_edges_after_inlining): Ignore edges with unknown
29631         param.
29632
29633 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29634
29635         * implicit-zee.c: New file.
29636         * tree-pass.h (pass_implicit_zee): Declare.
29637         * passes.c (init_optimization_passes): Add zee pass.
29638         * common.opt (fzee): New flag.
29639         * timevar.def (TV_ZEE): Define.
29640         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29641         and beyond.
29642         * Makefile.in (implicit-zee.o): Add new build file.
29643
29644 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29645             Nathan Froyd  <froydnj@codesourcery.com>
29646
29647         * c-common.c (sync_resolve_params): Remove write-only variable.
29648
29649 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29650
29651         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29652         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29653         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29654         * targhooks.c (default_mode_dependent_address_p): New function.
29655         * targhooks.h (default_mode_dependent_address_p): Declare function.
29656         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29657         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29658         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29659         target hook. Change return type to bool.
29660         * recog.h (mode_dependent_address_p): Change return type to bool.
29661
29662 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29663             Nathan Froyd  <froydnj@codesourcery.com>
29664
29665         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29666         build_function_type_2, build_function_type_3): Remove.
29667         (mudflap_init): Use build_function_type_list.
29668
29669 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29670             Nathan Froyd  <froydnj@codesourcery.com>
29671
29672         * coverage.c (build_fn_info_value): Call build_constructor instead of
29673         build_constructor_from_list.
29674         (build_ctr_info_value): Likewise.
29675         (build_gcov_info): Likewise.
29676
29677 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29678
29679         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29680         resultant constructor.
29681         (build_constructor_single): Don't set TREE_CONSTANT.
29682         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29683
29684 2010-05-12  Jan Hubicka  <jh@suse.cz>
29685
29686         * cgraph.h (struct varpool_node): Add aux.
29687         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29688         * varpool.c (varpool_remove_node): Do not remove initializer.
29689         (varpool_reset_queue): Export.
29690         (varpool_finalize_decl): Volatile vars are forced to be output.
29691         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29692         replaced decl.
29693         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29694         process_references, varpool_can_remove_if_no_refs): New functions.
29695         (cgraph_remove_unreachable_nodes): Handle variables too.
29696
29697 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29698
29699         PR target/44088
29700         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29701
29702 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29703
29704         PR middle-end/44085
29705         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29706         change value of ORT_TASK.
29707         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29708         (omp_notice_threadprivate_variable): New function.
29709         (omp_notice_variable): Call it for threadprivate variables.
29710         If enclosing ctx is a task, print enclosing task rather than
29711         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29712         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29713         if task has untied clause.
29714
29715         PR debug/42278
29716         * dwarf2out.c (base_type_die): Don't add name attribute here.
29717         (modified_type_die): Instead of sizetype use
29718         its underlying original type.  If a DW_TAG_base_type doesn't
29719         have name added, add __unknown__.
29720         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29721         always call force_type_die instead.
29722
29723 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29724
29725         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29726         for __stack_chk_guard.
29727
29728 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29729
29730         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29731         don't call start_source_file debug hook here...
29732         (finish_options): ... but here, after outputting predefined and
29733         command line defines and undefs.
29734
29735         PR middle-end/44071
29736         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29737         no fallthru edge.
29738         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29739         optimizing away empty bb with no successors, move over its
29740         footer chain to fallthru predecessor.
29741         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29742         (rtl_split_edge): For asm goto call patch_jump_insn even if
29743         splitting fallthru edge.
29744
29745         PR c++/44059
29746         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29747         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29748         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29749         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29750         on DW.ref.* decls.
29751
29752         PR c++/44062
29753         * c-parser.c (c_parser_expression): Mark LHS of a comma
29754         expression as read if it is a decl, handled component or
29755         COMPOUND_EXPR with that on the RHS.
29756         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29757         if it is a decl or handled component.
29758
29759 2010-05-11  Jan Hubicka  <jh@suse.cz>
29760
29761         * lto-symtab.c (lto_symtab_free): New function.
29762         * lto-streamer.h (lto_symtab_free): Declare.
29763
29764 2010-05-11  Jan Hubicka  <jh@suse.cz>
29765
29766         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29767         that if function is needed it is reachable.
29768         (lto_output_node): See if it the function is reachable or referenced.
29769         (output_cgraph): Update call of lto_output_node.
29770         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29771
29772 2010-05-11  Jan Hubicka  <jh@suse.cz>
29773
29774         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29775         Mark as used.
29776
29777 2010-05-11  Jan Hubicka  <jh@suse.cz>
29778
29779         PR tree-optimize/44063
29780         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29781         queue.
29782         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29783         limits.
29784         (estimate_function_body_sizes): Compute sizes even when disregarding.
29785
29786 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29787
29788         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29789
29790 2010-05-11  Jan Hubicka  <jh@suse.cz>
29791
29792         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29793         into every boundary.
29794
29795 2010-05-11  Jan Hubicka  <jh@suse.cz>
29796
29797         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29798
29799 2010-05-11  Jan Hubicka  <jh@suse.cz>
29800
29801         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29802         lto_streamer_cache_delete): Put nodes into heap.
29803         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29804         heap.
29805
29806 2010-05-11  Jan Hubicka  <jh@suse.cz>
29807
29808         * cgraphbuild.c (cgraph_rebuild_references): New.
29809         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29810         out extern inlines.
29811         * cgraph.h (cgraph_rebuild_references): Declare.
29812         * tree-inline.c (tree_function_versioning): Use it.
29813         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29814
29815 2010-05-11  Jan Hubicka  <jh@suse.cz>
29816
29817         * cgraph.c: Include ipa-utils.h
29818         (cgraph_create_virtual_clone): Update references.
29819         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29820
29821 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29822
29823         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29824         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29825         cache size.
29826
29827 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29828
29829         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29830
29831 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29832
29833         * gcc.c (execute): For -### don't quote arguments that
29834         contain just alphanumerics and _/-. characters.
29835         * doc/invoke.texi: Document that change for -###.
29836
29837         PR debug/44023
29838         * df-problems.c (struct dead_debug): Add to_rescan field.
29839         (dead_debug_init): Clear to_rescan field.
29840         (dead_debug_finish): Rescan all debug insns in to_rescan
29841         bitmap and free the bitmap.
29842         (dead_debug_insert_before): Instead of rescanning debug insns
29843         immediately queue their rescanning until dead_debug_finish.
29844         (df_note_bb_compute): After dead_debug_add do continue instead
29845         of break.
29846
29847 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29848
29849         PR debug/44028
29850         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29851         clear also INSN_REG_USE_LIST.
29852
29853 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29854
29855         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29856
29857 2010-05-10  Jan Hubicka  <jh@suse.cz>
29858
29859         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29860         commited change.
29861
29862 2010-05-10  Jan Hubicka  <jh@suse.cz>
29863
29864         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29865         Allocate encoders.
29866         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29867         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29868         (lto_streamer_cache_create): Init alloc pool.
29869         (lto_streamer_cache_delete): Free alloc pool.
29870         * lto-streamer.h: Include alloc pool.
29871         (lto_streamer_cache_d): Use alloc pool.
29872         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29873
29874 2010-05-10  Jan Hubicka  <jh@suse.cz>
29875
29876         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29877         * cgraphbuild.c: Include except.h
29878         (record_type_list, record_eh_tables): New function.
29879         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29880
29881 2010-05-10  Jan Hubicka  <jh@suse.cz>
29882
29883         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29884         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29885         rather than unused.
29886
29887 2010-05-10  Michael Matz  <matz@suse.de>
29888
29889         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29890         (can_reassociate_p): Use FLOAT_TYPE_P.
29891         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29892         (vect_force_simple_reduction): ... this.
29893         * tree-parloops.c (gather_scalar_reductions): Use
29894         vect_force_simple_reduction.
29895         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29896         vect_is_simple_reduction, add modify argument, if true rewrite
29897         "a-b" into "a+(-b)".
29898         (vect_is_simple_reduction, vect_force_simple_reduction): New
29899         functions.
29900         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29901
29902 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29903             Vladimir Makarov  <vmakarov@redhat.com>
29904
29905         PR rtl-optimization/44012
29906         * ira-build.c (remove_unnecessary_allocnos): Nullify
29907         regno_allocno_map of the removed allocno.
29908
29909 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29910
29911         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29912         to /dev/null.
29913         * configure: Regenerate.
29914
29915 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29916
29917         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29918         unused.
29919         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29920         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29921         support in Sun ld.
29922         * configure: Regenerate.
29923
29924 2010-05-10  Richard Guenther  <rguenther@suse.de>
29925
29926         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29927         marked if the entry identifier is marked.
29928
29929 2010-05-10  Richard Guenther  <rguenther@suse.de>
29930
29931         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29932         (handle_fnspec_attribute): New function.
29933         * gimple.h (gimple_call_return_flags): Declare.
29934         (gimple_call_arg_flags): Likewise.
29935         * gimple.c (gimple_call_arg_flags): New function.
29936         (gimple_call_return_flags): Likewise.
29937         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29938         New argument flags.
29939         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29940         return value flags.
29941         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29942         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29943         main work to ...
29944         (make_heapvar_for): ... this new function.
29945         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29946         (handle_lhs_call): Likewise.
29947         (find_func_aliases): Adjust.
29948
29949 2010-05-10  Richard Guenther  <rguenther@suse.de>
29950
29951         PR tree-optimization/44050
29952         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29953
29954 2010-05-10  Wei Guozhi  <carrot@google.com>
29955
29956         PR target/42879
29957         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29958
29959 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29960
29961         PR c/10676
29962         * c-typeck.c (lookup_field): Take a type directly.  Update
29963         recursive calls.
29964         (build_component_ref): Update call to lookup_field.
29965         (set_init_label): Use lookup_field to find initialized field.
29966         Handle returned list of fields like a sequence of designators.
29967
29968 2010-05-09  Richard Guenther  <rguenther@suse.de>
29969
29970         PR middle-end/44024
29971         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29972         handle &FUNCTION_DECL.
29973
29974 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29975
29976         PR c/4784
29977         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29978         structures and unions recursively.
29979         (detect_field_duplicates): Move duplicate detection with a hash to
29980         detect_field_duplicates_hash.  Always use a hash if anonymous
29981         structures or unions are present.
29982         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29983         give errors.
29984
29985 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29986
29987         PR target/44046
29988         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29989         detect Atom, Core 2 and Core i7.
29990
29991 2010-05-09  Richard Guenther  <rguenther@suse.de>
29992
29993         * gcc.c (store_arg): Handle temporary file deletion for
29994         joined arguments.
29995
29996 2010-05-09  Richard Guenther  <rguenther@suse.de>
29997
29998         PR middle-end/44043
29999         * ipa-inline.c (estimate_function_body_sizes): Return after
30000         disregarding inline limits.
30001
30002 2010-05-09  Richard Guenther  <rguenther@suse.de>
30003
30004         * gcc.c (store_arg): Revert last change.
30005
30006 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
30007
30008         PR middle-end/28685
30009         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
30010         (optimize_ops_list): Call it.
30011
30012 2010-05-08  Richard Guenther  <rguenther@suse.de>
30013
30014         PR tree-optimization/44030
30015         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
30016         NECESSARY flag if we propagate from a inserted expression.
30017
30018 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
30019
30020         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
30021         domain types as equal if they are both PLACEHOLDER_EXPRs.
30022
30023 2010-05-08  Richard Guenther  <rguenther@suse.de>
30024
30025         * lto-wrapper.c (run_gcc): Remove linker output from
30026         command line for LTRANS invocation.
30027
30028 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30029
30030         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
30031         lto-macho as lto_binary_reader.
30032         * target.h (struct gcc_target): New hooks lto_start and lto_end.
30033         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
30034         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
30035         in lto_start and lto_end calls.
30036         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
30037         magic numbers.
30038         (scan_prog_file): Update is_elf_or_coff call.
30039         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
30040
30041         * collect2.c (main): Fix enum comparison.
30042
30043         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
30044         Add prototypes.
30045         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
30046         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
30047         and TARGET_ASM_LTO_END.
30048         * darwin.c: Include obstack.h and lto-streamer.h.
30049         (lto_section_names_offset, lto_section_names_obstack,
30050         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
30051         global variables.
30052         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
30053         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
30054         to a temporary file.
30055         (darwin_asm_lto_end): New function.  Restore asm_out_file.
30056         (darwin_asm_named_section): For LTO sections, replace the name with
30057         the offset of the section name in a string table, and build this
30058         table.
30059         (darwin_file_start): Initialize global vars for LTO support.
30060         (darwin_file_end): If output to asm_out_file was redirected, append it
30061         to the proper asm_out_file here.  Add the section names section.
30062
30063 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30064
30065         * c-pragma.c (pending_weak_d, pending_weak): New.
30066         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
30067         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
30068         handle_pragma_weak): Update the uses of pending_weaks.
30069
30070 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30071
30072         PR documentation/44016
30073         * doc/standards.texi (Standards): Link to unversioned
30074         cxx0x_status.html page.
30075
30076 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
30077
30078         PR target/43708
30079         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
30080         in addition to TREE_USED, to avoid "set but unused" warnings.
30081
30082 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30083
30084         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
30085         (is_loop_prefetching_profitable): Do not insert prefetches
30086         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
30087         times the prefetch ahead distance.
30088
30089 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30090
30091         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
30092         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
30093         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
30094         the unroll_factor.
30095
30096 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30097
30098         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
30099         a diagnostic info when the insn-to-mem ratio is too small.
30100
30101 2010-05-07  Richard Guenther  <rguenther@suse.de>
30102
30103         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
30104         the linker plugin.
30105         (store_arg): Queue temp_filename for deletion instead of
30106         the whole argument.
30107
30108 2010-05-07  Richard Guenther  <rguenther@suse.de>
30109
30110         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
30111         (run_gcc): Handle LTRANS phase invocation.
30112         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
30113
30114 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
30115
30116         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
30117         this is also meaningful on PARM_DECLs and RESULT_DECLs.
30118
30119 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30120
30121         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
30122
30123 2010-05-07  Richard Guenther  <rguenther@suse.de>
30124
30125         PR tree-optimization/44020
30126         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
30127         code when PRE is not yet initialized.
30128
30129 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30130
30131         * config/mips/dbxmdebug.h: Remove.
30132         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
30133
30134 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
30135
30136         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
30137         with null pointer and also warn about ordered comparison of zero with
30138         pointer if -Wextra.
30139
30140 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30141
30142         * graphite-blocking.c
30143         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
30144         * graphite-clast-to-gimple.c
30145         (clast_to_gcc_expression): Same.
30146         (precision_for_value): Same.
30147         (precision_for_interval): Same.
30148         (gcc_type_for_interval): Same.
30149         (graphite_create_new_guard): Same.
30150         (compute_bounds_for_level): Same.
30151         (graphite_create_new_loop_guard): Same.
30152         * graphite-interchange.c
30153         (build_linearized_memory_access): Same.
30154         (pdr_stride_in_loop): Same.
30155         (memory_strides_in_loop_1): Same.
30156         (memory_strides_in_loop): Same.
30157         (extend_scattering): Same.
30158         (psct_scattering_dim_for_loop_depth): Same.
30159         (pbb_number_of_iterations): Same.
30160         * graphite-poly.h
30161         (debug_iteration_domains): Same.
30162         * graphite-ppl.c
30163         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
30164         (ppl_set_inhomogeneous_gmp): Same.
30165         (ppl_strip_loop): Same.
30166         (ppl_lexico_compare_linear_expressions): Same.
30167         (ppl_read_polyhedron_matrix): Same.
30168         (ppl_max_for_le_pointset): Same.
30169         * graphite-ppl.h
30170         (ppl_read_polyhedron_matrix): Same.
30171         (tree_int_to_gmp): Same.
30172         (gmp_cst_to_tree): Same.
30173         (ppl_set_inhomogeneous): Same.
30174         (ppl_set_inhomogeneous_tree): Same.
30175         (ppl_set_coef): Same.
30176         (ppl_set_coef_tree): Same.
30177         * graphite-sese-to-poly.c
30178         (build_pbb_scattering_polyhedrons): Same.
30179         (build_scop_scattering): Same.
30180         (scan_tree_for_params_right_scev): Same.
30181         (scan_tree_for_params): Same.
30182         (find_params_in_bb): Same.
30183         (find_scop_parameters): Same.
30184         (add_upper_bounds_from_estimated_nit): Same.
30185         (build_loop_iteration_domains): Same.
30186         (add_condition_to_domain): Same.
30187         (pdr_add_memory_accesses): Same.
30188
30189 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30190
30191         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
30192         CLooG's value_* macros to their respective mpz_* counterparts.
30193         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
30194         (graphite_create_new_loop_guard): Same.
30195         * graphite-interchange.c (build_linearized_memory_access): Same.
30196         (pdr_stride_in_loop): Same.
30197         (memory_strides_in_loop_1): Same.
30198         (1st_interchange_profitable_p): Same.
30199         * graphite-poly.c (extend_scattering): Same.
30200         (psct_scattering_dim_for_loop_depth): Same.
30201         (pbb_number_of_iterations): Same.
30202         (pbb_number_of_iterations_at_time): Same.
30203         * graphite-poly.h (new_1st_loop): Same.
30204         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
30205         (oppose_constraint): Same.
30206         (insert_constraint_into_matrix): Same.
30207         (ppl_set_inhomogeneous_gmp): Same.
30208         (ppl_set_coef_gmp): Same.
30209         (ppl_strip_loop): Same.
30210         (ppl_lexico_compare_linear_expressions): Same.
30211         (ppl_max_for_le_pointset): Same.
30212         (ppl_min_for_le_pointset): Same.
30213         (ppl_build_realtion): Same.
30214         * graphite-ppl.h (gmp_cst_to_tree): Same.
30215         (ppl_set_inhomogeneous): Same.
30216         (ppl_set_inhomogeneous_tree): Same.
30217         (ppl_set_coef): Same.
30218         (ppl_set_coef_tree): Same.
30219         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
30220         (build_scop_scattering): Same.
30221         (add_value_to_dim): Same.
30222         (scan_tree_for_params_right_scev): Same.
30223         (scan_tree_for_params_int): Same.
30224         (scan_tree_for_params): Same.
30225         (find_params_in_bb): Same.
30226         (find_scop_parameters): Same.
30227         (add_upper_bounds_from_estimated_nit): Same.
30228         (build_loop_iteration_domains): Same.
30229         (create_linear_expr_from_tree): Same.
30230         (add_condition_to_domain): Same.
30231         (pdr_add_memory_accesses): Same.
30232
30233 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
30234             Jason Merrill  <jason@redhat.com>
30235
30236         * c-common.c (c_common_reswords): Add nullptr.
30237         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
30238         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
30239         (gen_type_die_with_usage): Likewise.
30240         * dbxout.c (dbxout_type): Likewise.
30241         * sdbout.c (plain_type_1): Likewise.
30242
30243 2010-05-06  Jason Merrill  <jason@redhat.com>
30244
30245         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
30246         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
30247         ret appropriately.
30248         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
30249
30250         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
30251         stripping WITH_SIZE_EXPR.
30252         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
30253         change.
30254
30255 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30256
30257         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
30258         list of obsolete configurations.
30259         Disabled check for obsolete configurations.
30260         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
30261         Removed support for previous versions.
30262         * config/mips/iris.h: Removed.
30263         * config/mips/iris5.h: Removed.
30264         * config/mips/iris6.h: Merged old iris.h contents.
30265         (TARGET_IRIX): Removed.
30266         (DRIVER_SELF_SPECS): Removed mabi=32.
30267         (IDENT_ASM_OP): Removed undef.
30268         (STARTFILE_SPEC): Removed mabi=32.
30269         (ENDFILE_SPEC): Likewise.
30270         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
30271         (MACHINE_TYPE): Update for IRIX 6.5.
30272         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
30273         TARGET_IRIX by TARGET_IRIX6.
30274         (mips_file_start): Likewise.
30275         (mips_output_external): Remove IRIX 5/6 O32 support.
30276         (mips_output_function_prologue): Likewise.
30277         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
30278         TARGET_IRIX6.
30279         (TARGET_CPU_CPP_BUILTINS): Likewise.
30280         (TARGET_IRIX): Removed.
30281         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
30282         (MULTILIB_DIRNAMES): Removed 32.
30283         (MULTILIB_OSDIRNAMES): Removed ../lib.
30284         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
30285         (Specific, mips-sgi-irix5): Document removal.
30286         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
30287         Remove references to older IRIX 6 releases and the O32 ABI.
30288
30289 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
30290
30291         PR bootstrap/43994
30292         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30293         instead of DF_REF_REAL_REG.
30294
30295 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30296
30297         PR target/43888
30298         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30299         handling to still return true for x64 targets.
30300
30301 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30302
30303         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30304
30305 2010-05-06  Jan Hubicka  <jh@suse.cz>
30306
30307         PR tree-optimization/43791
30308         * ipa-inline.c (update_caller_keys): Remove bogus
30309         disregard_inline_limits check.
30310
30311 2010-05-06  Michael Matz  <matz@suse.de>
30312
30313         PR tree-optimization/43984
30314         * tree-ssa-pre.c (inserted_phi_names): Remove.
30315         (inserted_exprs): Change to bitmap.
30316         (create_expression_by_pieces): Set bits, don't append to vector.
30317         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30318         (eliminate): Don't look at inserted_phi_names, remove deleted
30319         insns from inserted_exprs.
30320         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30321         (init_pre, fini_pre): Allocate and free bitmaps.
30322         (execute_pre): Insert insns on edges before elimination.
30323
30324 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30325
30326         * tree.c (initializer_zerop): Handle STRING_CST.
30327
30328 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30329
30330         PR 40989
30331         * doc/invoke.texi (Wimplicit): Document as C only.
30332         * opts.c (common_handle_option): Add argument kind.
30333         (handle_option): Rename as read_cmdline_option. Factor out code to...
30334         (handle_option): ... here. New.
30335         (handle_options): Rename as read_cmdline_options.
30336         (decode_options): Update call.
30337         (set_option): Use option index instead of option pointer. Classify
30338         diagnostics correctly.
30339         (enable_warning_as_error): Call handle_option.
30340         * opts.h (set_option): Update declaration.
30341         (handle_option): Declare.
30342         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30343         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30344         * c-opts.c (set_Wimplicit): Delete.
30345         (c_family_lang_mask): New static constant.
30346         (c_common_handle_option): Add argument kind. Use handle_option
30347         instead of set_Wimplicit.
30348         (c_common_post_options): warn_implicit and warn_implicit_int
30349         are disabled by default.
30350         * c-common.c (warn_implicit): Do not define here.
30351         * c-common.h (warn_implicit): Do not declare here.
30352         (c_common_handle_option): Update declaration.
30353         * lto-opts.c (lto_reissue_options): Update call to set_option.
30354
30355 2010-05-06  Richard Guenther  <rguenther@suse.de>
30356
30357         PR tree-optimization/43571
30358         * domwalk.c (walk_dominator_tree): Walk the dominator
30359         sons in more optimal order.
30360
30361 2010-05-06  Richard Guenther  <rguenther@suse.de>
30362
30363         PR tree-optimization/43934
30364         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30365         (stmt_cost): Likewise.
30366         (extract_true_false_args_from_phi): New helper.
30367         (determine_max_movement): For PHI nodes verify we can hoist them
30368         and compute their cost.
30369         (determine_invariantness_stmt): Handle PHI nodes.
30370         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30371         if-converted form using COND_EXPRs.
30372         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30373         (tree_ssa_lim): Likewise.
30374         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30375         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30376
30377 2010-05-06  Richard Guenther  <rguenther@suse.de>
30378
30379         PR tree-optimization/43987
30380         * tree-ssa-structalias.c (could_have_pointers): For possibly
30381         address-taken variables force pointers to be recorded.
30382         (create_variable_info_for_1): Likewise.
30383         (push_fields_onto_fieldstack): Pass in wheter all fields
30384         must have pointers.
30385         (find_func_aliases): Query types instead of vars whether
30386         they contain pointers where appropriate.
30387
30388 2010-05-06  Jan Hubicka  <jh@suse.cz>
30389
30390         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30391         (record_reference, mark_address, mark_load, mark_store): Record
30392         references.
30393         (record_references_in_initializer): Update call of record_references.
30394         (rebuild_cgraph_edges): Remove all references before rebuiding.
30395         * cgraph.c (cgraph_create_node): Clear ref list.
30396         (cgraph_remove_node): Remove references.
30397         (dump_cgraph_node): Dump references.
30398         (cgraph_clone_node): Clone references.
30399         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30400         (struct cgraph_node, varpool_node): Add ref_lst.
30401         * ipa-ref.c: New file.
30402         * ipa-ref.h: New file.
30403         * ipa-ref-inline.h: New file.
30404         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30405         (referenced_from_other_partition_p): New function.
30406         (lto_output_varpool_node): Take set arugment; call
30407         referenced_from_other_partition.
30408         (lto_output_ref): New.
30409         (add_references): New.
30410         (output_refs): New.
30411         (output_cgraph): Compute boundary based on references; output refs.
30412         (output_varpool): Accept cgraph_node_set argument.
30413         (input_ref): New.
30414         (input_refs): New.
30415         (input_cgraph): Call input_refs.
30416         * lto-section-in.c (lto_section_name): Add refs.
30417         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30418         (ipa-ref.o): New file.
30419         * varpool.c (varpool_node): Clear ipa ref list.
30420         (varpool_remove_node): Remove references.
30421         (dump_varpool_node): Dump references.
30422         (varpool_assemble_decl): Only compile finalized ones.
30423         (varpool_extra_name_alias): Initialize ref list.
30424         * lto-streamer.c (lto-get_section_name): Add .refs section.
30425         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30426         (referenced_from_other_partition_p): Declared.
30427
30428 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30429
30430         PR tree-optimization/43901
30431         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30432         type is not NULL if it's transformation phase, and return
30433         FALSE if it's analysis.
30434         (vectorizable_conversion, vectorizable_operation,
30435         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30436
30437 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30438
30439         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30440         Delete.
30441         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30442         New define.
30443         * config/mips/mips-protos.h
30444         (mips_small_register_classes_for_mode_p): Delete prototype.
30445
30446 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30447
30448         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30449         * config/arm/arm.c (multiple_operation_profitable_p,
30450         compute_offset_order): New static functions.
30451         (load_multiple_sequence, store_multiple_sequence): Use them.
30452         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30453         memory offsets, not register numbers.
30454         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30455
30456 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30457
30458         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30459         (get_pending_sizes, put_pending_size, put_pending_sizes):
30460         Update the uses of pending_sizes.
30461         * c-decl.c (store_parm_decls): Likewise.
30462         * c-tree.h (struct c_arg_info): Likewise.
30463         * tree.h: Update the prototype for get_pending_sizes and
30464         put_pending_sizes.
30465
30466 2010-05-05  Jason Merrill  <jason@redhat.com>
30467
30468         PR debug/43370
30469         * c-common.c (handle_aligned_attribute): Respect
30470         ATTR_FLAG_TYPE_IN_PLACE.
30471
30472         PR testsuite/43758
30473         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30474         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30475         (TARGET_INITIALIZER): Use it.
30476         * c-common.c (attribute_takes_identifier_p): Call it.
30477         * c-common.h: Update prototype.
30478         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30479         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30480
30481 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30482
30483         PR debug/43950
30484         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30485         DW_ID_down_case for Fortran compilation units.
30486
30487 2010-05-05  Jan Hubicka  <jh@suse.cz>
30488
30489         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30490         handle aliases.
30491
30492 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30493
30494         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30495         a variable-sized RESULT_DECL.
30496
30497 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30498
30499         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30500
30501 2010-05-05  Jason Merrill  <jason@redhat.com>
30502
30503         PR c++/43787
30504         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30505         returns GS_OK.
30506         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30507
30508 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30509             Jakub Jelinek  <jakub@redhat.com>
30510
30511         PR debug/43478
30512         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30513         (dead_debug_init, dead_debug_finish): New functions.
30514         (dead_debug_add, dead_debug_insert_before): Likewise.
30515         (df_note_bb_compute): Initialize a dead_debug object, add dead
30516         debug uses to it, insert debug bind insns before death insns,
30517         reset debug insns that refer to pending uses at the end.
30518         * rtl.h (make_debug_expr_from_rtl): New prototype.
30519         * varasm.c (make_debug_expr_from_rtl): New function.
30520
30521 2010-05-05  Jan Hubicka  <jh@suse.cz>
30522
30523         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30524         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30525         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30526         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30527         lto_varpool_encoder_encode_initializer_p,
30528         lto_set_varpool_encoder_encode_initializer): New functions.
30529         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30530         call output_varpool.
30531         (input_varpool_node): Do not always set analyzed.
30532         (input_cgraph_1): Return vector of cgraph nodes.
30533         (input_varpool_1): Return vector of varpools.
30534         (input_cgraph): Free the vectors.
30535         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30536         output only initializers needed.
30537         (lto_output): Only call output_cgraph.
30538         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30539         * lto-section-out.c (lto_new_out_decl_state): Initialize
30540         state->varpool_node_encoder.
30541         * lto-streamer.h (lto_varpool_encoder_d): New.
30542         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30543         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30544         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30545         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30546         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30547         Declare.
30548         (output_varpool, input_varpool): Remove declarations.
30549
30550 2010-05-05  Jan Hubicka  <jh@suse.cz>
30551
30552         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30553         with body can prevail.
30554
30555 2010-05-05  Jan Hubicka  <jh@suse.cz>
30556
30557         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30558         size.
30559
30560 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30561
30562         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30563
30564         * gengtype.h (erro_at_line): Constify pos argument.
30565
30566         * gengtype.c: Include hashtab.h.
30567         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30568         (error_at_line): Constify pos argument.
30569         (do_typedef): Initialize p->opt field.
30570         (get_file_gtfilename): Fix comment typo.
30571         (struct walk_type_data): Constify line field.
30572         (get_output_file_for_structure): New function.
30573         (write_local_func_for_structure): Constify orig_s argument.
30574         Use get_output_file_for_structure.
30575         (write_func_for_structure): Use get_output_file_for_structure.
30576         (INDENT): New define.
30577         (dump_pair, dump_type, dump_type_list, dump_typekind)
30578         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30579         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30580         functions.
30581         (seen_types): New variable.
30582         (main): New variable do_dump.  Process "-d" command line option.
30583         Call dump_everything if dump requested.
30584
30585 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30586
30587         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30588         in a temporary instead of invoking the macro multiple times.
30589         (track_expr_p): Likewise.
30590
30591 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30592
30593         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30594         per new semantics.
30595         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30596         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30597         conditions for printing notes.
30598         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30599         true, update documentation.
30600         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30601
30602 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30603
30604         PR c/43981
30605         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30606         on dimen.
30607
30608 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30609
30610         PR target/43799
30611         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30612         (*sse_prologue_save_insn1): Likewise.
30613         (SSE prologue save splitter): Likewise.
30614
30615 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30616
30617         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30618         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30619         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30620         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30621         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30622         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30623         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30624
30625 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30626
30627         * tree-sra.c (build_access_from_expr_1): The first parameter type
30628         changed to simple tree.
30629         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30630         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30631         renamed as well.
30632         (build_accesses_from_assign): Removed all parameters except for a
30633         simple gimple statement.  Now returns a simple bool.
30634         (scan_function): All non-analysis parts moved to separate functions
30635         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30636         parameters and updated both callers.
30637         (sra_modify_expr): Removed parameter data.
30638         (sra_modify_function_body): New function.
30639         (perform_intra_sra): Call sra_modify_function_body to modify the
30640         function body.
30641         (replace_removed_params_ssa_names): Parameter data changed into
30642         adjustments vector.
30643         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30644         changed the parameter dont_convert to convert with the opposite
30645         meaning.
30646         (sra_ipa_modify_assign): Parameter data changed into adjustments
30647         vector, return value changed to bool.
30648         (ipa_sra_modify_function_body): New function.
30649         (sra_ipa_reset_debug_stmts): Updated a comment.
30650         (modify_function): Use ipa_sra_modify_function_body to modify function
30651         body.
30652
30653 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30654
30655         PR middle-end/43671
30656         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30657         (canon_true_dependence): Likewise.
30658         (write_dependence_p): Likewise.
30659
30660 2010-05-04  Jan Hubicka  <jh@suse.cz>
30661
30662         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30663         * cgraphbuild.c: Include ipa-utils.h
30664         (record_reference_ctx): New struct.
30665         (record_reference): Simplify to work on initializers; not statements.
30666         (mark_address, mark_load, mark_store): New.
30667         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30668         walk PHI nodes too.
30669         (record_references_in_initializer): Update use of record_reference.
30670         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30671         walk PHI nodes too.
30672
30673 2010-05-04  Jan Hubicka  <jh@suse.cz>
30674
30675         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30676         node will be removed anyway.
30677         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30678         relink aliases of node into prevailing node.
30679         * varpool.c (varpool_remove_node): Remove aliases properly;
30680         when removing node, remove all its aliases too; remove DECL_INITIAL
30681         of removed node; ggc_free the varpool node.
30682
30683 2010-05-04  Richard Guenther  <rguenther@suse.de>
30684
30685         PR tree-optimization/43879
30686         * tree-ssa-structalias.c (alias_get_name): Use
30687         DECL_ASSEMBLER_NAME if available.
30688         (create_function_info_for): Return the varinfo node.
30689         (ipa_pta_execute): Associate same-body aliases and extra names
30690         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30691
30692 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30693
30694         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30695
30696 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30697
30698         PR bootstrap/43964
30699         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30700         only if HONOR_REG_ALLOC_ORDER is not defined.
30701
30702 2010-05-04  Richard Guenther  <rguenther@suse.de>
30703
30704         PR tree-optimization/43949
30705         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30706         TRUNC_MOD_EXPR.
30707
30708 2010-04-26  Jason Merrill  <jason@redhat.com>
30709
30710         * c.opt (-fstrict-enums): New.
30711         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30712
30713 2010-05-03  David Ung  <davidu@mips.com>
30714             James E. Wilson  <wilson@codesourcery.com>
30715
30716         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30717         emit the trap instruction before the divide for TUNE_74K.
30718
30719 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30720
30721         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30722         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30723         based on the above, for new target hook.
30724
30725         * hooks.c (hook_bool_mode_true): New generic hook.
30726         * hooks.h (hook_bool_mode_true): Add prototype.
30727
30728         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30729         target hook.
30730         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30731         target hook, set to hook_bool_mode_false.
30732         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30733         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30734         with targetm.small_register_classes_for_mode_p.
30735         (find_reusable_reload): Likewise.
30736         (combine_reloads): Likewise.
30737         * reload1.c (reload_as_needed): Likewise.
30738         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30739         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30740         dead_or_predicable): Likewise.
30741         * regmove.c (optimize_reg_copy_1): Likewise.
30742         * calls.c (prepare_call_address): Likewise.
30743         (precompute_register_parameters): Likewise.
30744
30745         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30746         hook definition.
30747         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30748         implementation of the hook that considers all register classes
30749         small except for SH64.
30750         (sh_override_options): Use the new hook.
30751         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30752         Add prototype.
30753
30754         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30755         hook definition.
30756         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30757         implementation of the hook that considers all register classes
30758         small for THUMB1.
30759         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30760         Add prototype.
30761
30762         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30763         hook definition.
30764         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30765         implementation of the hook that considers all register classes
30766         small for MIPS16.
30767         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30768         Add prototype.
30769
30770         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30771         hook definition.
30772         * config/m32c/m32c.h: Likewise.
30773         * config/pdp11/pdp11.h: Likewise.
30774         * config/avr/avr.h: Likewise.
30775         * config/xtensa/xtensa.h: Likewise.
30776         * config/m68hc11/m68hc11.h: Likewise.
30777         * config/mn10300/mn10300.h: Likewise.
30778         * config/mcore/mcore.h: Likewise.
30779         * config/h8300/h8300.h: Likewise.
30780         * config/bfin/bfin.h: Likewise.
30781
30782         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30783         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30784
30785 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30786
30787         * double-int.h (tree_to_double_int): Remove macro.
30788         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30789         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30790         (tree_to_double_int): New function.
30791         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30792         Move ...
30793         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30794
30795 2010-05-03  Richard Guenther  <rguenther@suse.de>
30796
30797         PR tree-optimization/43971
30798         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30799         constraints in the !flag_delete_null_pointer_checks case.
30800
30801 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30802
30803         PR debug/43972
30804         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30805         result mode matches original rtl mode.
30806
30807 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30808
30809         PR target/43888
30810         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30811
30812 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30813
30814         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30815         when processing flag options.
30816
30817 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30818
30819         * gcov-iov.c (main): Change format string placeholder
30820         from %#08x to 0x%08x.
30821         * genchecksum.c (dosum): Change format string placeholder
30822         from %#02x to 0x%02x.
30823
30824 2010-05-02  Richard Guenther  <rguenther@suse.de>
30825
30826         PR tree-optimization/43879
30827         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30828
30829 2010-05-02  Bruno Haible  <bruno@clisp.org>
30830
30831         * doc/extend.texi (Function Attributes): Fix a typo.
30832
30833 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30834
30835         Revert:
30836         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30837         placeholder from 0x%x to %#x.
30838         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30839         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30840         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30841         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30842         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30843         * config/i386/i386.c (ix86_target_string): Ditto.
30844         * config/i386/i386.c (output_pic_addr_const): Ditto.
30845         (print_operand): Ditto.
30846
30847 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30848
30849         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30850         placeholder from 0x%x to %#x.
30851         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30852         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30853         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30854         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30855         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30856         * optc-gen.awk: Ditto.
30857         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30858         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30859         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30860         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30861
30862 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30863
30864         * target.h (struct calls): Add function_value_regno_p field.
30865         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30866         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30867         * targhooks.c (default_function_value_regno_p): New function.
30868         * targhooks.h (default_function_value_regno_p): Declare function.
30869         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30870         * builtins.c. (apply_result_size): (Ditto.).
30871         * combine.c. (likely_spilled_retval_p): (Ditto.).
30872         * mode-switching.c. Include 'target.h'.
30873         (create_pre_exit): Use function_value_regno_p hook.
30874         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30875         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30876         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30877
30878         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30879         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30880         (ix86_function_value_regno_p): Declare as static, change argument
30881         type to const unsigned int.
30882         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30883
30884 2010-05-01  Richard Guenther  <rguenther@suse.de>
30885
30886         PR tree-optimization/43949
30887         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30888         types.
30889         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30890
30891 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30892
30893         * rtl.h (CONST_DOUBLE_P): Define.
30894         (rtx_to_double_int): Declare.
30895         * emit-rtl.c (rtx_to_double_int): New function.
30896         * dwarf2out.c (insert_double): New function.
30897         (loc_descriptor, add_const_value_attribute): Clean up, use
30898         rtx_to_double_int and insert_double functions.
30899
30900 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30901
30902         * doc/extend.texi (Inline): Add missing return keyword to examples.
30903         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30904         "command-line".
30905
30906 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30907
30908         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30909         the variable part of the offset as well.  Use highest_pow2_factor for
30910         all alignment checks.
30911
30912 2010-04-30  Richard Guenther  <rguenther@suse.de>
30913
30914         PR tree-optimization/43879
30915         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30916         can have pointers.
30917
30918 2010-04-30  Jan Hubicka  <jh@suse.cz>
30919
30920         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30921         varpool.
30922         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30923
30924 2010-04-30  Jan Hubicka  <jh@suse.cz>
30925
30926         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30927         New.
30928         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30929         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30930         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30931         cgraph_node_set_needs_ltrans_p): Remove.
30932
30933 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30934
30935         * sdbout.c: Include vec.h, do not include varray.h.
30936         (deferred_global_decls, sdbout_global_decl,
30937         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30938         * toplev.c: Do not include varray.h.
30939         (dump_memory_report): Do not dump VARRAY statistics.
30940         * gengtype.c (open_base_file): Ignore varray.h.
30941         * Makefile.in: Update for abovementioned changes.
30942         Remove all traces of varray.c and varray.h.
30943         * varray.c: Remove file.
30944         * varray.h: Remove file.
30945
30946 2010-04-30  Jan Hubicka  <jh@suse.cz>
30947
30948         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30949         references.
30950
30951 2010-04-30  Jan Hubicka  <jh@suse.cz>
30952
30953         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30954         needed.
30955
30956 2010-04-30  Richard Guenther  <rguenther@suse.de>
30957
30958         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30959         constraints for CONSTRUCTOR.
30960
30961 2010-04-30  Richard Guenther  <rguenther@suse.de>
30962
30963         PR lto/43946
30964         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30965         first after all lowering passes.
30966
30967 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30968
30969         * toplev.c: Include varray.h for statistics dumping.
30970         * tree.h: Do not declare varray_head_tag.
30971         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30972         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30973         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30974         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30975         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30976         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30977         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30978         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30979         include varray.h.
30980         * Makefile.in: Update for abovementioned changes.
30981
30982 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30983
30984         PR debug/43942
30985         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30986
30987 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30988
30989         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30990         Use this function to do machine-specific conversion.
30991         (picochip_legitimize_reload_address): Likewise.
30992         (picochip_legitimate_address_p): Check valid base register only if
30993         strict.
30994         (picochip_check_conditional_copy): Check for modw only if opnd is
30995         register.
30996         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30997         to call the function in c.
30998         * config/picochip/picochip-protos.h
30999         (picochip_legitimize_reload_address): Define.
31000         * config/picochip/picochip.md (supported_compare1): Define.
31001
31002 2010-04-30  Jan Hubicka  <jh@suse.cz>
31003
31004         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
31005         (cgraph_global_info): Remove inlined.
31006         (LTO_cgraph_tag_names): Remove.
31007         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
31008         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
31009         simplify cgraph tags and document.
31010         (lto_output_node): Use only LTO_cgraph_unavail_node and
31011         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
31012         for_functions_valid, global info, process and output flags.
31013         (input_overwrite_node): Initialize estimated stack size and
31014         estimated growth.  Do not read flags we no longer store.
31015         (input_node): Likewise do not read info no longer stored.
31016         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
31017         flag.
31018
31019 2010-04-30  Richard Guenther  <rguenther@suse.de>
31020
31021         PR tree-optimization/43879
31022         * tree-ssa-structalias.c (get_constraint_for_1): Properly
31023         handle non-zero initializers.
31024
31025 2010-04-30  Richard Guenther  <rguenther@suse.de>
31026
31027         * builtins.c (fold_builtin_1): Delete free (0).
31028
31029 2010-04-29  Jan Hubicka  <jh@suse.cz>
31030
31031         * gengtype.c (open_base_files): Add lto-streamer.h
31032         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
31033         (pass_ipa_cp): GGC collect.
31034         * toplev. (compile_file): Do not output symbols.
31035         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
31036         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
31037         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
31038         * lto-section-in.c: Include ggc.h
31039         (lto_new_in_decl_state): Alloc in GGC.
31040         (lto_delete_in_decl_state): Likewise.
31041         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
31042         Collect.
31043
31044 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31045
31046         PR target/42895
31047         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
31048         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
31049         (HONOR_REG_ALLOC_ORDER): Describe new macro.
31050         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
31051         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
31052         account only if HONOR_REG_ALLOC_ORDER is not defined.
31053         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
31054         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
31055
31056 2010-04-29  Jon Grant  <04@jguk.org>
31057
31058         * collect2.c (vflag): Change type from int to bool.
31059         (debug): Likewise.
31060         (helpflag): New global bool.
31061         (main): Set vflag and debug with boolean, not integer truth values.
31062         Accept new "--help" option and output usage text if found.
31063         * collect2.h (vflag): Update prototype.
31064         (debug): Likewise.
31065
31066 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31067
31068         PR bootstrap/43936
31069         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
31070
31071 2010-04-29  Richard Guenther  <rguenther@suse.de>
31072
31073         PR bootstrap/43935
31074         * plugin.h (invoke_plugin_callbacks): Annotate arguments
31075         with ATTRIBUTE_UNUSED.
31076
31077 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31078
31079         PR target/43921
31080         * config/i386/i386.c (get_some_local_dynamic_name): Replace
31081         INSN_P with NONDEBUG_INSN_P.
31082         (distance_non_agu_define): Likewise.
31083         (distance_agu_use): Likewise.
31084
31085 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31086
31087         From Dominique d'Humieres  <dominiq@lps.ens.fr>
31088         PR bootstrap/43858
31089         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
31090         test_set.
31091
31092 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
31093
31094         * plugin.h (invoke_plugin_callbacks): New inline function.
31095         * plugin.c (flag_plugin_added): New global flag.
31096         (add_new_plugin): Initialize above flag.
31097         (invoke_plugin_callbacks): Rename to ...
31098         (invoke_plugin_callbacks_full): ... this.
31099
31100 2010-04-28  Jan Hubicka  <jh@suse.cz>
31101
31102         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
31103         (lto_varpool_replace_node): New.
31104         (lto_symtab_resolve_symbols): Resolve varpool nodes.
31105         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
31106         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
31107         * cgraph.h (varpool_node_ptr): New type.
31108         (varpool_node_ptr): New vector.
31109         (varpool_node_set_def): New structure.
31110         (varpool_node_set): New type.
31111         (varpool_node_set): New vector.
31112         (varpool_node_set_element_def): New structure.
31113         (varpool_node_set_element, const_varpool_node_set_element): New types.
31114         (varpool_node_set_iterator): New type.
31115         (varpool_node): Add prev pointers, add used_from_other_partition,
31116         in_other_partition.
31117         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
31118         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
31119         varpool_get_node, varpool_remove_node): Declare.
31120         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
31121         varpool_node_set_size): New inlines.
31122         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
31123         * tree-pass.h (varpool_node_set_def): Forward declare.
31124         (ipa_opt_pass_d): Summary writting takes vnode sets too.
31125         (ipa_write_optimization_summaries): Update prototype.
31126         * ipa-cp.c (ipcp_write_summary): Update.
31127         * ipa-reference.c (ipa_reference_write_summary): Update.
31128         * lto-cgraph.c (lto_output_varpool_node): New static function.
31129         (output_varpool): New function.
31130         (input_varpool_node): New static function.
31131         (input_varpool_1): New function.
31132         (input_cgraph): Input varpool.
31133         * ipa-pure-const.c (pure_const_write_summary): Update.
31134         * lto-streamer-out.c (lto_output): Update, output varpool too.
31135         (write_global_stream): Kill WPA hack.
31136         (produce_asm_for_decls): Update.
31137         (output_alias_pair_p): Handle variables.
31138         (output_unreferenced_globals): Output only needed partition of varpool.
31139         * ipa-inline.c (inline_write_summary): Update.
31140         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
31141         cgraph.
31142         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
31143         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
31144         varpool_node_set_new, varpool_node_set_add,
31145         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
31146         debug_varpool_node_set): New functions.
31147         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
31148         (execute_one_pass): Process new decls too.
31149         (ipa_write_summaries_2): Pass around vsets.
31150         (ipa_write_summaries_1): Likewise.
31151         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
31152         to add.
31153         (ipa_write_optimization_summaries_1): Pass around vsets.
31154         (ipa_write_optimization_summaries): Likewise.
31155         * varpool.c (varpool_get_node): New.
31156         (varpool_node): Update doubly linked lists.
31157         (varpool_remove_node): New.
31158         (dump_varpool_node): More dumping.
31159         (varpool_enqueue_needed_node): Update doubly linked lists.
31160         (decide_is_variable_needed): Kill ltrans hack.
31161         (varpool_finalize_decl): Kill lto hack.
31162         (varpool_assemble_decl): Skip decls in other partitions.
31163         (varpool_assemble_pending_decls): Update doubly linkes lists.
31164         (varpool_empty_needed_queue): Likewise.
31165         (varpool_extra_name_alias): Likewise.
31166         * lto-streamer.c (lto_get_section_name): Add vars section.
31167         * lto-streamer.h (lto_section_type): Update.
31168         (output_varpool, input_varpool): Declare.
31169
31170 2010-04-28  Mike Stump  <mikestump@comcast.net>
31171
31172         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
31173
31174 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31175
31176         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
31177         record or union type with RECORD_OR_UNION_TYPE_P predicate.
31178         (lto_input_ts_type_tree_pointers): Likewise.
31179         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
31180         (lto_output_ts_type_tree_pointers): Likewise.
31181
31182 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31183
31184         Uniquization of constants at the Tree level
31185         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
31186         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
31187         bit to the end.
31188         (tree_output_constant_def): Declare.
31189         * gimplify.c (gimplify_init_constructor): When using block copy, first
31190         uniquize the constant constructor on the RHS.
31191         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
31192         DECL_IN_CONSTANT_POOL flag.
31193         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
31194         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
31195         constant pool.
31196         (assemble_variable): Deal with symbols belonging to the tree constant
31197         pool.
31198         (get_constant_section): Add ALIGN parameter and simplify.
31199         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
31200         (assemble_constant_contents): Use the expression of the VAR_DECL.
31201         (output_constant_def_contents): Use the alignment of the VAR_DECL.
31202         (tree_output_constant_def): New global function.
31203         (mark_constant): Use the expression of the VAR_DECL.
31204         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
31205         its expression.
31206         (output_object_block): Likewise and assemble the expression.
31207
31208 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31209
31210         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
31211         hash_tree, eq_tree): New tree hash table.
31212         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
31213         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
31214         lto_orig_address_remove): Reimplement.
31215
31216 2010-04-28  Xinliang David Li  <davidxl@google.com>
31217
31218         PR c/42643
31219         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
31220         (compute_uninit_opnds_pos): New function.
31221         (is_non_loop_exit_postdominating): New function.
31222         (compute_control_dep_chain): New function.
31223         (find_pdom): New function.
31224         (convert_control_dep_chain_into_preds): New function.
31225         (find_predicates): New function.
31226         (find_control_equiv_block): New function.
31227         (collect_phi_def_edges): New function.
31228         (find_def_preds): New function.
31229         (find_dom): New function.
31230         (dump_predicates): New function.
31231         (get_cmp_code): New function.
31232         (is_value_included_in): New function.
31233         (find_matching_predicate_in_rest_chains): New function.
31234         (use_pred_not_overlap_with_undef_path_pred): New function.
31235         (is_use_properly_guarded): New function.
31236         (normalize_cond_1): New function.
31237         (is_and_or_or): New function.
31238         (normalize_cond): New function.
31239         (is_gcond_subset_of): New function.
31240         (is_subset_of_any): New function.
31241         (is_or_set_subset_of): New function.
31242         (is_and_set_subset_of): New function.
31243         (is_norm_cond_subset_of): New function.
31244         (is_pred_expr_subset_of): New function.
31245         (is_pred_chain_subset_of): New function.
31246         (is_included_in): New function.
31247         (is_superset_of): New function.
31248         (find_uninit_use): New function.
31249         (warn_uninitialized_phi): New function.
31250         (compute_possibly_undefined_names): New function.
31251         (ssa_undefined_value_p): New function.
31252         (execute_late_warn_uninitialized): New function.
31253         * tree-ssa.c (ssa_undefined_value_p): Removed.
31254         (warn_uninit): Changed to extern.
31255         (warn_uninitialized_phi): Removed.
31256         (warn_uninitialized_vars): Changed to extern.
31257         (execute_late_warn_uninitialized): Removed
31258         * tree-flow.h: Add new prototypes.
31259         * timevar.def: Add new time variable.
31260         * Makefile.in: Add new build file.
31261
31262 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
31263
31264         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
31265         type if available.
31266
31267 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31268
31269         PR target/22224
31270         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
31271
31272 2010-04-28  Martin Jambor  <mjambor@suse.cz>
31273
31274         * cgraph.h (struct cgraph_node): New field indirect_calls.
31275         (struct cgraph_indirect_call_info): New type.
31276         (struct cgraph_edge): Removed field indirect_call. New fields
31277         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
31278         (cgraph_create_indirect_edge): Declare.
31279         (cgraph_make_edge_direct): Likewise.
31280         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
31281         * ipa-prop.h (struct ipa_param_call_note): Removed.
31282         (struct ipa_node_params): Removed field param_calls.
31283         (ipa_create_all_structures_for_iinln): Declare.
31284         * cgraph.c: Described indirect edges and uids in initial comment.
31285         (cgraph_add_edge_to_call_site_hash): New function.
31286         (cgraph_edge): Search also among the indirect edges, use
31287         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
31288         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
31289         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
31290         site hash.
31291         (initialize_inline_failed): Assign a reason to indirect edges.
31292         (cgraph_create_edge_1): New function.
31293         (cgraph_create_edge): Moved some functionality to
31294         cgraph_create_edge_1.
31295         (cgraph_create_indirect_edge): New function.
31296         (cgraph_edge_remove_callee): Add an assert checking for
31297         non-indirectness.
31298         (cgraph_edge_remove_caller): Special-case indirect edges.
31299         (cgraph_remove_edge): Likewise.
31300         (cgraph_set_edge_callee): New function.
31301         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31302         (cgraph_make_edge_direct): New function.
31303         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31304         the declaration of the call statement matches.
31305         (cgraph_node_remove_callees): Special-case indirect edges.
31306         (cgraph_clone_edge): Likewise.
31307         (cgraph_clone_node): Clone also the indirect edges.
31308         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31309         indirect_call, dump count of indirect_calls edges.
31310         * ipa-prop.c (iinlining_processed_edges): New variable.
31311         (ipa_note_param_call): Create indirect edges instead of
31312         creating notes.  New parameter node.
31313         (ipa_analyze_call_uses): New parameter node, pass it on to
31314         ipa_note_param_call.
31315         (ipa_analyze_stmt_uses): Likewise.
31316         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31317         (print_edge_addition_message): Work on edges rather than on notes.
31318         (update_call_notes_after_inlining): Likewise, renamed to
31319         update_indirect_edges_after_inlining.
31320         (ipa_create_all_structures_for_iinln): New function.
31321         (ipa_free_node_params_substructures): Do not free notes.
31322         (ipa_edge_duplication_hook): Propagate bits within
31323         iinlining_processed_edges bitmap.
31324         (ipa_node_duplication_hook): Do not duplicate notes.
31325         (free_all_ipa_structures_after_ipa_cp): Renamed to
31326         ipa_free_all_structures_after_ipa_cp.
31327         (free_all_ipa_structures_after_iinln): Renamed to
31328         ipa_free_all_structures_after_iinln.
31329         (ipa_write_param_call_note): Removed.
31330         (ipa_read_param_call_note): Removed.
31331         (ipa_write_indirect_edge_info): New function.
31332         (ipa_read_indirect_edge_info): Likewise.
31333         (ipa_write_node_info): Do not stream notes, do stream information
31334         in indirect edges.
31335         (ipa_read_node_info): Likewise.
31336         (lto_ipa_fixup_call_notes): Removed.
31337         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31338         * ipa-inline.c (pass_ipa_inline): Likewise.
31339         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31340         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31341         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31342         is_gimple_call.
31343         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31344         edges.
31345         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31346         (output_cgraph): Stream also indirect edges.
31347         (lto_output_edge): Added capability to stream indirect edges.
31348         (input_edge): Likewise.
31349         (input_cgraph_1): Likewise.
31350         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31351         of indirect edges.
31352
31353 2010-04-28  Richard Guenther  <rguenther@suse.de>
31354
31355         PR tree-optimization/43879
31356         PR tree-optimization/43909
31357         * tree-ssa-structalias.c (struct variable_info): Add
31358         only_restrict_pointers flag.
31359         (new_var_info): Initialize it.  Increment stats.total_vars here.
31360         (create_function_info_for): Do not increment stats.total_vars here.
31361         (get_function_part_constraint): Fix build with C++.
31362         (insert_into_field_list): Remove.
31363         (push_fields_onto_fieldstack): Properly merge fields.
31364         (create_variable_info_for): Split and simplify.
31365         (create_variable_info_for_1): New piece.
31366         (intra_create_variable_infos): Properly make restrict constraints
31367         from parameters.
31368
31369 2010-04-28  Richard Guenther  <rguenther@suse.de>
31370
31371         PR c++/43880
31372         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31373
31374 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31375             Jan Hubicka  <hubicka@ucw.cz>
31376
31377         * doc/invoke.texi (-Wsuggest-attribute=const,
31378         -Wsuggest-attribute=pure): Document.
31379         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31380         (function_always_visible_to_compiler_p,
31381         suggest_attribute, warn_function_pure, warn_function_const):
31382         New functions.
31383         (check_call): Improve debug info.
31384         (analyze_function): Do not check availability.
31385         (add_new_function): Check availability.
31386         (propagate): Output warnings.
31387         (skip_function_for_local_pure_const): New function.
31388         (local_pure_const): Use it; output warnings.
31389         * common.opt (Wsuggest-attribute=const,
31390         Wsuggest-attribute=pure): New.
31391
31392 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31393
31394         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31395         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31396         or DW_CFA_def_cfa_offset{,_sf}.
31397
31398 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31399
31400         * tree.h: Fix truncated long macros.
31401
31402 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31403
31404         * collect2.c (TARGET_64BIT): Redefine to target's default.
31405         * tlink.c: Likewise.
31406         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31407         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31408         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31409         for underscoring __USER_LABEL_PREFIX__.
31410         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31411         (SUB_LINK_ENTRY32): New.
31412         (SUB_LINK_ENTRY64): New.
31413         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31414         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31415         (SUB_LINK_ENTRY64): New.
31416         (SUB_LINK_ENTRY): New.
31417         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31418         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31419         x64 target is choosen.
31420         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31421         * configure: Regenerated.
31422         * configure.ac (leading-mingw64-underscores): Option added.
31423
31424 2010-04-27  Jan Hubicka  <jh@suse.cz>
31425
31426         * doc/invoke.texi (-fipa-profile): Document.
31427         * opts.c (decode_options): Enable ipa-profile at -O1.
31428         * timevar.def (TV_IPA_PROFILE): Define.
31429         * common.opt (fipa-profile): Add.
31430         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31431         flag for clones.
31432         (cgraph_propagate_frequency): Handle only local ones.
31433         * tree-pass.h (pass_ipa_profile): Declare.
31434         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31435         (pass_ipa_profile): Use TV_IPA_PROFILE.
31436         * ipa.c (ipa_profile): New function.
31437         (gate_ipa_profile): Likewise.
31438         (pass_ipa_profile): New global variable.
31439         * passes.c (pass_ipa_profile): New.
31440
31441 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31442
31443         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31444
31445 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31446
31447         PR middle-end/43812
31448         * ipa.c (dissolve_same_comdat_group_list): New function.
31449         (function_and_variable_visibility): Call
31450         dissolve_same_comdat_group_list when comdat group contains external or
31451         newly local nodes.
31452         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31453         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31454
31455 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31456
31457         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31458         (const_hash_1) <VECTOR_CST>: New case.
31459         (compare_constant) <VECTOR_CST>: Likewise.
31460         <ADDR_EXPR>: Deal with LABEL_REFs.
31461         (copy_constant) <VECTOR_CST>: New case.
31462
31463 2010-04-27  Jan Hubicka  <jh@suse.cz>
31464
31465         * cgraph.c (cgraph_propagate_frequency): New function.
31466         * cgraph.h (cgraph_propagate_frequency): Declare.
31467         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31468         cgraph_propagate_frequency.
31469
31470 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31471
31472         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31473
31474 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31475
31476         PR target/40657
31477         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31478         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31479         here to determine which regs to push and how much stack to reserve.
31480
31481 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31482
31483         * doc/gimple.texi (gimple_statement_with_ops): Remove
31484         addresses_taken field.
31485         (gimple_statement_with_memory_ops): Likewise.
31486
31487 2010-04-27  Jan Hubicka  <jh@suse.cz>
31488
31489         * tree-inline.c (eni_inlining_weights): Remove.
31490         (estimate_num_insns): Special case more builtins.
31491
31492 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31493
31494         PR c/32207
31495         * c-typeck.c (build_binary_op): Move forward check for comparison
31496         pointer with null pointer constant and adjust the diagnostic message.
31497
31498 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31499
31500         PR lto/42776
31501         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31502         binutils supports extended .section directive needed by LTO, or
31503         warn if older binutils found.
31504         (LTO_BINARY_READER): New AC_SUBST'd variable.
31505         (LTO_USE_LIBELF): Likewise.
31506         * config.gcc (lto_binary_reader): New target-specific configure
31507         variable.
31508         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31509         (LTO_USE_LIBELF): Likewise.
31510         * configure: Regenerate.
31511
31512         * collect2.c (is_elf): Rename from this ...
31513         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31514          object files in addition to ELF-formatted ones.
31515         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31516         symbol to be prefixed or not by an extra underscore.
31517
31518         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31519         * config/i386/winnt.c: Also #include lto-streamer.h
31520         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31521         LTO named sections.
31522         (i386_pe_asm_output_aligned_decl_common): Add comment.
31523         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31524
31525 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31526
31527         PR target/43889
31528         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31529         Add missing earlyclobber for second alternative.
31530
31531 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31532
31533         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31534         bits for artificial defs at the top of the block.
31535         * fwprop.c (single_def_use_enter_block): Don't call it.
31536
31537 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31538
31539         PR 43715
31540         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31541         instead of "$gcc_cv_objdump -T".
31542         Use "-undefined dynamic_lookup" on darwin.
31543         * configure: Regenerate.
31544
31545 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31546
31547         PR c/43893
31548         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31549
31550 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31551
31552         * c-parser.c (struct c_token): Move location field up.
31553         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31554         (struct c_declspecs): Convert typespec_word, storage_class, and
31555         default_int_p into bitfields.
31556         (struct c_declarator): Move loc field up.
31557
31558 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31559
31560         * cfgloop.h (struct loop): Move can_be_parallel field up.
31561         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31562         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31563         down.
31564         (struct iv_cand): Convert pos field into a bitfield.
31565         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31566         field up.
31567         (struct _stmt_vec_info): Shuffle fields for better packing.
31568
31569 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31570
31571         * varasm.c (IN_NAMED_SECTION): Remove guard.
31572         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31573         (IN_NAMED_SECTION_P): ...this.
31574         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31575         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31576
31577 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31578
31579         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31580         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31581         of shadowing it.  Fix comments.
31582
31583 2010-04-26  Jan Hubicka  <jh@suse.cz>
31584
31585         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31586         (cgraph_clone_node): Copy function frequency.
31587         * cgraph.h (node_frequency): New enum
31588         (struct cgraph_node): Add.
31589         * final.c (rest_of_clean_state): Update.
31590         * lto-cgraph.c (lto_output_node): Output node frequency.
31591         (input_overwrite_node): Input node frequency.
31592         * tre-ssa-loop-ivopts (computation_cost): Update.
31593         * lto-streamer-out.c (output_function): Do not output function
31594         frequency.
31595         * predict.c (maybe_hot_frequency_p): Update and handle functions
31596         executed once.
31597         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31598         attribute lookup.
31599         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31600         (compute_function_frequency): Set noreturn functions to be executed
31601         once.
31602         (choose_function_section): Update.
31603         * lto-streamer-in.c (input_function): Do not input function frequency.
31604         * function.c (allocate_struct_function): Do not initialize function
31605         frequency.
31606         * function.h (function_frequency): Remove.
31607         (struct function): Remove function frequency.
31608         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31609         (try_update): Update.
31610         * tree-inline.c (initialize_cfun): Do not update function frequency.
31611         * passes.c (pass_init_dump_file): Update.
31612         * i386.c (ix86_compute_frame_layout): Update.
31613         (ix86_pad_returns): Update.
31614
31615 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31616
31617         PR tree-optimization/43833
31618         * tree-vrp.c (range_int_cst_p): New.
31619         (range_int_cst_singleton_p): New.
31620         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31621         when both operands are constants.  Use range_int_cst_p in
31622         BIT_IOR_EXPR case.
31623
31624 2010-04-26  Jan Hubicka  <jh@suse.cz>
31625
31626         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31627
31628 2010-04-26  Richard Guenther  <rguenther@suse.de>
31629
31630         PR lto/43080
31631         * gimple.c (gimple_decl_printable_name): Deal gracefully
31632         with a NULL DECL_NAME.
31633
31634 2010-04-26  Richard Guenther  <rguenther@suse.de>
31635
31636         PR lto/42425
31637         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31638         if emitting debug information and it is either a function
31639         or a namespace decl.
31640
31641 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31642
31643         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31644         determine if the statement is vectorizable, and a macro to access it.
31645         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31646         Skip statements that can't be vectorized. If the analysis fails,
31647         mark the statement as unvectorizable if vectorizing basic block.
31648         (vect_compute_data_refs_alignment): Likewise.
31649         (vect_verify_datarefs_alignment): Skip statements marked as
31650         unvectorizable. Add print.
31651         (vect_analyze_group_access): Skip statements that can't be
31652         vectorized. If the analysis fails, mark the statement as
31653         unvectorizable if vectorizing basic block.
31654         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31655         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31656         generated stmts for SLP.
31657         (new_stmt_vec_info): Initialize the new field.
31658         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31659         statements marked as unvectorizable.
31660
31661 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31662
31663         * c-common.c (flag_isoc1x): New.
31664         (flag_isoc99): Update comment.
31665         * c-common.h (flag_isoc1x): New.
31666         (flag_isoc99): Update comment.
31667         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31668         __<type>_DECIMAL_DIG__.
31669         * c-opts.c (set_std_c1x): New.
31670         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31671         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31672         * c.opt (-std=c1x, -std=gnu1x): New options.
31673         * doc/cpp.texi: Mention -std=c1x.
31674         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31675         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31676         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31677         * doc/standards.texi: Mention C1X.
31678         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31679         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31680         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31681         Define for C1X.
31682
31683 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31684
31685         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31686         placeholder from 0x%x to %#x.
31687         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31688         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31689         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31690         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31691         * config/i386/i386.c (ix86_target_string): Ditto.
31692         (output_pic_addr_const): Ditto.
31693         (print_operand): Ditto.
31694
31695 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31696
31697         * combine.c (find_split_point): Add third argument.  Use it
31698         to find nested multiply-accumulate instructions.  Adjust calls.
31699         (try_combine): Adjust call to find_split_point.
31700
31701 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31702
31703         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31704
31705 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31706
31707         PR tree-optimization/41442
31708         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31709         (fold_binary_loc): Call it.
31710
31711 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31712
31713         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31714         * opts.c (common_handle_option): Allow disabling it.
31715         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31716
31717 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31718
31719         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31720         between modes if both types are integral.
31721
31722 2010-04-23  Richard Guenther  <rguenther@suse.de>
31723
31724         PR tree-optimization/43572
31725         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31726
31727 2010-04-23  Richard Guenther  <rguenther@suse.de>
31728
31729         PR lto/43455
31730         * tree-inline.c (tree_can_inline_p): Also check compatibility
31731         of return types.
31732
31733 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31734
31735         PR tree-optimization/43846
31736         * tree-sra.c (struct access): New flag grp_assignment_read.
31737         (build_accesses_from_assign): Set grp_assignment_read.
31738         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31739         (enum mark_read_status): New type.
31740         (analyze_access_subtree): Propagate grp_assignment_read, create
31741         accesses also if both direct_read and root->grp_assignment_read.
31742
31743 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31744
31745         PR middle-end/43835
31746         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31747         function does not have type attributes.
31748
31749 2010-04-23  Richard Guenther  <rguenther@suse.de>
31750
31751         PR lto/42653
31752         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31753         of FUNCTION_DECLs.
31754
31755 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31756
31757         * sese.h (create_if_region_on_edge): Remove.
31758
31759         * sese.c (create_if_region_on_edge): Make static.
31760
31761         * tree-inline.c: Do not include ggc.h.
31762
31763         * expr.c: Do not include ggc.h.
31764
31765         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31766         dependencies.
31767
31768 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31769
31770         PR target/43744
31771         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31772         in the middle of insns for casesi_worker_2.
31773
31774 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31775
31776         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31777
31778 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31779
31780         PR tree-optimization/43842
31781         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31782         loop unrolling in update of exit phis. Fix comment.
31783         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31784         least two reduction statements in the loop before starting SLP
31785         analysis.
31786
31787 2010-04-22  Nick Clifton  <nickc@redhat.com>
31788
31789         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31790
31791 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31792
31793         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31794         to simplify a + ~a.
31795
31796 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31797
31798         * tree-parloops.c (loop_parallel_p): New argument
31799         parloop_obstack.  Pass it down.
31800         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31801         pass it down, free it.
31802
31803         * tree-loop-linear.c (linear_transform_loops): Pass down
31804         lambda_obstack.
31805
31806         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31807         of type struct obstack *.
31808
31809         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31810         scratch_obstack.  Initialize it, pass down, free it.
31811
31812         * lambda.h (lambda_loop_new): Remove.
31813         (lambda_matrix_new, lambda_matrix_inverse)
31814         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31815         argument of type struct obstack *.
31816
31817         * lambda-trans.c (lambda_trans_matrix_new): New argument
31818         lambda_obstack.  Pass it down, use obstack allocation for ret.
31819         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31820         it down.
31821
31822         * lambda-mat.c (lambda_matrix_get_column)
31823         (lambda_matrix_project_to_null): Remove.
31824         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31825         allocation for mat.
31826         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31827         lambda_obstack.
31828
31829         * lambda-code.c (lambda_loop_new): New function.
31830         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31831         (lambda_compute_auxillary_space, lambda_compute_target_space)
31832         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31833         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31834         (build_access_matrix): New argument lambda_obstack.  Use obstack
31835         allocation for am.
31836         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31837         argument lambda_obstack.  Pass it down.
31838
31839 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31840
31841         * optabs.h (expand_widening_mult): Declare.
31842
31843 2010-04-22  Richard Guenther  <rguenther@suse.de>
31844
31845         PR tree-optimization/43845
31846         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31847         lookup the CALL_EXPR function and arguments.
31848
31849 2010-04-22  Nick Clifton  <nickc@redhat.com>
31850
31851         * config/stormy16/stormy16.c
31852         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31853         * config/stormy16/stormy16.h: Tidy up formatting.
31854         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31855         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31856         (ineqbranchsi): Delete pattern.
31857         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31858         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31859         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31860         stormy16-lib2-ucmpsi2.c.
31861
31862 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31863
31864         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31865         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31866         extra set merge_set_noclobber, and use it to relax the final test
31867         slightly.
31868         * df.h (df_simulate_find_noclobber_defs): Declare.
31869         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31870         conditional defs.
31871         (df_simulate_find_noclobber_defs): New function.
31872
31873 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31874
31875         * config/i386/i386.md: Use {} around multi-line preparation statements.
31876
31877 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31878
31879         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31880         (process_init_element): New argument of type struct obstack *.
31881
31882         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31883         (set_init_index, set_init_label, set_nonincremental_init)
31884         (set_nonincremental_init_from_string, find_init_member)
31885         (output_init_element, output_pending_init_elements)
31886         (process_init_element): New argument braced_init_obstack.  Pass it
31887         down.
31888         (push_range_stack, add_pending_init): New argument
31889         braced_init_obstack.  Use obstack allocation.
31890
31891         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31892         braced_init_obstack.  Pass it down.
31893         (c_parser_braced_init): New variables ret, braced_init_obstack.
31894         Initialize obstack, pass it down and finally free it.
31895
31896 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31897
31898         PR middle-end/29274
31899         * tree-pass.h (pass_optimize_widening_mul): Declare.
31900         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31901         gate_optimize_widening_mul): New static functions.
31902         (pass_optimize_widening_mul): New.
31903         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31904         <case MULT_EXPR>: Remove support for widening multiplies.
31905         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31906         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31907         simplify_gen_unary rather than directly building extensions.
31908         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31909         WIDEN_MULT_EXPR.
31910         * expmed.c (expand_widening_mult): New function.
31911         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31912
31913 2010-04-21  Jan Hubicka  <jh@suse.cz>
31914
31915         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31916         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31917         * lto-wpa-fixup.c: Remove.
31918         * Makefile.in (lto-wpa-fixup.o): Remove.
31919         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31920         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31921         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31922
31923 2010-04-21  Jan Hubicka  <jh@suse.cz>
31924
31925         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31926         add write_optimization_summary, read_optimization_summary.
31927         (ipa_write_summaries_of_cgraph_node_set): Remove.
31928         (ipa_write_optimization_summaries): Declare.
31929         (ipa_read_optimization_summaries): Declare.
31930         * ipa-cp.c (pass_ipa_cp): Update.
31931         * ipa-reference.c (pass_ipa_reference): Update.
31932         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31933         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31934         Update.
31935         * ipa-inline.c (pass_ipa_inline): Update.
31936         * ipa.c (pass_ipa_whole_program): Update.
31937         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31938         * passes.c (ipa_write_summaries_1): Do not test wpa.
31939         (ipa_write_optimization_summaries_1): New.
31940         (ipa_write_optimization_summaries): New.
31941         (ipa_read_summaries): Do not test ltrans.
31942         (ipa_read_optimization_summaries_1): New.
31943         (ipa_read_optimization_summaries): New.
31944
31945 2010-04-21  Jan Hubicka  <jh@suse.cz>
31946
31947         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31948         for boundary nodes.
31949         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31950
31951 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31952
31953         PR debug/40040
31954         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31955         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31956
31957 2010-04-21  Jan Hubicka  <jh@suse.cz>
31958
31959         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31960
31961 2010-04-21  Jan Hubicka  <jh@suse.cz>
31962
31963         * varpool.c (decide_is_variable_needed): Variable is always needed
31964         during ltrans.
31965
31966 2010-04-21  Jan Hubicka  <jh@suse.cz>
31967
31968         * opts.c (decode_options): Enable pure-const pass for whopr.
31969
31970 2010-04-21  Jan Hubicka  <jh@suse.cz>
31971
31972         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31973         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31974         at WPA dumping.
31975         (cgraph_decide_inlining): Do not expect callee to be removed in all
31976         cases.
31977
31978 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31979
31980         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31981
31982 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31983
31984         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31985         amdfam10_decode attributes.
31986
31987 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31988
31989         PR middle-end/43570
31990         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31991         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31992         (lower_copyprivate_clauses): Use private var in outer
31993         context instead of original var.  Make sure the types
31994         are correct for VLAs.
31995
31996 2010-04-21  Richard Guenther  <rguenther@suse.de>
31997
31998         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31999         to non-pointer objects.
32000
32001 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32002
32003         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
32004         last chain entry if it starts with the still current label.
32005         (add_location_or_const_value_attribute): Check that
32006         loc_list->first->next is NULL instead of comparing ->first with ->last.
32007         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
32008         to add_var_loc_to_decl.
32009
32010         * dwarf2out.c (output_call_frame_info): For dw_cie_version
32011         >= 4 add also address size and segment size fields into CIE header.
32012
32013         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
32014         long as address size is the same as sizeof (void *) and
32015         segment size is 0.
32016         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
32017         address size or segment size is unexpected, return DW_EH_PE_omit.
32018         (classify_object_over_fdes): If get_cie_encoding returned
32019         DW_EH_PE_omit, return -1.
32020         (init_object): If classify_object_over_fdes returned -1,
32021         pretend there were no FDEs at all.
32022
32023 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32024
32025         * config/i386/i386.md (bswap<mode>2): Macroize expander from
32026         bswap{si,di}2 using SWI48 mode iterator.
32027         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
32028         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
32029         set modrm attribute of bswap insn to 0 and remove length attribute.
32030         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
32031         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
32032         set mode attribute to <MODE> and remove length attribute.
32033
32034 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
32035
32036         PR rtl-optimization/43520
32037         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
32038         zero available registers.
32039
32040 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32041
32042         * builtins.c (fold_builtin_cproj): Fold more cases.
32043
32044 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32045
32046         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
32047         (fold_builtin_1): Fold builtin cproj.
32048         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
32049         Use ATTR_CONST_NOTHROW_LIST.
32050
32051 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
32052
32053         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
32054         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
32055         ffsi2_no_cmove for !TARGET_CMOVE.
32056         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
32057         (ffssi2): Remove expander.
32058         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
32059         mode iterator.
32060         (ctz<mode>2): Ditto from ctz{si,di}2.
32061         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
32062         mode iterator.
32063         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
32064         mode iterator.
32065
32066 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32067
32068         * dwarf2out.c (AT_linkage_name): Define.
32069         (clone_as_declaration): Handle DW_AT_linkage_name.
32070         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
32071         of DW_AT_MIPS_linkage_name.
32072         (move_linkage_attr): Likewise.
32073         (dwarf2out_finish): Likewise.
32074
32075 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
32076
32077         PR middle-end/41952
32078         * fold-const.c (fold_comparison): New folding rule.
32079
32080 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
32081
32082         * double-int.h (double_int_setbit): Declare.
32083         * double-int.c (double_int_setbit): New function.
32084         * rtl.h (immed_double_int_const): Declare.
32085         * emit-rtl.c (immed_double_int_const): New function.
32086         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
32087         and immed_double_int_const functions.
32088         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
32089         expand_copysign_bit): (Ditto.).
32090         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
32091         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
32092         * dojump.c (prefer_and_bit_test): (Ditto.).
32093         * expr.c (convert_modes, reduce_to_bit_field_precision,
32094         const_vector_from_tree): (Ditto.).
32095         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32096
32097 2010-04-20  Jan Hubicka  <jh@suse.cz>
32098
32099         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
32100         (dump_cgraph_node): Dump new flags.
32101         * cgraph.h (struct cgraph_node): Add flags
32102         reachable_from_other_partition and in_other_partition.
32103         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
32104         other partition can not be removed.
32105         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
32106         the other partition must be output; silence sanity checking on
32107         leaking functions bodies from other paritition.
32108         * lto-cgraph.c (reachable_from_other_partition_p): New function.
32109         (lto_output_node): Output new flags; do not sanity check that inline
32110         clones are output; drop lto_forced_extern_inline_p code; do not mock
32111         visibility flags at partition boundaries.
32112         (add_node_to): New function.
32113         (output_cgraph): Use it to sort functions so masters appear before
32114         clones.
32115         (input_overwrite_node): Input new flags.
32116         * passes.c (ipa_write_summaries): Do not call
32117         lto_new_extern_inline_states.
32118         * lto-section-out.c (forced_extern_inline,
32119         lto_new_extern_inline_states lto_delete_extern_inline_states,
32120         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
32121         * lto-streamer.h (lto_new_extern_inline_states,
32122         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
32123         lto_forced_extern_inline_p): Kill.
32124
32125 2010-04-20  Richard Guenther  <rguenther@suse.de>
32126
32127         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
32128         from vars that can have pointers.
32129         (process_constraint): Dump useless constraints.
32130
32131 2010-04-20  Richard Guenther  <rguenther@suse.de>
32132
32133         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
32134         (dump_sa_points_to_info): Remove asserts.
32135         (init_base_vars): nothing_id isn't an escape point nor does it
32136         have pointers.
32137
32138 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32139
32140         * tree.h (TYPE_REF_IS_RVALUE): Define.
32141         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
32142         should_move_die_to_comdat, prune_unused_types_walk): Handle
32143         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
32144         (modified_type_die, gen_reference_type_die): Emit
32145         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
32146         if TYPE_REF_IS_RVALUE and -gdwarf-4.
32147
32148 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32149
32150         PR target/43635
32151         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
32152         calls for -fpic -m31 if they have been sibcall optimized.
32153
32154 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
32155
32156         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
32157         ar.lc fixed and call-used.
32158
32159         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
32160
32161 2010-04-19  Jan Hubicka  <jh@suse.cz>
32162
32163         * opts.c (decode_options): Disable whpr incompatible passes.
32164         * lto/lto.c (lto_1_to_1_map): Skip clones.
32165         (read_cgraph_and_symbols): Do not mark everything as needed.
32166         (do_whole_program_analysis): Do map only after optimizing;
32167         set proper cgraph_state; use passmanager.
32168
32169 2010-04-19  DJ Delorie  <dj@redhat.com>
32170
32171         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
32172         POINTER_PLUS_EXPR and fix them.
32173
32174 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
32175
32176         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
32177         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
32178         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
32179         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
32180         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
32181         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
32182         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
32183         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
32184         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
32185         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
32186         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
32187
32188 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32189
32190         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
32191         (check_cond_move_block): Likewise.
32192         (cond_move_process_if_block): Likewise.
32193         (noce_find_if_block): Improve formatting.
32194         (find_if_header): Pass 0 to memset and tweak conditions.
32195         (cond_exec_find_if_block): Fix long lines and tweak conditions.
32196
32197 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32198
32199         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
32200         for -gdwarf-4.
32201
32202         PR middle-end/43337
32203         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
32204         with non-local decl doesn't need chain.
32205
32206 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32207
32208         * ira-color.c (allocno_reload_assign): Avoid accumulating
32209         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
32210
32211 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32212
32213         * gimple.h (create_tmp_reg): Declare.
32214         * gimplify.c (create_tmp_reg): New function.
32215         (gimplify_return_expr): Use create_tmp_reg.
32216         (gimplify_omp_atomic): Likewise.
32217         (gimple_regimplify_operands): Likewise.
32218         * tree-dfa.c (make_rename_temp): Likewise.
32219         * tree-predcom.c (predcom_tmp_var): Likewise.
32220         (reassociate_to_the_same_stmt): Likewise.
32221         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
32222         (get_replaced_param_substitute): Likewise.
32223         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
32224         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
32225         * tree-ssa-pre.c (get_representative_for): Likewise.
32226         (create_expression_by_pieces): Likewise.
32227         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
32228         (create_tailcall_accumulator): Likewise.
32229
32230 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32231
32232         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
32233         new_stmt.
32234         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
32235
32236 2010-04-19  Richard Guenther  <rguenther@suse.de>
32237
32238         PR tree-optimization/43796
32239         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
32240         from SCEV in the lattice.
32241         (vrp_visit_phi_node): Dump change.
32242
32243 2010-04-19  Richard Guenther  <rguenther@suse.de>
32244
32245         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
32246         * configure: Re-generated.
32247
32248 2010-04-19  Richard Guenther  <rguenther@suse.de>
32249
32250         PR tree-optimization/43783
32251         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
32252         constant ARRAY_REF operands two and three if possible.
32253
32254 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
32255
32256         PR target/43766
32257         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
32258
32259 2010-04-19  Jie Zhang  <jie@codesourcery.com>
32260
32261         PR target/43662
32262         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
32263
32264 2010-04-19  Ira Rosen  <irar@il.ibm.com>
32265
32266         PR tree-optimization/37027
32267         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
32268         and macro to access it.
32269         (vectorizable_reduction): Add argument.
32270         (vect_get_slp_defs): Likewise.
32271         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
32272         statements for possible use in SLP.
32273         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
32274         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
32275         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
32276         add new argument.
32277         (vectorizable_reduction): Likewise.
32278         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
32279         vect_get_slp_defs.
32280         (vectorizable_type_demotion, vectorizable_type_promotion,
32281         vectorizable_store): Likewise.
32282         (vect_analyze_stmt): Update call to vectorizable_reduction.
32283         (vect_transform_stmt): Likewise.
32284         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
32285         (vect_build_slp_tree): Fix indentation. Check that there are no loads
32286         from different interleaving chains in same node.
32287         (vect_slp_rearrange_stmts): New function.
32288         (vect_supported_load_permutation_p): Allow load permutations for
32289         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
32290         inside SLP nodes if necessary.
32291         (vect_analyze_slp_instance): Handle reductions.
32292         (vect_analyze_slp): Try to build SLP instances originating from groups
32293         of reductions.
32294         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32295         (vect_get_constant_vectors): Create initial vectors for reductions
32296         according to reduction code. Add new argument.
32297         (vect_get_slp_defs): Add new argument, pass it to
32298         vect_get_constant_vectors.
32299         (vect_schedule_slp_instance): Remove SLP tree root statements.
32300
32301 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32302
32303         * tree.h (ENUM_IS_SCOPED): Define.
32304         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32305         for ENUM_IS_SCOPED enums.
32306
32307 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32308
32309         * fold-const.c (fold_comparison): Use ssizetype.
32310         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32311         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32312         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32313         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32314
32315         * tree.h (initialize_sizetypes): Remove parameter.
32316         (build_common_tree_nodes): Remove second parameter.
32317         * stor-layout.c (initialize_sizetypes): Remove parameter.
32318         Always create an unsigned type.
32319         (set_sizetype): Assert that the passed type is unsigned and simplify.
32320         * tree.c (build_common_tree_nodes): Remove second parameter.
32321         Adjust call to initialize_sizetypes.
32322         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32323         build_common_tree_nodes.
32324
32325 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32326
32327         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32328
32329 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32330
32331         PR tree-optimization/43771
32332         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32333         load permutation doesn't have gaps.
32334
32335 2010-04-18  Jan Hubicka  <jh@suse.cz>
32336
32337         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32338         (sse_prologue_save_insn expander): Use new pattern.
32339         (sse_prologue_save_insn1): New pattern and splitter.
32340         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32341         blocks.
32342         * i386.c (setup_incoming_varargs_64): Do not compute jump
32343         destination here.
32344         (ix86_gimplify_va_arg): Update alignment needed.
32345         (ix86_local_alignment): Do not align all local arrays to 128bit.
32346
32347 2010-04-17  Jan Hubicka  <jh@suse.cz>
32348
32349         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32350
32351 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32352
32353         * arm.md (negdi2): Remove redundant code to force values into a
32354         register.
32355
32356 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32357
32358         * arm/bpabi.S: Add EABI alignment attributes to objects.
32359         * arm/bpabi-v6m.S: Likewise.
32360         * arm/crti.asm: Likewise.
32361         * arm/crtn.asm: Likewise.
32362         * arm/lib1funcs.asm: Likewise.
32363         * arm/libunwind.S: Likewise.
32364
32365 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32366
32367         * arm-protos.h (tune_params): New structure.
32368         * arm.c (current_tune): New variable.
32369         (arm_constant_limit): Delete.
32370         (struct processors): Add pointer to the tune parameters.
32371         (arm_slowmul_tune): New tuning option.
32372         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32373         (all_cores): Adjust to pick up the tuning model.
32374         (arm_constant_limit): New function.
32375         (arm_override_options): Select the appropriate tuning model.  Delete
32376         initialization of arm_const_limit.
32377         (arm_split_constant): Use the new constant-limit model.
32378         (arm_rtx_costs): Pick up the current tuning model.
32379         * arm.md (is_strongarm, is_xscale): Delete.
32380         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32381         for Xscale variant architectures.
32382         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32383
32384 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32385
32386         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32387         can_shift.
32388         (arm_rtx_costs_1): Remove unused variable extra_cost.
32389         (arm_unwind_emit_set): Use variable offset.
32390         (thumb1_output_casesi): Remove unused variable flags.
32391
32392 2010-04-16  Jeff Law  <law@redhat.com>
32393
32394         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32395         needing assignment rather than doing a two-phase assignment.  Remove
32396         unused variable 'm'.
32397
32398 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32399
32400         PR bootstrap/43767
32401         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32402
32403 2010-04-16  Doug Kwan  <dougkwan@google.com>
32404
32405         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32406         (next_operand_entry_id): New static variable.
32407         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32408         (add_to_ops_vec): Assigned unique ID to operand entry.
32409         (struct oecount_s): New field ID.
32410         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32411         (undistribute_ops_list): Assign unique IDs to oecounts.
32412         (init_reassoc): reset next_operand_entry_id.
32413
32414 2010-04-16  Doug Kwan  <dougkwan@google.com>
32415
32416         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32417         missing left parenthesis.
32418
32419 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32420
32421         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32422         *btdi_rex64 using SWI48 mode iterator.
32423         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32424         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32425         *jcc_btdi_mask_rex64.
32426
32427 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32428
32429         * double-int.h (tree_to_double_int): Convert to macro.
32430         * double-int.c (tree_to_double_int): Remove.
32431
32432 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32433
32434         PR debug/43762
32435         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32436         with want_address 2 and in case a single element list might be
32437         possible, call it again with want_address 0.
32438
32439 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32440
32441         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32442         case 'W' print operands for HI mode.
32443         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32444         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32445         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32446         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32447
32448         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32449
32450         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32451         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32452         #xx:3 and #xx:4 mode.
32453
32454         * config/h8300/h8300.md (inverted load with HImode dest): Add
32455         support for H8300SX.
32456
32457         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32458         satisfy 'U' constraint.
32459
32460 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32461
32462         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32463         * configure: Regenerate.
32464         * config.in: Regenerate.
32465         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32466         works.
32467
32468 2010-04-16  Richard Guenther  <rguenther@suse.de>
32469
32470         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32471         (struct tree_decl_common): ... here.
32472         (DECL_PT_UID): Adjust.
32473         (SET_DECL_PT_UID): Likewise.
32474         (DECL_PT_UID_SET_P): Likewise.
32475
32476 2010-04-16  Richard Guenther  <rguenther@suse.de>
32477
32478         PR tree-optimization/43572
32479         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32480         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32481         * tree-flow.h (is_call_clobbered): Remove.
32482         * tree-flow-inline.h (is_call_clobbered): Likewise.
32483         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32484         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32485         (execute_return_slot_opt): Adjust.
32486         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32487         check for call clobbered vars here.
32488         (find_tail_calls): Move tailcall verification to the
32489         proper place.
32490
32491 2010-04-16  Diego Novillo  <dnovillo@google.com>
32492
32493         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32494
32495 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32496
32497         PR target/40603
32498         * config/arm/arm.md (cbranchqi4): New pattern.
32499         * config/arm/predicates.md (const0_operand,
32500         cbranchqi4_comparison_operator): New predicates.
32501
32502 2010-04-16  Richard Guenther  <rguenther@suse.de>
32503
32504         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32505         (dump_gimple_stmt): Likewise.
32506
32507 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32508
32509         * recog.h (struct recog_data): New field is_operator.
32510         (struct insn_operand_data): New field is_operator.
32511         * recog.c (extract_insn): Set recog_data.is_operator.
32512         * genoutput.c (output_operand_data): Emit code to set the
32513         is_operator field.
32514         * reload.c (find_reloads): Use it rather than testing for an
32515         empty constraint string.
32516
32517         PR target/41514
32518         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32519         If the previous insn is a cbranchsi4_insn with the same arguments,
32520         omit the compare instruction.
32521
32522         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32523         register, inputs must be low registers and we need a low register
32524         scratch.  Handle alternative 2 like alternative 3.
32525
32526 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32527
32528         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32529         don't call get_addr on both.  If one expression is a VALUE and
32530         the other a REG, check VALUE's locs if the REG isn't among them.
32531
32532 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32533
32534         * config/sh/sh.h (sh_frame_pointer_required): New function.
32535         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32536         (flag_omit_frame_pointer) Set.
32537         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32538         (rounded_frame_size): Adjust size with outgoing_args_size.
32539         (sh_set_return_address): Must return from stack pointer.
32540         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32541         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32542         (ACCUMULATE_OUTGOING_ARGS): Define.
32543         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32544         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32545
32546 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32547
32548         PR target/43471
32549         * config/sh/sh.c (sh_legitimize_reload_address): Use
32550         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32551         Remove a unneeded check for offset_base.
32552
32553 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32554
32555         * configure: Regenerated.
32556
32557 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32558
32559         * config/s390/s390.c (s390_call_save_register_used): Switch back
32560         to HARD_REGNO_NREGS.
32561
32562 2010-04-15  Richard Guenther  <rguenther@suse.de>
32563
32564         * alias.c (alias_set_subset_of): Handle alias-set zero
32565         child properly.
32566
32567 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32568             Julian Brown  <julian@codesourcery.com>
32569
32570         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32571         alternatives according to use of high and low regs.
32572         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32573         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32574         optimizing for size on Thumb-2.
32575
32576 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32577
32578         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32579
32580 2010-04-15  Richard Guenther  <rguenther@suse.de>
32581
32582         * tree-ssa-structalias.c (struct variable_info): Add
32583         is_fn_info flag.
32584         (new_var_info): Initialize it.
32585         (dump_constraints): Support printing last added constraints.
32586         (debug_constraints): Adjust.
32587         (dump_constraint_graph): Likewise.
32588         (make_heapvar_for): Check for NULL cfun.
32589         (get_function_part_constraint): New function.
32590         (get_fi_for_callee): Likewise.
32591         (find_func_aliases): Properly implement IPA PTA constraints.
32592         (process_ipa_clobber): New function.
32593         (find_func_clobbers): Likewise.
32594         (insert_into_field_list_sorted): Remove.
32595         (create_function_info_for): Properly allocate vars for IPA mode.
32596         Do not use insert_into_field_list_sorted.
32597         (create_variable_info_for): Properly generate constraints for
32598         global vars in IPA mode.
32599         (dump_solution_for_var): Always dump the solution.
32600         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32601         (find_what_var_points_to): Adjust.
32602         (pt_solution_set): Change.
32603         (pt_solution_ior_into): New function.
32604         (pt_solution_empty_p): Export.
32605         (pt_solution_includes_global): Adjust.
32606         (pt_solution_includes_1): Likewise.
32607         (pt_solutions_intersect_1): Likewise.
32608         (dump_sa_points_to_info): Check some invariants.
32609         (solve_constraints): Move constraint dumping ...
32610         (compute_points_to_sets): ... here.
32611         (ipa_pta_execute): ... and here.
32612         (compute_may_aliases): Do not re-compute points-to info
32613         locally if IPA info is available.
32614         (ipa_escaped_pt): New global var.
32615         (ipa_pta_execute): Properly implement IPA PTA.
32616         * tree-into-ssa.c (dump_decl_set): Support dumping
32617         decls not in referenced-vars.
32618         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32619         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32620         (dump_points_to_solution): Likewise.
32621         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32622         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32623         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32624         (copy_decl_to_var): Copy DECL_PT_UID.
32625         (copy_result_decl_to_var): Likewise.
32626         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32627         (copy_node_stat): Copy it.
32628         * tree.h (DECL_PT_UID): New macro.
32629         (SET_DECL_PT_UID): Likewise.
32630         (DECL_PT_UID_SET_P): Likewise.
32631         (struct tree_decl_minimal): Add pt_uid member.
32632         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32633         (pt_solution_empty_p): Declare.
32634         (pt_solution_set): Adjust.
32635         (ipa_escaped_pt): Declare.
32636         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32637         * gimple-pretty-print.c (pp_points_to_solution): New function.
32638         (dump_gimple_call): Dump call clobber/use information.
32639         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32640         * tree-pass.h (TDF_ALIAS): New dump option.
32641         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32642         * doc/invoke.texi (-fipa-pta): Update documentation.
32643
32644 2010-04-15  Richard Guenther  <rguenther@suse.de>
32645
32646         * Makefile.in (OBJS-common): Add gimple-fold.o.
32647         (gimple-fold.o): New rule.
32648         * tree.h (maybe_fold_offset_to_reference,
32649         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32650         prototypes ...
32651         * gimple.h: ... here.
32652         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32653         may_propagate_address_into_dereference): Move prototypes ...
32654         * gimple.h: ... here.
32655         * tree-ssa-ccp.c (get_symbol_constant_value,
32656         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32657         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32658         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32659         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32660         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32661         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32662         gimplify_and_update_call_from_tree): Move ...
32663         * gimple-fold.c: ... here.  New file.
32664         (ccp_fold_builtin): Rename to ...
32665         (gimple_fold_builtin): ... this.
32666         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32667
32668 2010-04-15  Richard Guenther  <rguenther@suse.de>
32669
32670         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32671         fit_double_type, force_fit_type_double, add_double_with_sign,
32672         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32673         lrotate_double, rrotate_double, div_and_round_double): Move ...
32674         * double-int.c: ... here.
32675         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32676         add_double, neg_double, mul_double_with_sign, mul_double,
32677         lshift_double, rshift_double, lrotate_double, rrotate_double,
32678         div_and_round_double): Move prototypes ...
32679         * double-int.h: ... here.
32680
32681 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32682
32683         PR target/43742
32684         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32685         matching constraints to ensure inputs match the output.
32686
32687 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32688
32689         PR target/43742
32690         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32691         in an input-only operand.
32692
32693 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32694
32695         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32696         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32697         (double_int_negative_p): Convert to static inline function.
32698         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32699         (double_int_negative_p): Remove.
32700         * tree.h (lshift_double, rshift_double):
32701         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32702         * fold-const.c (fold_convert_const_int_from_real,
32703         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32704         (lshift_double): Change type of arith argument to bool.
32705         (rshift_double): Change type of arith argument to bool. Correct
32706         comment.
32707         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32708
32709 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32710
32711         PR target/21803
32712         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32713         at the start and end of the then/else blocks, and omit them from the
32714         conversion.
32715         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32716         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32717         (flow_find_head_matching_sequence): New function.
32718         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32719         * basic-block.h (flow_find_cross_jump,
32720         flow_find_head_matching_sequence): Declare functions.
32721
32722 2010-04-14  Jason Merrill  <jason@redhat.com>
32723
32724         PR c++/36625
32725         * c-common.c (attribute_takes_identifier_p): New fn.
32726         * c-common.h: Declare it.
32727
32728 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32729
32730         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32731         splitter condition.
32732         (*udivmod<mode>4): Ditto.
32733
32734 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32735
32736         * config/i386/i386.md (maxmin_int): Rename code attribute from
32737         maxminiprefix and update all users.
32738         (maxmin_float): Ditto from maxminfprefix.
32739         (logic): Ditto from logicprefix.
32740         (absneg_mnemonic): Ditto from absnegprefix.
32741         * config/i386/mmx.md: Update all users of maxminiprefix,
32742         maxminfprefix and logicprefix for rename.
32743         * config/i386/sse.md: Ditto.
32744         * config/i386/sync.md (sync_<code><mode>): Update for
32745         logicprefix rename.
32746
32747 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32748
32749         PR 42966
32750         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32751         warnings converted to errors.
32752
32753 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32754
32755         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32756         used insn_type variable.
32757         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32758         to avoid set-but-not-used warning.
32759
32760 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32761
32762         * df-core.c (df_ref_debug): Change format string placeholder
32763         from 0x%x to %#x.
32764         * dwarf2asm.c (dw2_asm_output_data_raw,
32765         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32766         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32767         * dwarf2out.c (output_cfi, output_cfi_directive,
32768         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32769         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32770         Ditto.
32771         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32772         * print-rtl.c (print_rtx): Ditto.
32773
32774 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32775
32776         PR middle-end/42694
32777         * builtins.c (expand_builtin_pow_root): New function to expand pow
32778         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32779         series of sqrt and cbrt calls under -ffast-math.
32780         (expand_builtin_pow): Call it.
32781
32782 2010-04-14  Michael Matz  <matz@suse.de>
32783
32784         PR tree-optimization/42963
32785         * tree-cfg.c (touched_switch_bbs): New static variable.
32786         (group_case_labels_stmt): New function broken out from ...
32787         (group_case_labels): ... here, use the above.
32788         (start_recording_case_labels): Allocate touched_switch_bbs.
32789         (end_recording_case_labels): Deallocate it, call
32790         group_case_labels_stmt.
32791         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32792
32793 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32794
32795         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32796         from insn template.
32797
32798 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32799
32800         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32801
32802 2010-04-13  Jan Hubicka  <jh@suse.cz>
32803
32804         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32805         of optimized out static functions.
32806         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32807         cost computation.  Also sanity check for overflows.
32808         (update_caller_keys): Update cgraph_edge_badness call; properly
32809         update fibheap and sanity check that it is up to date.
32810         (add_new_edges_to_heap): Update cgraph_edge_badness.
32811         (cgraph_decide_inlining_of_small_function): Likewise;
32812         add sanity checking that badness in heap is up to date;
32813         improve dumping of reason; Update badness of calls to the
32814         offline copy of function currently inlined; dump badness
32815         of functions not inlined because of unit growth limits.
32816
32817 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32818
32819         PR middle-end/32628
32820         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32821         because of sign-extension change when converting to sizetype here...
32822         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32823
32824         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32825         the folding to constants.  Remove redundant final conversion.
32826         (fold_binary) <associate>: Do not associate if the re-association of
32827         constants alone overflows.
32828         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32829         to the end of the list.
32830         (multiple_of_p) <COND_EXPR>: New case.
32831
32832 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32833
32834         * opt-functions.awk (opt_sanitized_name): New.
32835         (opt_enum): New.
32836         * optc-gen.awk: Use it
32837         * opth-gen.awk: Use it.
32838
32839 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32840
32841         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32842         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32843         children.  Call replace_uses_with_default_def_ssa_name to handle
32844         SSA_NAES on lhs.
32845
32846 2010-04-13  Michael Matz  <matz@suse.de>
32847
32848         PR middle-end/43730
32849         * builtins.c (expand_builtin_interclass_mathfn): Also create
32850         a register if the predicate doesn't match.
32851
32852 2010-04-13  Diego Novillo  <dnovillo@google.com>
32853
32854         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32855         * c-pch.c: Include timevar.h.
32856         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32857         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32858         * ggc-common.c: Include timevar.h.
32859         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32860         * timevar.def (TV_PCH_SAVE): Define.
32861         (TV_PCH_CPP_SAVE): Define.
32862         (TV_PCH_PTR_REALLOC): Define.
32863         (TV_PCH_PTR_SORT): Define.
32864         (TV_PCH_RESTORE): Define.
32865         (TV_PCH_CPP_RESTORE): Define.
32866
32867 2010-04-13  Michael Matz  <matz@suse.de>
32868
32869         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32870         into MINUS_EXPRs.
32871         (can_reassociate_p): New function.
32872         (break_up_subtract_bb, reassociate_bb): Use it.
32873
32874 2010-04-13  Richard Guenther  <rguenther@suse.de>
32875
32876         PR bootstrap/43737
32877         * builtins.c (c_readstr): Fix assert.
32878
32879 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32880
32881         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32882         when generating cltd insn.
32883
32884         (*ashl<mode>3_1): Remove special handling for register operand 2.
32885         (*ashlsi3_1_zext): Ditto.
32886         (*ashlhi3_1): Ditto.
32887         (*ashlhi3_1_lea): Ditto.
32888         (*ashlqi3_1): Ditto.
32889         (*ashlqi3_1_lea): Ditto.
32890         (*<shiftrt_insn><mode>3_1): Ditto.
32891         (*<shiftrt_insn>si3_1_zext): Ditto.
32892         (*<shiftrt_insn>qi3_1_slp): Ditto.
32893         (*<rotate_insn><mode>3_1): Ditto.
32894         (*<rotate_insn>si3_1_zext): Ditto.
32895         (*<rotate_insn>qi3_1_slp): Ditto.
32896
32897 2010-04-13  Richard Guenther  <rguenther@suse.de>
32898
32899         * tree-ssa-structalias.c (callused_id): Remove.
32900         (call_stmt_vars): New.
32901         (get_call_vi): Likewise.
32902         (lookup_call_use_vi): Likewise.
32903         (lookup_call_clobber_vi): Likewise.
32904         (get_call_use_vi): Likewise.
32905         (get_call_clobber_vi): Likewise.
32906         (make_transitive_closure_constraints): Likewise.
32907         (handle_const_call): Adjust to do per-call call-used handling.
32908         (handle_pure_call): Likewise.
32909         (find_what_var_points_to): Remove general callused handling.
32910         (init_base_vars): Likewise.
32911         (init_alias_vars): Initialize call_stmt_vars.
32912         (compute_points_to_sets): Process call-used and call-clobbered
32913         vars for call statements.
32914         (delete_points_to_sets): Free call_stmt_vars.
32915
32916 2010-04-13  Richard Guenther  <rguenther@suse.de>
32917
32918         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32919         Only add RW dependence for dependence distance zero.
32920         Adjust maximal vectorization factor according to dependences.
32921         Move alignment handling ...
32922         (vect_find_same_alignment_drs): ... here.  New function.
32923         (vect_analyze_data_ref_dependences): Adjust.
32924         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32925         (vect_analyze_data_refs): Adjust minimal vectorization factor
32926         according to data references.
32927         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32928         dependences before determining the vectorization factor.
32929         Analyze alignment after determining the vectorization factor.
32930         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32931         dependences before alignment.
32932         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32933         Adjust prototype.
32934         (vect_analyze_data_refs): Likewise.
32935         (MAX_VECTORIZATION_FACTOR): New define.
32936
32937 2010-04-13  Duncan Sands  <baldrick@free.fr>
32938
32939         * except.h (lang_eh_type_covers): Remove.
32940         * except.c (lang_eh_type_covers): Likewise.
32941
32942 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32943             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32944
32945         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32946         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32947         UNITS_PER_LONG where it is ABI relevant.
32948         (s390_return_addr_rtx): Likewise.
32949         (s390_back_chain_rtx): Likewise.
32950         (s390_frame_area): Likewise.
32951         (s390_frame_info): Likewise.
32952         (s390_initial_elimination_offset): Likewise.
32953         (save_gprs): Likewise.
32954         (s390_emit_prologue): Likewise.
32955         (s390_emit_epilogue): Likewise.
32956         (s390_function_arg_advance): Likewise.
32957         (s390_function_arg): Likewise.
32958         (s390_va_start): Likewise.
32959         (s390_gimplify_va_arg): Likewise.
32960         (s390_function_profiler): Likewise.
32961         (s390_optimize_prologue): Likewise.
32962         (s390_rtx_costs): Likewise.
32963         (s390_secondary_reload): Likewise.
32964         (s390_promote_function_mode): Likewise.
32965         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32966         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32967         registers available.
32968         (s390_unwind_word_mode): New function.
32969         (s390_function_value): Split 64 bit values into register pair if
32970         used as return value.
32971         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32972         function call parameters.  Handle parallels.
32973         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32974         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32975         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32976         (s390_expand_setmem): Remove unused variable src_addr.
32977         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32978         deal with 64 bit registers.
32979         * config/s390/s390.h: Define __zarch__ predefined macro.
32980         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32981         (UNITS_PER_LONG): New macro.
32982         * libjava/include/s390-signal.h: Define extended ucontext
32983         structure containing the upper halfs of the 64 bit registers.
32984
32985 2010-04-13  Simon Baldwin  <simonb@google.com>
32986
32987         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32988
32989 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32990
32991         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32992         rvalue on the RHS if the LHS is of a non-renamable type.
32993         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32994
32995 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32996
32997         * gcc.c (cc1_options): Handle -iplugindir before processing
32998         the cc1 spec. Only add -iplugindir once.
32999         (cpp_unique_options): Add -iplugindir option if -fplugin* options
33000         found.
33001         * common.opt (iplugindir): Remove `Separate' property, initialize.
33002         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
33003         option.
33004         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
33005         (distclean): Remove plugin dir.
33006         * doc/invoke.texi: Document -iplugindir.
33007
33008 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
33009
33010         * doc/plugins.texi (Loading Plugins): Document short
33011         -fplugin=foo option.
33012         (Plugin API): Mention default_plugin_dir_name function.
33013
33014         * gcc.c (find_file_spec_function): Add new declaration.
33015         (static_spec_func): Use it for "find-file".
33016         (find_file_spec_function): Add new function.
33017         (cc1_options): Add -iplugindir option if -fplugin* options found.
33018
33019         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
33020
33021         * plugin.c (add_new_plugin): Updated comment, and handle short
33022         plugin name.
33023         (default_plugin_dir_name): Added new function.
33024
33025         * common.opt (iplugindir): New option to set the plugin directory.
33026
33027 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
33028
33029         * config/i386/i386.md (any_rotate): New code iterator.
33030         (rotate_insn): New code attribute.
33031         (rotate): Ditto.
33032         (SWIM124): New mode iterator.
33033         (<rotate_insn>ti3): New expander.
33034         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
33035         any_rotate code iterator.
33036         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
33037         using any_rotate code iterator and SWIM124 mode iterator.
33038         (ix86_rotlti3): New insn_and_split pattern.
33039         (ix86_rotrti3): Ditto.
33040         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
33041         ix86_rotl{di,ti}3 patterns.
33042         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
33043         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
33044         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
33045         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
33046         code iterator and SWI mode iterator.
33047         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
33048         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
33049         code iterator.
33050         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
33051         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
33052         (bswap rotatert splitter): Add splitter.
33053         (bswap splitter): Macroize splitter using any_rotate code iterator.
33054         Add insn predicate to split only for TARGET_USE_XCHGB or when
33055         optimizing function for size.
33056
33057 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33058
33059         * config/pa/pa.c (emit_move_sequence): Remove use of
33060         deleted variable flag_argument_noalias.
33061
33062 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33063
33064         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
33065         configurations.
33066         Add to unsupported targets list.
33067         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
33068         sparc*-sun-solaris2.[567]* from target lists.
33069         * configure: Regenerate.
33070         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
33071         removal.
33072         Remove Solaris 7 patch references.
33073         (Specific, sparc-sun-solaris2.7): Removed.
33074         (sparc-sun-solaris2*): Update Solaris 7 example.
33075         (sparc64-*-solaris2*): Likewise.
33076
33077 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33078
33079         * config.build (alpha*-dec-osf4*): Remove.
33080         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
33081         of obsolete configurations.
33082         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
33083         support.
33084         * config/alpha/t-osf4: Renamed to ...
33085         * config/alpha/t-osf5: ... this.
33086         * config/alpha/osf.h: Renamed to ...
33087         * config/alpha/osf5.h: ... this.
33088         Merged old osf5.h contents.
33089         Update comments.
33090         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
33091         (EXTRA_SPECS): Removed.
33092         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
33093         reflect removal of Tru64 UNIX V4.0/V5.0 support.
33094         Document that.
33095
33096 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33097
33098         * doc/contrib.texi (Contributors, Rainer Orth): Update.
33099
33100 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
33101
33102         PR/43702
33103         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
33104         __thiscall convention.
33105
33106 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33107
33108         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
33109         orig_base.
33110         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
33111
33112 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33113
33114         * function.c (assign_parms_initialize_all): Add unused attribute
33115         to fntype.
33116
33117 2010-04-12  Richard Guenther  <rguenther@suse.de>
33118
33119         * gsstruct.def (GSS_CALL): New.
33120         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
33121         * gimple.h: Include tree-ssa-alias.h.
33122         (struct gimple_statement_call): New.
33123         (union gimple_statement_struct_d): Add gimple_call member.
33124         (gimple_call_reset_alias_info): Declare.
33125         (gimple_call_use_set): New function.
33126         (gimple_call_clobber_set): Likewise.
33127         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
33128         * gimple.c (gimple_call_reset_alias_info): New function.
33129         (gimple_build_call_1): Call it.
33130         * lto-streamer-in.c (input_gimple_stmt): Likewise.
33131         * tree-inline.c (remap_gimple_stmt): Likewise.
33132         (expand_call_inline): Remove callused handling.
33133         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
33134         * tree-dfa.c (dump_variable): Likewise.
33135         * tree-parloops.c (parallelize_loops): Likewise.
33136         * tree-ssa.c (init_tree_ssa): Likewise.
33137         (delete_tree_ssa): Likewise.
33138         * tree-flow-inline.h (is_call_used): Remove.
33139         * tree-flow.h (struct gimple_df): Remove callused member.
33140         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
33141         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
33142         (ref_maybe_used_by_call_p_1): Simplify.
33143         (call_may_clobber_ref_p_1): Likewise.
33144         * tree-ssa-structalias.c (compute_points_to_sets): Set
33145         the call stmt used and clobbered sets.
33146         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
33147         (find_tail_calls): Verify the tail call.
33148
33149 2010-04-12  Richard Guenther  <rguenther@suse.de>
33150
33151         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
33152         single-iteration always-inline inlining.
33153         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
33154         (cgraph_decide_inlining): Do not handle always-inline specially.
33155         (try_inline): Remove always-inline cycle detection special case.
33156         Do not recurse on always-inlines.
33157         (cgraph_early_inlining): Do not iterate if not optimizing.
33158         (cgraph_gate_early_inlining): remove.
33159         (pass_early_inline): Run unconditionally.
33160         (gate_cgraph_decide_inlining): New function.
33161         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
33162         not inlining or optimizing.
33163         (cgraph_decide_inlining_of_small_functions): Also consider
33164         always-inline functions.
33165         (cgraph_default_inline_p): Return true for nodes which should
33166         disregard inline limits.
33167         (estimate_function_body_sizes): Assume zero size and time for
33168         nodes which are marked as disregarding inline limits.
33169         (cgraph_decide_recursive_inlining): Do not perform recursive
33170         inlining on always-inline nodes.
33171
33172 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
33173
33174         PR bootstrap/43699
33175         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
33176         for exprs satisfying handled_component_p.
33177
33178 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
33179
33180         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
33181         non-constant aggregate elements.
33182
33183         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
33184         is a real initialization.
33185
33186 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
33187
33188         PR c/36774
33189         * c-decl.c (start_function): Move forward check for nested function.
33190
33191 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
33192
33193         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
33194         * config/sh/sh.c: Include reload.h.
33195         (sh_legitimize_reload_address): New.
33196         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
33197         sh_legitimize_reload_address.
33198
33199 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33200
33201         * config/sh/sh.md (*movqi_pop): New insn pattern.
33202         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
33203
33204 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33205
33206         * config/i386/i386.md (any_shiftrt): New code iterator.
33207         (shiftrt_insn): New code attribute.
33208         (shiftrt): Ditto.
33209         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
33210         using any_shiftrt code iterator.
33211         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
33212         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
33213         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
33214         pattern from corresponding peephole2 patterns.
33215         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
33216         using any_shiftrt code iterator.
33217         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
33218         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
33219         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
33220         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
33221         *{ashr,lshr}<mode>3_cmp_zext.
33222         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
33223
33224 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33225
33226         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
33227         scratch register.
33228         (*lshr<mode>3_cconly): Ditto.
33229
33230 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33231
33232         * config/i386/i386.md (lshr<mode>3): Macroize expander from
33233         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33234         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33235         pattern from *lshr{di,ti}3_1 and corresponding splitters using
33236         DWI mode iterator.
33237         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33238         from corresponding peephole2 patterns.
33239         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
33240         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
33241         and *lshrdi3_1_rex64 using SWI mode iterator.
33242         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
33243         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
33244         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
33245         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
33246         and *lshrdi3_cmp_rex64 using SWI mode iterator.
33247         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
33248         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
33249         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
33250         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
33251         SWI mode iterator.
33252
33253 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
33254
33255         * config/i386/i386.md (ashr<mode>3): Macroize expander from
33256         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33257         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33258         pattern from *ashr{di,ti}3_1 and corresponding splitters using
33259         DWI mode iterator.
33260         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33261         from corresponding peephole2 patterns.
33262         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
33263         (ashrsi3_cvt): Rename from ashrsi3_31.
33264         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
33265         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
33266         and x86_64_shift_adj_3 using SWI48 mode iterator.
33267         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
33268         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
33269         and *ashrdi3_1_rex64 using SWI mode iterator.
33270         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
33271         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
33272         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
33273         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
33274         and *ashrdi3_cmp_rex64 using SWI mode iterator.
33275         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
33276         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
33277         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
33278         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
33279         SWI mode iterator.
33280         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
33281         * config/i386/i386.c (ix86_split_ashr): Update for renamed
33282         x86_shift<mode>_adj_3 expanders.
33283
33284 2010-04-10  Wei Guozhi  <carrot@google.com>
33285
33286         PR target/42601
33287         * config/arm/arm.c (arm_pic_static_addr): New function.
33288         (legitimize_pic_address): Call arm_pic_static_addr when it detects
33289         a static symbol.
33290         (arm_output_addr_const_extra): Output expression for new pattern.
33291         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33292
33293 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33294
33295         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33296         not enabled.
33297
33298         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33299         * web.c: Include "insn-config.h" and "recog.h".
33300         (union_match_dups): New function.
33301         (web_main): Call it.
33302         (union_defs): Don't try to recognize match_dups.
33303
33304         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33305         if doing so would replace the entire pattern.
33306
33307 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33308
33309         PR target/43707
33310         PR target/43709
33311         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33312         and splitter pattern.  Change splitter operand 1 predicate to
33313         nonmemory_operand.
33314
33315 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33316
33317         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33318         lattices are addresses of CONST_DECLs with the same initial value.
33319         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33320         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33321
33322 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33323             Bernd Schmidt  <bernds@codesourcery.com>
33324
33325         * loop-invariant.c (replace_uses): New static function.
33326         (move_invariant_reg): Use it to ensure we can replace the uses.
33327
33328 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33329
33330         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33331         function template.
33332         (picochip_override_options): Enable section anchors only above -O1.
33333         (picochip_reorg): Fixed a couple of build warnings.
33334
33335 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33336
33337         * configure.ac (plugin -rdynamic test): Log result.
33338         * configure: Regenerate.
33339         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33340         (RDYNAMIC_SPEC): Define.
33341         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33342
33343 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33344
33345         * configure.ac: Determine Sun ld version numbers.
33346         (comdat_group): Restrict GNU ld version checks to gld.
33347         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33348         (enable_comdat): Support --enable-comdat.
33349         * configure: Regenerate.
33350         * doc/install.texi (Configuration): Document --enable-comdat.
33351
33352 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33353
33354         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33355         * config/sol2-gld.h: ... here.
33356         * config.gcc (sparc*-*-solaris2*): Reflect this.
33357         (i[34567]86-*-solaris2*): Use it.
33358
33359 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33360
33361         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33362         setup_clocks_p.
33363         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33364
33365 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33366
33367         PR 42965
33368         * diagnostic.c (diagnostic_initialize): Initialize
33369         some_warnings_are_errors.
33370         (diagnostic_finish): New.
33371         (diagnostic_action_after_output): Call it before exiting.
33372         (diagnostic_report_diagnostic): Do not print message here. Set
33373         some_warnings_are_errors.
33374         * diagnostic.h (diagnostic_context): Delete
33375         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33376         (diagnostic_finish): Declare.
33377         * toplev.c (toplev_main): Call it before exit.
33378
33379 2010-04-09  Jason Merrill  <jason@redhat.com>
33380
33381         PR c++/42623
33382         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33383         for incomplete type.
33384
33385         PR c++/41788
33386         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33387         based on a warning flag.
33388
33389 2010-04-09  Richard Guenther  <rguenther@suse.de>
33390
33391         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33392
33393 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33394
33395         PR bootstrap/43684
33396         * varasm.c (default_assemble_visibility): Wrap vars that are
33397         set, but unused, by targets without GAS.
33398         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33399         Remove set, but unused, vars.
33400         (rs6000_legitimize_tls_address): Likewise.
33401         (altivec_expand_dst_builtin): Likewise.
33402         * config/darwin.c (machopic_classify_symbol): Likewise.
33403         (machopic_indirection_name): Likewise.
33404
33405 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33406
33407         * config/i386/i386.md (DWI): New mode iterator.
33408         (S): New mode attribute.
33409         (shift_operand): Ditto.
33410         (shift_immediate_operand): Ditto.
33411         (ashl_input_operand): Ditto.
33412         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33413         using SDWIM mode iterator.
33414         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33415         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33416         DWI mode iterator.
33417         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33418         from corresponding peephole2 patterns.
33419         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33420         and x86_64_shift_adj_1 using SWI48 mode iterator.
33421         (x86_shift<mode>_adj_2): Ditto.
33422         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33423         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33424         using SWI48 mode iterator.
33425         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33426         *ashldi3_cmp_rex64 using SWI mode iterator.
33427         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33428         *ashldi3_cconly_rex64 using SWI mode iterator.
33429         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33430         x86_shift<mode>_adj_{1,2}.
33431         (ix86_split_ashr): Ditto.
33432         (ix86_split_lshr): Ditto.
33433
33434 2010-04-09  Richard Guenther  <rguenther@suse.de>
33435
33436         * target.h (builtin_conversion): Pass in input and output types.
33437         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33438         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33439         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33440         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33441
33442         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33443         Handle AVX modes.
33444         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33445
33446 2010-04-09  Richard Guenther  <rguenther@suse.de>
33447
33448         PR target/43152
33449         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33450
33451 2010-04-09  Richard Guenther  <rguenther@suse.de>
33452
33453         * tree-vectorizer.h (struct _stmt_vec_info): Document
33454         that vectype is the type of the LHS.
33455         (supportable_widening_operation, supportable_narrowing_operation):
33456         Get both input and output vector types as arguments.
33457         (vect_is_simple_use_1): Declare.
33458         (get_same_sized_vectype): Likewise.
33459         * tree-vect-loop.c (vect_determine_vectorization_factor):
33460         Set STMT_VINFO_VECTYPE to the vector type of the def.
33461         (vectorizable_reduction): Adjust.
33462         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33463         Adjust.  Specify the output vector type.
33464         (vect_pattern_recog_1): Adjust.
33465         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33466         (vectorizable_call): Adjust.
33467         (vectorizable_conversion): Likewise.
33468         (vectorizable_operation): Likewise.
33469         (vectorizable_type_demotion): Likewise.
33470         (vectorizable_type_promotion): Likewise.
33471         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33472         the def.
33473         (vect_is_simple_use_1): New function.
33474         (supportable_widening_operation): Get both input and output
33475         vector types.
33476         (supportable_narrowing_operation): Likewise.
33477         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33478
33479 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33480
33481         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33482         __thiscall and _thiscall as predefined macros.
33483         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33484         thiscall attribute handling.
33485         (ix86_comp_type_attributes): Likewise.
33486         (ix86_function_regparm): Likewise.
33487         (ix86_return_pops_args): Likewise.
33488         (init_cumulative_args): Likewise.
33489         (find_drap_reg): Likewise.
33490         (ix86_static_chain): Likewise.
33491         (x86_this_parameter): Likewise.
33492         (x86_output_mi_thunk): Likewise.
33493         (ix86_attribute_table): Add description for thiscall attribute.
33494         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33495         * doc/extend.texi: Add documentation for thiscall.
33496
33497 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33498
33499         PR c++/28584
33500         * c.opt (Wint-to-pointer-cast): Available in C++.
33501         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33502
33503 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33504
33505         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33506         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33507         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33508         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33509         function type instead.  Reorder and simplify checks.
33510
33511         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33512
33513 2010-04-08  Jing Yu  <jingyu@google.com>
33514             Zdenek Dvorak  <ook@ucw.cz>
33515
33516         PR tree-optimization/42720
33517         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33518         loop unswitch conditions here from ...
33519         (tree_unswitch_single_loop): ... here.
33520
33521 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33522
33523         * tree-if-conv.c: Fix comments and simplify logic.
33524
33525 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33526
33527         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33528         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33529         (main_tree_if_conversion): Update call to tree_if_conversion.
33530
33531 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33532
33533         PR 42485
33534         * doc/invoke.texi (-b,-V): Delete.
33535         * doc/tm.texi: Do not mention -b.
33536         * gcc.c (display_help): Delete -b and -V.
33537         (process_command): Delete -b and -V.
33538         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33539
33540 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33541             Wolfgang Gellerich  <gellerich@de.ibm.com>
33542
33543         Implement target hook for loop unrolling
33544         * target.h (loop_unroll_adjust): Add a new target hook function.
33545         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33546         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33547         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33548         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33549         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33550         target hook.
33551         (decide_unroll_stupid): Likewise.
33552
33553 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33554
33555         PR target/43643
33556         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33557
33558 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33559
33560         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33561         (Specific, *-*-solaris2*): Likewise.
33562         Don't prefer Sun as over GNU as.
33563
33564 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33565
33566         * config/s390/s390.c (override_options): Adjust the z10 defaults
33567         for max-unroll-times, max-completely-peeled-insns
33568         and max-completely-peel-times.
33569
33570 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33571
33572         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33573         instructions for z10.
33574         (s390_expand_setmem): Likewise.
33575         (s390_expand_cmpmem): Likewise.
33576
33577 2010-04-08  Richard Guenther  <rguenther@suse.de>
33578
33579         PR tree-optimization/43679
33580         * tree-ssa-pre.c (eliminate): Only propagate copies.
33581
33582 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33583
33584         PR bootstrap/43681
33585         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33586         set but not used variable warning.
33587
33588 2010-04-08  Wei Guozhi  <carrot@google.com>
33589
33590         PR target/41653
33591         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33592         (arm_size_rtx_costs): Call the new function when optimized for size.
33593
33594 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33595
33596         PR debug/43670
33597         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33598         op0 is not a MEM, just return NULL instead of assertion
33599         failure.
33600         (discover_nonconstant_array_refs): Don't walk debug stmts.
33601
33602 2010-04-08  Doug Kwan  <dougkwan@google.com>
33603
33604         * configure.ac: Recognize gold and do not use its version number
33605         to test ld features.
33606         * configure: Regenerate.
33607
33608 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33609
33610         PR middle-end/40815
33611         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33612         (negate_value): Move code to push elements to broken_up_substracts ...
33613         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33614         negative pair to plus_negates.
33615         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33616
33617 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33618
33619         * doc/install.texi (Configuration): Move description of
33620         --enable-lto, --with-libelf*, --enable-gold from Java section to
33621         general section.
33622
33623         * doc/generic.texi (Working with declarations)
33624         (Function Properties, C and C++ Trees): Fix typos.
33625         * doc/sourcebuild.texi (Top Level): Likewise.
33626
33627 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33628
33629         PR c/18624
33630         * tree.h (DECL_READ_P): Define.
33631         (struct tree_decl_common): Add decl_read_flag.
33632         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33633         a set but not used warning.
33634         (merge_decls): Merge DECL_READ_P flag.
33635         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33636         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33637         * c-common.c (handle_used_attribute, handle_unused_attribute):
33638         Likewise.
33639         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33640         New prototypes.
33641         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33642         New functions.
33643         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33644         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33645         c_parser_binary_expression, c_parser_cast_expression,
33646         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33647         Call default_function_array_read_conversion instead of
33648         default_function_array_conversion where needed.
33649         (c_parser_unary_expression, c_parser_conditional_expression,
33650         c_parser_postfix_expression_after_primary, c_parser_initelt):
33651         Likewise.  Call mark_exp_read where needed.
33652         (c_parser_statement_after_labels, c_parser_asm_operands,
33653         c_parser_typeof_specifier, c_parser_sizeof_expression,
33654         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33655         where needed.
33656         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33657         New.
33658         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33659         (warn_unused_but_set_parameter): Default to warn_unused
33660         && extra_warnings.
33661         * doc/invoke.texi: Document -Wunused-but-set-variable and
33662         -Wunused-but-set-parameter.
33663
33664         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33665         used count variable.
33666         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33667         when operandN variables aren't used in the body of the expander
33668         or splitter.
33669         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33670         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33671         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33672         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33673         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33674         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33675         * tree.c (PROCESS_ARG): Likewise.
33676
33677 2010-04-07  Simon Baldwin  <simonb@google.com>
33678
33679         * diagnostic.h (diagnostic_override_option_index): New macro to
33680         set a diagnostic's option_index.
33681         * c-tree.h (c_cpp_error): Add warning reason argument.
33682         * opts.c (_warning_as_error_callback): New.
33683         (register_warning_as_error_callback): Store callback for
33684         warnings enabled via enable_warning_as_error.
33685         (enable_warning_as_error): Call callback, minor code tidy.
33686         * opts.h (register_warning_as_error_callback): Declare.
33687         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33688         response to -Werror=.
33689         (c_common_init_options): Register warning_as_error_callback in opts.c.
33690         * common.opt: Add -Wno-cpp option.
33691         * c-common.c (struct reason_option_codes_t): Map cpp warning
33692         reason codes to gcc option indexes.
33693         * (c_option_controlling_cpp_error): New function, lookup the gcc
33694         option index for a cpp warning reason code.
33695         * (c_cpp_error): Add warning reason argument, call
33696         c_option_controlling_cpp_error for diagnostic_override_option_index.
33697         * doc/invoke.texi: Document -Wno-cpp.
33698
33699 2010-04-07  Richard Guenther  <rguenther@suse.de>
33700
33701         * ipa-reference.c (mark_load): Use get_base_address.
33702         (mark_store): Likewise.
33703
33704         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33705         inserting GIMPLE_NOPs into the IL.
33706         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33707         Explicitly strip handled components and indirect references.
33708
33709         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33710         folding address expressions.
33711         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33712         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33713         operand_equal_p to compare decls.
33714         (ptr_deref_may_alias_decl_p): Likewise.
33715         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33716         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33717         Handle reversed comparison ops.
33718         * tree-sra.c (asm_visit_addr): Use get_base_address.
33719         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33720         * ipa-reference.c (mark_address): Use get_base_address.
33721
33722 2010-04-07  Richard Guenther  <rguenther@suse.de>
33723
33724         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33725         Propagate constants everywhere.
33726
33727 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33728
33729         PR debug/43516
33730         * tree.c (MAX_INT_CACHED_PREC): Define.
33731         (nonstandard_integer_type_cache): New array.
33732         (build_nonstandard_integer_type): Cache results for precision
33733         <= MAX_INT_CACHED_PREC.
33734
33735 2010-04-07  Richard Guenther  <rguenther@suse.de>
33736
33737         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33738         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33739         * common.opt: Likewise.
33740         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33741         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33742         (nonoverlapping_memrefs_p): Likewise.
33743         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33744         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33745         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33746         OPT_fargument_noalias_global for backward compatibility.
33747
33748 2010-04-07  Richard Guenther  <rguenther@suse.de>
33749
33750         PR tree-optimization/43270
33751         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33752         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33753         * tree-ssa-pre.c (phi_translate_1): Adjust.
33754         (fully_constant_expression): Split out vn_reference handling to ...
33755         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33756         Fold reads from constant strings.
33757         (vn_reference_lookup): Handle fully constant references.
33758         (vn_reference_lookup_pieces): Likewise.
33759         * Makefile.in (expmed.o-warn): Add -Wno-error.
33760
33761 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33762
33763         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33764
33765 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33766
33767         PR driver/41594
33768         * gcc.c: Add -static-libstdc++ to list of recognized options.
33769
33770 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33771
33772         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33773
33774 2010-04-07  Richard Guenther  <rguenther@suse.de>
33775
33776         PR middle-end/42617
33777         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33778         bases build simple mem attributes to retain points-to information.
33779
33780 2010-04-07  Richard Guenther  <rguenther@suse.de>
33781
33782         PR middle-end/42617
33783         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33784         preserve points-to related information.
33785
33786 2010-04-07  Richard Guenther  <rguenther@suse.de>
33787
33788         PR middle-end/42617
33789         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33790         discard plain indirect references.
33791         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33792         * tree.c (tree_nop_conversion): Likewise.
33793
33794 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33795
33796         PR debug/43628
33797         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33798
33799 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33800
33801         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33802         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33803
33804 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33805
33806         * tree-if-conv.c: Fix indentation and comments.
33807
33808 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33809
33810         * tree-if-conv.c: Sort static functions in topological order.
33811
33812 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33813
33814         * tree-if-conv.c: Fix indentation and comments.
33815
33816 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33817
33818         PR middle-end/43519
33819         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33820         lang_hooks.types.type_for_size instead of
33821         build_nonstandard_integer_type.
33822         When converting an unsigned type to signed, double its precision.
33823         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33824         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33825         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33826         use lb <= ub.
33827
33828 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33829
33830         PR middle-end/43519
33831         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33832         POINTER_PLUS_EXPR for pointer types.
33833
33834 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33835
33836         PR middle-end/43519
33837         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33838         * graphite-clast-to-gimple.c: Include langhooks.h.
33839         (max_signed_precision_type): New.
33840         (max_precision_type): Takes two types as arguments.
33841         (precision_for_value): New.
33842         (precision_for_interval): New.
33843         (gcc_type_for_interval): New.
33844         (gcc_type_for_value): New.
33845         (gcc_type_for_clast_term): New.
33846         (gcc_type_for_clast_red): New.
33847         (gcc_type_for_clast_bin): New.
33848         (gcc_type_for_clast_expr): Split up into several functions.
33849         (gcc_type_for_clast_eq): Rewritten.
33850         (compute_bounds_for_level): New.
33851         (compute_type_for_level_1): New.
33852         (compute_type_for_level): New.
33853         (gcc_type_for_cloog_iv): Removed.
33854         (gcc_type_for_iv_of_clast_loop): Rewritten.
33855         (graphite_create_new_loop): Compute the lower and upper bound types
33856         with gcc_type_for_clast_expr.
33857         (graphite_create_new_loop_guard): Same.
33858         (find_cloog_iv_in_expr): Removed.
33859         (compute_cloog_iv_types_1): Removed.
33860         (compute_cloog_iv_types): Removed.
33861         (gloog): Do not call compute_cloog_iv_types.
33862         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33863         GBB_CLOOG_IV_TYPES.
33864         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33865         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33866         (GBB_CLOOG_IV_TYPES): Removed.
33867
33868 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33869
33870         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33871         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33872         (detect_commutative_reduction): Same.
33873
33874 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33875
33876         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33877         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33878         argument.
33879         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33880         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33881         (rewrite_commutative_reductions_out_of_ssa): Same.
33882         * passes.c (execute_function_todo): Call verify_ssa for every pass
33883         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33884         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33885         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33886         with an extra argument.
33887         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33888         verify_ssa only when the extra argument is true.
33889         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33890         with an extra argument.
33891         (tree_transform_and_unroll_loop): Same.
33892
33893 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33894
33895         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33896         for all the passes of the LNO having LOOP_CLOSED_SSA.
33897         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33898         * tree-loop-distribution.c (pass_loop_distribution): Same.
33899         * tree-pass.h (TODO_verify_loops): Removed.
33900         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33901         (pass_lim): Same.
33902         (pass_tree_unswitch): Same.
33903         (pass_predcom): Same.
33904         (pass_vectorize): Same.
33905         (pass_linear_transform): Same.
33906         (pass_graphite_transforms): Same.
33907         (pass_iv_canon): Same.
33908         (pass_complete_unroll): Same.
33909         (pass_complete_unrolli): Same.
33910         (pass_parallelize_loops): Same.
33911         (pass_loop_prefetch): Same.
33912         (pass_iv_optimize): Same.
33913
33914 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33915
33916         PR middle-end/32824
33917         * passes.c (init_optimization_passes): Move pass_lim before
33918         pass_copy_prop and pass_dce_loop.
33919
33920 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33921
33922         PR target/43667
33923         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33924         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33925         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33926         MULTI_* defines for 4 argument vpermil2p* builtins.
33927
33928 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33929
33930         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33931         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33932         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33933         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33934         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33935         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33936         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33937         Use x86_maybe_negate_const_int to output insn mnemonic.
33938         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33939         check from instruction predicate.  Update comments.
33940         * config/i386/sync.md (sync_add<mode>): Use
33941         x86_maybe_negate_const_int to output insn mnemonic.
33942
33943 2010-04-06  Jan Hubicka  <jh@suse.cz>
33944
33945         PR tree-optimization/42906
33946         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33947         IGNORE_SELF argument.  Set visited_control_parents for fully
33948         processed BBs.
33949         (find_obviously_necessary_stmts): Update call of
33950         mark_control_dependent_edges_necessary.
33951         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33952
33953 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33954
33955         * config/i386/i386.md: Remove comment about 'e' and 'E'
33956         operand modifier.
33957
33958 2010-04-06  Richard Guenther  <rguenther@suse.de>
33959
33960         PR tree-optimization/43627
33961         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33962         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33963         not varying.
33964
33965 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33966
33967         * BASE-VER: Change to 4.6.0.
33968
33969         PR target/43638
33970         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33971         handling.
33972
33973 2010-04-06  Richard Guenther  <rguenther@suse.de>
33974
33975         PR middle-end/43661
33976         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33977
33978 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33979
33980         * doc/invoke.texi (Optimize Options): Document that LTO
33981         won't remove object access purely due to incompatible
33982         declarations.
33983
33984 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33985
33986         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33987         Initialize variable.
33988
33989 2010-04-03  Richard Guenther  <rguenther@suse.de>
33990
33991         PR middle-end/42509
33992         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33993         require a non-NULL MEM_OFFSET.
33994
33995 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33996
33997         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33998         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33999         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
34000         config/alpha/predicates.md, config/arm/arm.md,
34001         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
34002         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
34003         config/darwin9.h, config/darwin.c, config/darwin.h,
34004         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
34005         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
34006         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
34007         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
34008         config/mips/mips.md, config/mn10300/mn10300.c,
34009         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
34010         config/rs6000/aix.h, config/rs6000/dfp.md,
34011         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
34012         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
34013         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
34014         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
34015         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
34016         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
34017         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
34018         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
34019         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
34020         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
34021         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
34022         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
34023         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
34024         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
34025         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
34026         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
34027         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
34028         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
34029         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
34030         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
34031         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
34032         opt-functions.awk, opth-gen.awk, params.def, passes.c,
34033         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
34034         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
34035         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
34036         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
34037         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
34038         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
34039         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
34040         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
34041         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
34042         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
34043         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
34044         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
34045         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
34046         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
34047
34048 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34049
34050         PR other/43620
34051         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
34052         * aclocal.m4: Regenerate.
34053
34054 2010-04-02  Richard Guenther  <rguenther@suse.de>
34055
34056         PR tree-optimization/43629
34057         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
34058         if we have seen a constant value.
34059
34060 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
34061
34062         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
34063
34064 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
34065
34066         PR target/43469
34067         * arm.c (legitimize_tls_address): Adjust call to
34068         gen_tls_load_dot_plus_four.
34069         (arm_note_pic_base): New function.
34070         (arm_cannot_copy_insn_p): Use it.
34071         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
34072         constraint.
34073
34074 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34075
34076         PR bootstrap/43531
34077
34078         Revert:
34079         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34080
34081         * Makefile.in ($(out_object_file)): Depend on
34082         gt-$(basename $(notdir $(out_file))).h.
34083
34084 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
34085
34086         * config.gcc (lm32-*-rtems*): Add t-lm32.
34087
34088 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
34089
34090         * config.gcc: Add lm32-*-rtems*.
34091         * config/lm32/rtems.h: New file.
34092
34093 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
34094
34095         PR target/42609
34096         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
34097
34098 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
34099
34100         * dwarf2out.c (output_compilation_unit_header): For
34101         -gdwarf-4 use version 4 instead of version 3.
34102         (output_line_info): For version 4 and above emit additional
34103         maximum ops per insn header field.
34104         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
34105
34106         * dwarf2out.c (is_c_family, is_java): Remove.
34107         (lower_bound_default): New function.
34108         (add_bound_info, gen_descr_array_type_die): Use it.
34109
34110 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
34111
34112         PR debug/43325
34113         * dwarf2out.c (gen_variable_die): Allow debug info for variable
34114         re-declaration when it happens in a function.
34115
34116 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
34117
34118         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
34119         (cgraph_remove_function_insertion_hook): Same.
34120         (cgraph_call_function_insertion_hooks): Same.
34121
34122 2010-04-01  Richard Guenther  <rguenther@suse.de>
34123
34124         PR middle-end/43614
34125         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
34126         and TREE_THIS_VOLATILE.
34127         (copy_ref_info): Likewise.
34128         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
34129         * tree.c (build6_stat): Ignore side-effects of all but arg5
34130         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
34131         TARGET_MEM_REF.
34132
34133 2010-04-01  Richard Guenther  <rguenther@suse.de>
34134
34135         PR tree-optimization/43607
34136         * ipa-type-escape.c (check_call): Do not access non-existing
34137         arguments.
34138
34139 2010-04-01  Richard Guenther  <rguenther@suse.de>
34140
34141         PR middle-end/43602
34142         Revert
34143         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34144                     Jack Howarth  <howarth@bromo.med.uc.edu>
34145
34146         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34147         variables TLS.
34148
34149 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34150
34151         * doc/install.texi (Prerequisites): Document libelf usability on
34152         IRIX 5/6 and Solaris 2.
34153         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
34154         Update GNU as, GNU ld requirements.
34155         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
34156         Document Sun Studio compiler download.
34157         Update and simplify as, ld recommendations.
34158         (Specific, *-*-solaris2.7): Note obsoletion, removal.
34159
34160 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34161
34162         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
34163         with_tune_32 to pentium4.
34164
34165 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
34166
34167         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
34168
34169 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34170
34171         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
34172         obsoletion, removal.
34173         Update IDO URL.
34174         Document GNU as requirement.
34175         Update configure requirements.
34176         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
34177         Recomment IRIX 6.5.18+.
34178         Document IDF/IDL requirement.
34179         Document GNU as requirement.
34180         Document GNU ld bootstrap failure.
34181         Remove freeware.sgi.com reference.
34182
34183 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34184
34185         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
34186         UNIX V4.0, V5.0 obsoletion, removal.
34187         Remove --with-gc=simple reference.
34188         Update VM requirements during bootstrap.
34189         Remove -oldas bootstrap description.
34190         Update binutils reference.
34191         Remove comparison failure note.
34192
34193 2010-03-31  Richard Guenther  <rguenther@suse.de>
34194             Zdenek Dvorak  <ook@ucw.cz>
34195             Sebastian Pop  <sebastian.pop@amd.com>
34196
34197         PR middle-end/43464
34198         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
34199         with multiple arguments.
34200         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
34201
34202 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34203
34204         * graphite-dependences.c (print_pddr): Call print_pdr with an
34205         extra argument.
34206         * graphite-poly.c (debug_pdr): Add an extra argument for the
34207         verbosity level.
34208         (print_pdr): Same.
34209         (print_pbb_domain): Same.
34210         (print_pbb): Same.
34211         (print_scop_context): Same.
34212         (print_scop): Same.
34213         (print_cloog): Same.
34214         (debug_pbb_domain): Same.
34215         (debug_pbb): Same.
34216         (print_pdrs): Same.
34217         (debug_pdrs): Same.
34218         (debug_scop_context): Same.
34219         (debug_scop): Same.
34220         (debug_cloog): Same.
34221         (print_scop_params): Same.
34222         (debug_scop_params): Same.
34223         (print_iteration_domain): Same.
34224         (print_iteration_domains): Same.
34225         (debug_iteration_domain): Same.
34226         (debug_iteration_domains): Same.
34227         (print_scattering_function): Same.
34228         (print_scattering_functions): Same.
34229         (debug_scattering_function): Same.
34230         (debug_scattering_functions): Same.
34231         * graphite-poly.h (debug_pdr): Update declaration.
34232         (print_pdr): Same.
34233         (print_pbb_domain): Same.
34234         (print_pbb): Same.
34235         (print_scop_context): Same.
34236         (print_scop): Same.
34237         (print_cloog): Same.
34238         (debug_pbb_domain): Same.
34239         (debug_pbb): Same.
34240         (print_pdrs): Same.
34241         (debug_pdrs): Same.
34242         (debug_scop_context): Same.
34243         (debug_scop): Same.
34244         (debug_cloog): Same.
34245         (print_scop_params): Same.
34246         (debug_scop_params): Same.
34247         (print_iteration_domain): Same.
34248         (print_iteration_domains): Same.
34249         (debug_iteration_domain): Same.
34250         (debug_iteration_domains): Same.
34251         (print_scattering_function): Same.
34252         (print_scattering_functions): Same.
34253         (debug_scattering_function): Same.
34254         (debug_scattering_functions): Same.
34255
34256 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34257
34258         * graphite-poly.c (print_scattering_function_1): New.
34259         (print_scattering_function): Call it.
34260         (print_scop_params): Remove spaces at the end of lines.
34261         (print_cloog): New.
34262         (debug_cloog): New.
34263         * graphite-poly.h (print_cloog): Declared.
34264         (debug_cloog): Declared.
34265
34266 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34267
34268         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
34269         in loop->header.
34270         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
34271         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
34272         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
34273         to switch between adding the IV bump in loop->latch or in loop->header.
34274
34275 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34276
34277         * graphite-poly.c (print_scattering_function): Pretty print following
34278         the scoplib format.
34279         (print_pdr): Same.
34280         (print_pbb_domain): Same.
34281         (dump_gbb_cases): Same.
34282         (dump_gbb_conditions): Same.
34283         (print_pdrs): Same.
34284         (print_pbb): Same.
34285         (print_scop_params): Same.
34286         (print_scop_context): Same.
34287         (print_scop): Same.
34288         (print_pbb_body): New.
34289         (lst_indent_to): New.
34290         (print_lst): Start new lines with a #.
34291         * graphite-poly.h (pbb_bb): New.
34292         (pbb_index): Use pbb_bb.
34293         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34294         disjuncts.
34295         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34296
34297 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34298
34299         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34300         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34301         and 0 instead of 1 for dw_val_class_flag.
34302         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34303         dw_val_class_range_list, dw_val_class_loc_list,
34304         dw_val_class_lineptr and dw_val_class_macptr, use
34305         DW_FORM_flag_present for dw_val_class_flag and
34306         DW_FORM_exprloc for dw_val_class_loc.
34307         (output_die): For -gdwarf-4 print dw_val_class_loc
34308         size as uleb128 instead of 1 or 2 bytes and don't print
34309         anything for dw_val_class_flag.
34310
34311         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34312         instead of cselib_lookup following by tweaking locs->setting_insn.
34313
34314         PR bootstrap/43596
34315         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34316         even before returning from label, setjmp call or volatile asm
34317         handling.
34318
34319 2010-03-31  Richard Guenther  <rguenther@suse.de>
34320
34321         PR middle-end/43600
34322         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34323         temporary data on stack.
34324
34325 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34326
34327         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34328         (PUSHSECTION_ASM_OP): Remove.
34329         (POPSECTION_ASM_OP): Remove.
34330         (PUSHSECTION_FORMAT): Remove.
34331         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34332         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34333         * config/sol2.c (solaris_output_init_fini): Use it.
34334
34335 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34336
34337         PR 43574
34338         * opt-functions.awk (var_type_struct): Use signed char type
34339         for simple variables.
34340
34341 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34342
34343         * config/sol2.c: Include output.h.
34344         (solaris_assemble_visibility): New function.
34345         * config/t-sol2 (sol2.o): Add output.h dependency.
34346         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34347         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34348         Redefine.
34349
34350 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34351
34352         PR target/43580
34353         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34354         V2SImode or XFmode on PRE_DEC.
34355
34356         PR debug/43557
34357         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34358         BLKmode.
34359
34360 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34361
34362         PR 43562
34363         * reload.h (caller_save_initialized_p): Declare.
34364         * toplev.c (backend_init_target): Don't call
34365         init_caller_save but set caller_save_initialized_p to false.
34366         * caller-save.c (caller_save_initialized_p): Define.
34367         (init_caller_save): Check caller_save_initialized_p.
34368         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34369
34370 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34371
34372         PR target/39048
34373         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34374         and soft-fp/t-softfp to tmake_file.
34375         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34376         (LIBGCC2_TF_CEXT): Define.
34377         (TF_SIZE): Define.
34378
34379 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34380
34381         PR debug/42977
34382         * cselib.c (n_useless_values): Document handling of debug locs.
34383         (n_useless_debug_values, n_debug_values): New variables.
34384         (new_elt_loc_list): Don't add to debug values, keep count.
34385         (promote_debug_loc): New.
34386         (cselib_reset_table): Zero new variables.
34387         (entry_and_rtx_equal_p): Promote debug locs.
34388         (discard_useless_locs): Increment n_useless_debug_values for
34389         debug values.
34390         (remove_useless_values): Adjust n_useless_values and n_debug_values
34391         with n_useless_debug_values.
34392         (add_mem_for_addr): Promote debug locs.
34393         (cselib_lookup_mem): Likewise.
34394         (cselib_lookup_addr): Renamed to...
34395         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34396         (cselib_log_lookup): ... this.  Turn into...
34397         (cselib_lookup_addr): ... new wrapper.
34398         (cselib_lookup_from_insn): New.
34399         (cselib_invalidate_regno): Increment n_useless_debug_values for
34400         debug values.
34401         (cselib_invalidate_mem): Likewise.
34402         (cselib_process_insn): Take n_deleted and n_debug_values into
34403         account to guard remove_useless_value call.
34404         (cselib_finish): Zero n_useless_debug_values.
34405         * cselib.h (cselib_lookup_from_insn): Declare.
34406         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34407         (sched_analyze_2): Likewise.
34408
34409 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34410
34411         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34412         functions.
34413         (adjust_mems): Replace narrowing SUBREG of expression containing
34414         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34415         with operations in the narrower mode.
34416
34417         PR debug/43593
34418         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34419         regs_invalidated_by_call instead all call_used_reg_set registers.
34420
34421 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34422
34423         PR middle-end/43430
34424         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34425         pointer comparisons with types_compatible_p.
34426         * tree-vect-stmts.c (vectorizable_call): Same.
34427         (vectorizable_condition): Same.
34428
34429 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34430
34431         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34432         stack check if the mask would be zero.
34433
34434 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34435             Jack Howarth  <howarth@bromo.med.uc.edu>
34436
34437         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34438         variables TLS.
34439
34440 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34441
34442         PR other/25232
34443         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34444         and __unordtf2.
34445         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34446         Include ___unordxf2 and ___unordtf2.
34447         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34448         GCC_4.4.0 here.
34449
34450 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34451
34452         * config/lm32/t-lm32: New file.
34453         * config.gcc: Use the above file when targetting lm32.
34454
34455 2010-03-28  Duncan Sands  <baldrick@free.fr>
34456
34457         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34458
34459 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34460
34461         PR middle-end/43431
34462         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34463         Improve vectorization cost model diagnostic.
34464
34465 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34466
34467         PR middle-end/43436
34468         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34469         compute_data_dependences_for_loop returns false, early exit
34470         and output an extra diagnostic for the failed data reference
34471         analysis.
34472
34473 2010-03-29  Richard Guenther  <rguenther@suse.de>
34474
34475         PR tree-optimization/43560
34476         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34477         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34478
34479 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34480
34481         PR 43564
34482         * toplev.c (process_options): Set optimization_default_node
34483         and optimization_current_node.
34484         * opts.c (decode_options): Don't set optimization_default_node
34485         and optimization_current_node.
34486
34487 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34488
34489         * config/rtems.h: Abandon -qrtems_debug.
34490
34491 2010-03-28  Jan Hubicka  <jh@suse.cz>
34492
34493         PR tree-optimization/43505
34494         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34495         map should not be copied.
34496
34497 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34498
34499         PR middle-end/41674
34500         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34501         cdtors, set DECL_PRESERVE_P.
34502         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34503         should be preseved.
34504
34505 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34506
34507         PR tree-optimization/43528
34508         * stor-layout.c (place_field): Check that constant fits into
34509         unsigned HWI when skipping calculation of MS bitfield layout.
34510
34511 2010-03-27  Jan Hubicka  <jh@suse.cz>
34512
34513         PR middle-end/43391
34514         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34515         notice_global_symbol work.
34516
34517 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34518
34519         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34520         instead of dwarf2out_decl.
34521         (struct var_loc_node): Remove section_label field.
34522         (dwarf2out_function_decl): New function.
34523         (dwarf2out_var_location): Don't set section_label field.
34524         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34525
34526 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34527
34528         PR tree-optimization/43544
34529         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34530         First argument for builtin vectorized function hook is now a
34531         tree to be able to distinguish between machine specific and
34532         standard builtins.
34533         * targhooks.c (default_builtin_vectorized_function): Ditto.
34534         * targhooks.h (default_builtin_vectorized_function): Ditto.
34535         * target.h (struct gcc_target): Ditto.
34536         * tree-vect-stmts.c (vectorizable_function): Ditto.
34537         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34538         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34539         Ditto.
34540
34541 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34542
34543         PR c/43381
34544         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34545         nested binding iff it is a FUNCTION_DECL.
34546         (store_parm_decls_newstyle): Pass nested=true to bind for
34547         FUNCTION_DECLs amongst parameters.
34548
34549 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34550
34551         * var-tracking.c (vt_expand_loc_callback): Don't run
34552         cselib_expand_value_rtx_cb in dummy mode if
34553         cselib_dummy_expand_value_rtx_cb returned false.
34554
34555         * var-tracking.c (emit_note_insn_var_location): For one part
34556         notes with offset 0, don't add EXPR_LIST around the location.
34557         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34558         add_location_or_const_value_attribute): Adjust for that change.
34559
34560         PR debug/43540
34561         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34562         into first operand and location into second.
34563         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34564         dw_cfi_oprnd_loc for DW_CFA_expression.
34565         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34566         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34567         assume first argument is regnum and second argument is location.
34568
34569 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34570
34571         PR target/42113
34572         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34573         of scratch register to DImode.  Split to DImode comparison operator.
34574         Use SImode subreg of scratch register in the multiplication.
34575         (*cmp_sadd_sidi): Ditto.
34576         (*cmp_ssub_si): Ditto.
34577         (*cmp_ssub_sidi): Ditto.
34578
34579 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34580
34581         PR target/43524
34582         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34583         Remove invalid assert and wrong comment.
34584
34585 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34586
34587         PR debug/43516
34588         * flags.h (final_insns_dump_p): New extern.
34589         * final.c (final_insns_dump_p): New variable.
34590         (rest_of_clean_state): Set it before -fdump-final-insns=
34591         dumping, clear afterwards.
34592         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34593         MEM_ALIAS_SET on MEMs.
34594
34595 2010-03-26  David S. Miller  <davem@davemloft.net>
34596
34597         * configure.ac: Fix sparc GOTDATA_OP bug check.
34598         * configure: Rebuild.
34599
34600 2010-03-26  Alan Modra  <amodra@gmail.com>
34601
34602         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34603
34604 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34605
34606         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34607         TLS_SECTION_ASM_FLAG.
34608
34609 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34610
34611         PR bootstrap/43511
34612         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34613         Clear first_function_block_is_cold.
34614
34615         PR c/43385
34616         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34617         argument if the argument is truth_value_p.
34618
34619 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34620
34621         * config/rs6000/constraints.md: Update copyright year for my changes.
34622
34623         PR target/43484
34624         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34625         used in reg+reg addressing, swap registers.
34626
34627 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34628
34629         PR debug/43293
34630         * target.h (struct gcc_target): Add code_end hook.
34631         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34632         if not yet defined.
34633         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34634         * toplev.c (compile_file): Call targetm.asm_out.code_end
34635         hook before unwind info/debug info output.
34636         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34637         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34638         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34639         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34640         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34641         * config/i386/i386.c (ix86_file_end): Renamed to...
34642         (ix86_code_end): ... this.  Make static.  Don't call
34643         file_end_indicate_exec_stack.  Emit unwind info using
34644         final_start_function/final_end_function.
34645         (darwin_x86_file_end): Remove.
34646         (TARGET_ASM_CODE_END): Define.
34647         * config/i386/i386.h (TARGET_ASM_FILE_END,
34648         NEED_INDICATE_EXEC_STACK): Don't define.
34649         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34650         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34651         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34652         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34653
34654         PR target/43498
34655         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34656         at the beginning and final_end_function at the end.
34657         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34658
34659 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34660
34661         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34662         and Sun as TLS syntax.
34663         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34664         * configure: Regenerate.
34665         * config.in: Regenerate.
34666         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34667         (default_elf_asm_named_section): Use it.
34668         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34669         (i386_output_dwarf_dtprel): Likewise.
34670         (output_addr_const_extra): Likewise.
34671         (output_pic_addr_const): Lowercase @GOTTPOFF.
34672         (output_addr_const_extra): Likewise.
34673         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34674         (output_addr_const_extra): Likewise.
34675         (output_pic_addr_const): Lowercase @INDNTPOFF.
34676         (output_addr_const_extra): Likewise.
34677         (output_pic_addr_const): Lowercase @NTPOFF.
34678         (output_addr_const_extra): Likewise.
34679         (output_pic_addr_const): Lowercase @TPOFF.
34680         (output_addr_const_extra): Likewise.
34681         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34682         (*tls_global_dynamic_64): Likewise.
34683         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34684         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34685
34686         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34687         (ASM_OUTPUT_TLS_COMMON): Use it.
34688         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34689
34690         PR target/38118
34691         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34692         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34693         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34694         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34695         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34696         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34697
34698 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34699
34700         * config/i386/i386.c (override_options): Don't accept
34701         -mtls-dialect=sun any longer.
34702         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34703         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34704         (*tls_local_dynamic_base_32_sun): Likewise.
34705         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34706
34707 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34708
34709         PR debug/43508
34710         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34711         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34712
34713         PR debug/43479
34714         * ira.c (adjust_cleared_regs): New function.
34715         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34716
34717         PR debug/19192
34718         PR debug/43479
34719         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34720         from gimple_block.
34721         * expr.c (expand_expr_real): Restore previous
34722         curr_insn_source_location and curr_insn_block after
34723         expand_expr_real_1 call.
34724         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34725         instead of expand_expr_real_1.
34726
34727 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34728
34729         PR rtl-optimization/43413
34730         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34731         hard regs too.
34732
34733 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34734
34735         PR target/43348
34736         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34737         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34738
34739 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34740
34741         * config/i386/i386.c (ix86_target_string): Add -mfma.
34742         Fix a typo in comment.
34743
34744 2010-03-22  Mike Stump  <mikestump@comcast.net>
34745
34746         PR target/23071
34747         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34748         Don't overly align based upon packed packed fields.
34749
34750 2010-03-22  Jason Merrill  <jason@redhat.com>
34751
34752         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34753         Use () rather than [], and move before the element type.
34754
34755 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34756
34757         * doc/configfiles.texi (Configuration Files): Removed
34758         fixinc/Makefile*, intl/Makefile.*.
34759         * doc/makefile.texi: Fixed markup. Abstract from version
34760         control system used.
34761         (Makefile): Removed obsolete java/parse.y example.
34762         * doc/sourcebuild.texi: Likewise.
34763         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34764         libgomp, libssp.  Removed fastjar.
34765         (Miscellaneous Docs): Clarify location.
34766         Added COPYING3, COPYING3.LIB.
34767         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34768
34769 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34770
34771         PR target/38085
34772         * config/i386/i386.c (x86_function_profiler)
34773         [!NO_PROFILE_COUNTERS]: Fix typo.
34774         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34775         instead of callq.
34776
34777 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34778             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34779
34780         * doc/sourcebuild.texi (Test Directives): Split into six
34781         subsections, with most of the current text in new subsections
34782         Directives, Selectors, and Final Actions.
34783         (Directives): Split list of test directives into multiple
34784         subsubsections.
34785         (Selectors): Describe use and syntax of selectors.
34786         (Effective-Target Keywords): Describe all existing keywords.
34787         (Add Options): Describe features for dg-add-options.
34788         (Require Support): Describe variants of dg-require-support.
34789         (Final Actions): Describe commands to use in dg-final.
34790
34791 2010-03-22  Michael Matz  <matz@suse.de>
34792
34793         PR middle-end/43475
34794         * recog.c (validate_replace_rtx_group): Replace also in
34795         REG_EQUAL and REG_EQUIV notes.
34796
34797 2010-03-22  Richard Guenther  <rguenther@suse.de>
34798
34799         PR tree-optimization/43390
34800         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34801         sure vector extracts are type correct.
34802
34803 2010-03-22  Richard Guenther  <rguenther@suse.de>
34804
34805         PR middle-end/40106
34806         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34807         x * sqrt (x) even when optimizing for size if the target
34808         has native support for sqrt.
34809
34810 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34811
34812         * varasm.c (make_decl_rtl_for_debug): Also clear
34813         flag_mudflap for the duration of make_decl_rtl call.
34814
34815         PR debug/43443
34816         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34817         locs from preserved VALUEs.
34818
34819 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34820
34821         PR middle-end/42718
34822         * pa.md (movmemsi): Set align to one if zero.
34823         (movmemdi): Likewise.
34824
34825 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34826
34827         PR target/42321
34828         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34829         with their corresponding prologue pushes.
34830
34831 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34832
34833         PR target/43156
34834         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34835         at the begining or end.
34836         (spu_expand_epilogue): Likewise.
34837
34838 2010-03-20  Richard Guenther  <rguenther@suse.de>
34839
34840         PR rtl-optimization/43438
34841         * combine.c (make_extraction): Properly zero-/sign-extend an
34842         extraction of the low part of a CONST_INT.  Also handle
34843         CONST_DOUBLE.
34844
34845 2010-03-19  Mike Stump  <mikestump@comcast.net>
34846
34847         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34848         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34849         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34850
34851 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34852
34853         PR c/43211
34854         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34855         an error.
34856
34857 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34858
34859         PR rtl-optimization/42258
34860         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34861         use that may match DEF.
34862
34863         PR target/40697
34864         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34865         the cost of loading the constant rather than assuming
34866         COSTS_N_INSNS (1).
34867         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34868         outer code is AND, do the same tests as the andsi3 expander and
34869         return COSTS_N_INSNS (1) if and is cheap.
34870
34871         * optabs.c (avoid_expensive_constant): Fix formatting.
34872
34873 2010-03-19  Michael Matz  <matz@suse.de>
34874
34875         PR c++/43116
34876         * attribs.c (decl_attributes): When rebuilding a function pointer
34877         type use the same qualifiers as the original pointer type.
34878
34879 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34880
34881         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34882         and is_gimple_ip_invariant_address.
34883
34884 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34885
34886         Revert
34887         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34888
34889         * config/arm/arm.c (arm_override_options): Turn off
34890         flag_dwarf2_cfi_asm for AAPCS variants.
34891
34892 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34893
34894         PR target/43399
34895         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34896         Use PRE_MODIFY instead of PRE_DEC.
34897         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34898         (vfp_emit_fstmd): Likewise.
34899
34900 2010-03-19  Michael Matz  <matz@suse.de>
34901
34902         PR target/43305
34903         * builtins.c (expand_builtin_interclass_mathfn,
34904         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34905         if that fails.
34906
34907 2010-03-19  Richard Guenther  <rguenther@suse.de>
34908
34909         PR tree-optimization/43415
34910         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34911         (phi_translate_1): ... this.
34912         (phi_translate): Move all caching here.  Cache all NARY
34913         and REFERENCE translations.
34914
34915 2010-03-19  David S. Miller  <davem@davemloft.net>
34916
34917         With help from Eric Botcazou.
34918         * config/sparc/sparc.c: Include dwarf2out.h.
34919         (emit_pic_helper): Delete.
34920         (pic_helper_symbol_name): Delete.
34921         (pic_helper_emitted_p): Delete.
34922         (pic_helper_needed): New.
34923         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34924         (get_pc_thunk_name): New.
34925         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34926         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34927         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34928         (sparc_expand_prologue): Update load_pic_register call.
34929         (sparc_output_mi_thunk): Likewise.
34930         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34931         thunk if possible.  Output CFI information as needed.
34932
34933 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34934             Jack Howarth  <howarth@bromo.med.uc.edu>
34935
34936         PR target/36399
34937         * config/i386/i386.h: Fix ABI on darwin x86-32.
34938
34939 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34940
34941         * tree.h: Declare make_decl_rtl_for_debug.
34942         * varasm.c (make_decl_rtl_for_debug): New.
34943         * dwarf2out.c (rtl_for_decl_location): Call it.
34944         * cfgexpand.c (expand_debug_expr): Call it.
34945
34946 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34947
34948         PR bootstrap/43399
34949         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34950         mem_mode.
34951
34952         PR bootstrap/43403
34953         * var-tracking.c (vt_init_cfa_base): Do nothing if
34954         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34955
34956 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34957
34958         PR debug/42873
34959         * var-tracking.c (canonicalize_vars_star): New.
34960         (dataflow_post_merge_adjust): Use it.
34961
34962 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34963
34964         PR debug/43058
34965         * var-tracking.c (non_suitable_const): New function.
34966         (add_uses): For DEBUG_INSNs with constants, don't record any
34967         value, instead just the constant value itself.
34968         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34969         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34970         (emit_notes_in_bb): Likewise.
34971         (emit_note_insn_var_location): For onepart variables if
34972         cur_loc is a VOIDmode constant, use DECL_MODE.
34973
34974 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34975
34976         PR middle-end/42450
34977         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34978         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34979         all non-clones.  Moved call redirection...
34980         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34981         (cgraph_materialize_all_clones): Dispose of all
34982         combined_args_to_skip bitmaps.
34983         (verify_cgraph_node): Do not check for edges pointing to wrong
34984         nodes in inline clones.
34985         * tree-inline.c (copy_bb): Call
34986         cgraph_redirect_edge_call_stmt_to_callee.
34987         * ipa.c (cgraph_remove_unreachable_nodes): Call
34988         cgraph_node_remove_callees even when there are used clones.
34989
34990 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34991
34992         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34993
34994 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34995
34996         PR target/43383
34997         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34998         for 32bit.
34999
35000 2010-03-18  Michael Matz  <matz@suse.de>
35001
35002         PR middle-end/43419
35003         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
35004         into sqrt(x) if we need to preserve signed zeros.
35005
35006 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
35007             Eric Botcazou  <ebotcazou@adacore.com>
35008
35009         PR rtl-optimization/43360
35010         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
35011         note if we don't know its invariant status.
35012
35013 2010-03-18  Michael Matz  <matz@suse.de>
35014
35015         PR tree-optimization/43402
35016         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
35017         PHI chains of ssa names registered for update.
35018
35019 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
35020
35021         PR target/42427
35022         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
35023         non-offsettable and pre_modify update addressing.
35024         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
35025         and "2" alternatives "#".
35026         (*movdd_softfloat32): Make all alternatives "#";
35027         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
35028         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
35029         (*movdf_softfloat32): Make all alternatives "#";
35030         (movdi): Use the new DIFD mode iterator to create a common splitter
35031         for movdi, movdf and movdd patterns.
35032
35033 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
35034
35035         * common.opt (dumpdir): Remove redundant tab.
35036
35037 2010-03-17  Martin Jambor  <mjambor@suse.cz>
35038
35039         PR tree-optimization/43347
35040         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
35041         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
35042
35043 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
35044
35045         PR rtl-optimization/42216
35046         * regrename.c (create_new_chain): New function, broken out from...
35047         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
35048         appending a use to an empty chain.
35049         (build_def_use): Remove previous changes that convert OP_INOUT to
35050         OP_OUT operands; instead detect the case where an OP_INOUT operand
35051         uses a previously untracked register and create an empty chain for it.
35052
35053 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35054
35055         * doc/extend.texi (Function Attributes): Rewrite unfinished
35056         sentence in ms_abi documentation.
35057
35058 2010-03-17  Alan Modra  <amodra@gmail.com>
35059
35060         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
35061         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
35062         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
35063         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
35064
35065 2010-03-16  Richard Henderson  <rth@redhat.com>
35066
35067         PR middle-end/43365
35068         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
35069         (lower_try_finally): Save and restore eh_seq around the expansion
35070         of the try-finally.
35071
35072 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35073
35074         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
35075         statements before splitting block.
35076
35077 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35078
35079         * doc/sourcebuild.texi (Testsuites): Fix markup.
35080         Use pathnames relative to gcc/testsuite.
35081         (Test Directives): Move description of how timeout is determined.
35082         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
35083         (C Tests): Correct gcc.misc-tests directory.
35084         Framework tests now live in gcc.test-framework.
35085
35086 2010-03-16  Richard Guenther  <rguenther@suse.de>
35087
35088         PR middle-end/43379
35089         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
35090         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
35091
35092 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35093             Alexandre Oliva  <aoliva@redhat.com>
35094
35095         PR tree-optimization/42917
35096         * lambda-code.c (remove_iv): Skip debug statements.
35097         (lambda_loopnest_to_gcc_loopnest): Likewise.
35098         (not_interesting_stmt): Debug statements are not interesting.
35099
35100 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
35101
35102         PR debug/43051
35103         PR debug/43092
35104         * cselib.c (cselib_preserve_constants,
35105         cfa_base_preserved_val): New static variables.
35106         (preserve_only_constants): New function.
35107         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
35108         clear its REG_VALUES.  If cselib_preserve_constants, don't
35109         empty the whole hash table, but preserve there VALUEs with constants,
35110         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
35111         (cselib_preserve_cfa_base_value): New function.
35112         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
35113         (cselib_init): Change argument to int bitfield.  Set
35114         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
35115         is in it.
35116         (cselib_finish): Clear cselib_preserve_constants and
35117         cfa_base_preserved_val.
35118         * cselib.h (enum cselib_record_what): New enum.
35119         (cselib_init): Change argument to int.
35120         (cselib_preserve_cfa_base_value): New prototype.
35121         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
35122         * dse.c (dse_step1): Likewise.
35123         * cfgcleanup.c (thread_jump): Likewise.
35124         * sched-deps.c (sched_analyze): Likewise.
35125         * gcse.c (local_cprop_pass): Likewise.
35126         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
35127         If FN is non-NULL, call the callback always and whenever it returns
35128         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
35129         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
35130         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
35131         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
35132         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
35133         * var-tracking.c: Include recog.h.
35134         (bb_stack_adjust_offset): Remove.
35135         (vt_stack_adjustments): Don't call it, instead just gather the
35136         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
35137         (adjust_stack_reference): Remove.
35138         (compute_cfa_pointer): New function.
35139         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
35140         (struct adjust_mem_data): New type.
35141         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
35142         functions.
35143         (get_address_mode): New function.
35144         (replace_expr_with_values): Use it.
35145         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
35146         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
35147         (adjust_sets): Remove.
35148         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
35149         Use get_address_mode.
35150         (get_adjusted_src): Remove.
35151         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
35152         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
35153         (add_with_sets): Don't call adjust_sets.
35154         (fp_setter, vt_init_cfa_base): New functions.
35155         (vt_initialize): Change return type to bool.  Move most of pool etc.
35156         initialization to the beginning of the function from end.  Pass
35157         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
35158         If !frame_pointer_needed, call vt_stack_adjustment before mos
35159         vector is filled, call vt_init_cfa_base if argp/framep has been
35160         eliminated to sp.  If frame_pointer_needed and argp/framep has
35161         been eliminated to hard frame pointer, set
35162         hard_frame_pointer_adjustment and call vt_init_cfa_base after
35163         encountering fp setter in the prologue.  For MO_ADJUST, call
35164         log_op_type before pusing the op into mos vector, not afterwards.
35165         Call adjust_insn before cselib_process_insn/add_with_sets,
35166         call cancel_changes (0) afterwards.
35167         (variable_tracking_main_1): Adjust for vt_initialize calling
35168         vt_stack_adjustments and returning whether it succeeded or not.
35169
35170 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
35171
35172         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
35173         debug statements.
35174
35175 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
35176
35177         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
35178         has been set.
35179         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
35180         drap_reg has not been set.
35181
35182 2010-03-15  Michael Matz  <matz@suse.de>
35183
35184         PR middle-end/43300
35185         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
35186         use it to expand block copies.
35187         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
35188         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
35189         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
35190
35191 2010-03-15  Richard Guenther  <rguenther@suse.de>
35192
35193         PR tree-optimization/43367
35194         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
35195         elimination check.
35196
35197 2010-03-15  Richard Guenther  <rguenther@suse.de>
35198
35199         PR tree-optimization/43317
35200         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
35201
35202 2010-03-15  Martin Jambor  <mjambor@suse.cz>
35203
35204         PR tree-optimization/43141
35205         * tree-sra.c (create_abstract_origin): New function.
35206         (modify_function): Call create_abstract_origin.
35207
35208 2010-03-15  Chris Demetriou  <cgd@google.com>
35209
35210         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
35211         wasn't copied.
35212
35213 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35214
35215         PR middle-end/43354
35216         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
35217         call insert_out_of_ssa_copy for default definitions.
35218
35219 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35220
35221         * graphite-clast-to-gimple.c (my_long_long): Defined.
35222         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
35223         * graphite-sese-to-poly.c (my_long_long): Defined.
35224         (scop_ivs_can_be_represented): Use it.
35225
35226 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35227
35228         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
35229         graphite-max-bbs-per-function, and loop-block-tile-size.
35230         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
35231         with "maximum".
35232         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
35233
35234 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35235
35236         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
35237         forward declaration.
35238         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
35239         (add_upper_bounds_from_estimated_nit): New.
35240         (build_loop_iteration_domains): Use it.
35241
35242 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35243
35244         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
35245
35246 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35247
35248         PR middle-end/43306
35249         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
35250         should be an INTEGER_CST.  Also handle CASE_CONVERT.
35251
35252 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35253
35254         * graphite.c (graphite_initialize): To bound the number of bbs per
35255         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
35256         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
35257         * doc/invoke.texi: Document it.
35258
35259 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35260
35261         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
35262         * graphite-sese-to-poly.h (build_poly_scop): Same.
35263
35264 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35265
35266         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
35267         the number of parameters in the scop.  Use as an upper bound
35268         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
35269         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
35270         * doc/invoke.texi: Document it.
35271
35272 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
35273
35274         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
35275         * doc/c-tree.texi: Remove.
35276         * doc/generic.texi: Merge c-tree.texi here.
35277         * doc/gccint.texi (Trees): Remove menu entry.
35278         (c-tree.texi): Remove @include.
35279         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
35280         * doc/languages.texi (Reading RTL): Ditto.
35281
35282 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
35283
35284         PR target/42869
35285         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
35286
35287 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
35288
35289         PR middle-end/42431
35290         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
35291         code added to work around reload clobbering CONST insns.
35292
35293 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35294
35295         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35296         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35297         (cselib_preserve_only_values): Remove retain argument, don't
35298         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35299         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35300         * var-tracking.c (micro_operation): Move insn field before union.
35301         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35302         (struct variable_tracking_info_def): Remove n_mos field, change
35303         mos into a vector of micro_operations.
35304         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35305         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35306         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35307         changing into a vector.
35308         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35309         come before all other uops generated by add_stores.
35310         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35311         argument removal.
35312         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35313         a vector.  Run just one pass over the bbs instead of separate counting
35314         and computation phase.
35315         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35316
35317         PR debug/43329
35318         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35319         into *nonlocalized_list vector.
35320         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35321         even if origin is non-NULL.
35322         (gen_variable_die): Likewise.
35323         (process_scope_var): Don't change origin.
35324         (gen_decl_die): Likewise.
35325         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35326         before adding new edges instead of after it, fix moving over
35327         debug stmts.
35328
35329 2010-03-11  David S. Miller  <davem@davemloft.net>
35330
35331         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35332         of four.
35333         * configure: Rebuild.
35334
35335 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35336
35337         PR tree-optimization/43257
35338         * tree.c (assign_assembler_name_if_neeeded): New function.
35339         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35340         above new function.
35341         * tree.h (assign_assembler_name_if_neeeded): Declare.
35342         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35343         the function if needed.
35344
35345 2010-03-11  Chris Demetriou  <cgd@google.com>
35346
35347         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35348         include/stdint-gcc.h, and include/stdint.h world-readable.
35349
35350 2010-03-11  Richard Guenther  <rguenther@suse.de>
35351
35352         PR tree-optimization/43255
35353         * tree-vrp.c (process_assert_insertions_for): Do not insert
35354         asserts for trivial conditions.
35355
35356 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35357
35358         PR tree-optimization/43280
35359         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35360         generation.  Move calculation of size out of the if branch.
35361         (find_bswap): Modify compare number generation.
35362
35363 2010-03-11  Richard Guenther  <rguenther@suse.de>
35364
35365         PR lto/43200
35366         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35367         (input_gimple_stmt): Fixup handled component types during
35368         operand read.  Also fix up decls in ADDR_EXPRs.
35369
35370 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35371
35372         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35373         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35374
35375 2010-03-10  Jan Hubicka  <jh@suse.cz>
35376
35377         PR c/43288
35378         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35379         * varasm.c (get_variable_section): Don't do that here...
35380         (make_decl_rtl): ... and here.
35381         (do_assemble_alias): Produce decl RTL.
35382         (assemble_alias): Likewise.
35383
35384 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35385
35386         PR debug/43290
35387         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35388         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35389         of fde->vdrap_reg.
35390         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35391         (based_loc_descr): Only express drap or vdrap regno based expressions
35392         using DW_OP_fbreg when not optimizing.
35393         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35394         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35395         REG_CFA_SET_VDRAP note.
35396
35397 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35398
35399         PR tree-optimization/43236
35400         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35401         error in calculation of base address in reverse iteration case.
35402         (generate_builtin): Take number of latch executions if the statement
35403         is in the latch.
35404
35405 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35406
35407         PR middle-end/42859
35408         * tree-eh.c: Include pointer-set.h.
35409         (lower_eh_dispatch): Filter out duplicate case labels and
35410         remove the unneeded edge when the label is unused.  Return
35411         true when some edges are removed.
35412         (execute_lower_eh_dispatch): When any lowering resulted in
35413         removing an edge, also delete unreachable blocks.
35414
35415 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35416
35417         PR bootstrap/43287
35418         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35419         UNSPEC_MACHOPIC_OFFSET.
35420
35421 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35422
35423         PR target/43294
35424         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35425         (m68k_delegitimize_address): New function.
35426
35427 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35428
35429         PR debug/43299
35430         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35431
35432         PR debug/43299
35433         * var-tracking.c (adjust_sets): New function.
35434         (count_with_sets, add_with_sets): Use it.
35435         (get_adjusted_src): New inline function.
35436         (add_stores): Use it.
35437
35438         PR debug/43304
35439         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35440         call cselib_dummy_expand_value_rtx_cb instead of
35441         cselib_expand_value_rtx_cb.
35442
35443         PR debug/43293
35444         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35445         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35446         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35447         and .cfi_endproc around the pic thunks.
35448         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35449         all queued unwind info register saves are saved before the call.
35450         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35451         considered as sp-=4 for unwind info and the pop as sp+=4 which
35452         also clobbers dest, but doesn't actually restore it.
35453
35454         PR debug/43290
35455         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35456         RTX_FRAME_RELATED_P.
35457
35458 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35459
35460         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35461         whitespaces in output template.
35462
35463 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35464
35465         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35466         out array boundary.
35467
35468 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35469
35470         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35471         builtins.exp in a separate job.
35472
35473 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35474
35475         * graphite-sese-to-poly.c (add_param_constraints): Use
35476         lower_bound_in_type and upper_bound_in_type.
35477
35478 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35479
35480         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35481         instead of unsigned_type_node.
35482
35483 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35484             Reza Yazdani  <reza.yazdani@amd.com>
35485
35486         PR middle-end/43065
35487         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35488         on pointer type parameters.
35489
35490 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35491
35492         PR middle-end/42644
35493         PR middle-end/42130
35494         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35495         handle conversions from pointer to integers.
35496         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35497         induction variable, to be able to work with code generated by CLooG.
35498         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35499         (build_poly_scop): Bail out if we cannot codegen a loop.
35500
35501 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35502
35503         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35504         code generation with gloog_error.
35505
35506 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35507
35508         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35509         Call fold_convert on all the returned values.
35510         (expand_scalar_variables_expr): Pass to
35511         expand_scalar_variables_ssa_name the type of the resulting expression.
35512
35513 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35514
35515         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35516         ppl_min_for_le_pointset.
35517         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35518         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35519
35520 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35521
35522         * graphite-dependences.c (map_into_dep_poly): Removed.
35523         (dependence_polyhedron_1): Use combine_context_id_scat.
35524
35525 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35526
35527         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35528         (struct poly_bb): Same.
35529         (combine_context_id_scat): New.
35530
35531 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35532
35533         PR middle-end/42326
35534         * sese.c (name_defined_in_loop_p): Return false for default
35535         definitions.
35536
35537 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35538
35539         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35540         and clean up the logic.
35541
35542 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35543
35544         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35545         early return.
35546
35547 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35548
35549         * var-tracking.c (remove_cselib_value_chains): Define only for
35550         ENABLE_CHECKING.
35551         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35552         delete_slot_part, emit_notes_for_differences_1): Don't call
35553         remove_cselib_value_chains here.
35554         (set_slot_part, emit_notes_for_differences_2): Don't call
35555         add_cselib_value_chains here.
35556         (preserved_values): New vector.
35557         (preserve_value): New function.
35558         (add_uses, add_stores, vt_add_function_parameters): Use it
35559         instead of cselib_preserve_value.
35560         (changed_values_stack): New vector.
35561         (check_changed_vars_0): New function.
35562         (check_changed_vars_1, check_changed_vars_2): Use it.
35563         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35564         changed_values_stack VALUEs.
35565         (vt_emit_notes): For all preserved_values call
35566         add_cselib_value_chains.  If ENABLE_CHECKING call
35567         remove_cselib_value_chains before verifying value_chains is empty.
35568         Initialize and free changed_values_stack.
35569         (vt_initialize): Initialize preserved_values.
35570         (vt_finalize): Free preserved_values.
35571
35572 2010-03-08  Richard Guenther  <rguenther@suse.de>
35573
35574         PR tree-optimization/43269
35575         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35576         region detection.
35577
35578 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35579
35580         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35581         (ipa_is_param_called): Removed.
35582         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35583         (ipa_print_node_params): Do not print the called flag.
35584         (ipa_write_node_info): Do not stream the called flag.
35585         (ipa_read_node_info): Likewise.
35586
35587 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35588
35589         PR debug/43176
35590         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35591         * cselib.c (struct expand_value_data): Add dummy field.
35592         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35593         dummy to false.
35594         (cselib_dummy_expand_value_rtx_cb): New function.
35595         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35596         any rtl.
35597         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35598         * var-tracking.c: Include pointer-set.h.
35599         (variable): Change n_var_parts to char from int.  Add
35600         cur_loc_changed and in_changed_variables fields.
35601         (variable_canonicalize): Remove.
35602         (shared_var_p): New inline function.
35603         (unshare_variable): Maintain cur_loc_changed and
35604         in_changed_variables fields.  If var was in changed_variables,
35605         replace it there with new_var.  Just copy cur_loc instead of
35606         resetting it to something else.
35607         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35608         (dataflow_set_union): Don't call variable_canonicalize.
35609         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35610         of their DEBUG_EXPR_TREE_DECLs.
35611         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35612         and in_changed_variables and cur_loc_changed is false.
35613         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35614         and cur_loc_changed.  Don't update cur_loc here.
35615         (variable_merge_over_src): Don't call variable_canonicalize.
35616         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35617         removing loc that is equal to cur_loc, clear cur_loc,
35618         set cur_loc_changed and ensure variable_was_changed is called.
35619         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35620         compare pointers in cur_loc check, if it is equal to loc,
35621         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35622         (variable_different_p): Remove compare_current_location argument,
35623         don't compare cur_loc.
35624         (dataflow_set_different_1): Adjust variable_different_p caller.
35625         (variable_was_changed): If dv had some var in changed_variables
35626         already, reset in_changed_variables flag for it and propagate
35627         cur_loc_changed over to the new variable.  On empty var
35628         always set cur_loc_changed.  Set in_changed_variables on whatever
35629         var is added to changed_variables.
35630         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35631         Use shared_var_p.  When removing loc that is equal to cur_loc,
35632         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35633         end, don't set it to something else, just call variable_was_changed.
35634         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35635         loc being removed, clear cur_loc and set cur_loc_changed.
35636         Set cur_loc_changed if all locations have been removed.
35637         (struct expand_loc_callback_data): New type.
35638         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35639         allocated.  Always create SUBREGs if simplify_subreg failed.
35640         Prefer to use cur_loc, when that fails and still in
35641         changed_variables (and seen first time) recompute it.  Set
35642         cur_loc_changed of variables which had to change cur_loc and
35643         compute elcd->cur_loc_changed if any of the subexpressions used
35644         had to change cur_loc.
35645         (vt_expand_loc): Adjust to pass arguments in
35646         expand_loc_callback_data structure.
35647         (vt_expand_loc_dummy): New function.
35648         (emitted_notes): New variable.
35649         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35650         that weren't used for any other decl in current
35651         emit_notes_for_changes call call vt_expand_loc_dummy to update
35652         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35653         first loc_chain location if NULL before.  Always use just
35654         cur_loc instead of first loc_chain location.  When cur_loc_changed
35655         is false, when not --enable-checking=rtl just don't emit any note.
35656         When rtl checking, compute the note and assert it is the same
35657         as previous note.  Clear cur_loc_changed and in_changed_variables
35658         at the end before removing from changed_variables.
35659         (check_changed_vars_3): New function.
35660         (emit_notes_for_changes): Traverse changed_vars to call
35661         check_changed_vars_3 on each changed var.
35662         (emit_notes_for_differences_1): Clear cur_loc_changed and
35663         in_changed_variables.  Recompute cur_loc of new_var.
35664         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35665         (vt_emit_notes): Initialize and destroy emitted_notes.
35666
35667 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35668
35669         PR rtl-optimization/42220
35670         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35671         Use verify_reg_tracked to determine if we should use OP_OUT rather
35672         than OP_INOUT.
35673         (build_def_use): If we see an in-out operand for a register that we
35674         know nothing about, treat is an output if possible, fail the block if
35675         not.
35676
35677 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35678
35679         PR debug/42897
35680         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35681         permanently.
35682
35683 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35684
35685         PR debug/42897
35686         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35687         uses of relevant DEFs that are dead outside the loop too.
35688
35689 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35690
35691         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35692         Reverted:
35693         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35694         PR debug/41371
35695         * var-tracking.c (values_to_unmark): New variable.
35696         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35697         values_to_unmark vector.  Moved body to...
35698         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35699         instead queue it into values_to_unmark vector.
35700         (vt_find_locations): Free values_to_unmark vector.
35701
35702 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35703
35704         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35705         (site.exp): Export them when plugins are enabled.
35706
35707 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35708
35709         PR middle-end/42326
35710         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35711         that contain scevs.
35712         (chrec_fold_multiply): Same.
35713
35714 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35715
35716         PR c/43248
35717         * c-decl.c (build_compound_literal): Return early if init is
35718         an error_mark_node.
35719
35720 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35721
35722         PR tree-optimization/43164
35723         PR tree-optimization/43191
35724         * tree-sra.c (type_consists_of_records_p): Reject records with
35725         zero-size bit-fields at the end.
35726
35727 2010-03-04  Mike Stump  <mikestump@comcast.net>
35728
35729         * Makefile.in (TAGS): Remove *.y.
35730
35731 2010-03-04  Richard Guenther  <rguenther@suse.de>
35732
35733         PR tree-optimization/40761
35734         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35735         in reverse order.
35736         (my_rev_post_order_compute): New function.
35737         (init_pre): Call it.
35738
35739 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35740
35741         PR middle-end/43209
35742         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35743         decrease the cost of an IV candidate when the cost is infinite.
35744
35745 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35746
35747         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35748         Use '3DNow!' for the extension of that name, ensure normal space
35749         after the string.
35750         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35751
35752 2010-03-03  Jeff Law  <law@redhat.com>
35753
35754         * PR middle-end/32693
35755         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35756         than gen_rtx_SUBREG.
35757         (extract_bit_field_1): Likewise.
35758
35759 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35760
35761         * doc/sourcebuild.texi (Test directives): Document that arguments
35762         include-opts and exclude-opts are now optional for dg-skip-if,
35763         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35764
35765 2010-03-03  Jason Merrill  <jason@redhat.com>
35766
35767         PR c++/12909
35768         * cgraph.h (varpool_node): Add extra_name field.
35769         * varpool.c (varpool_extra_name_alias): New.
35770         (varpool_assemble_decl): Emit extra name aliases.
35771         (varpool_mark_needed_node): Look past an extra name alias.
35772         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35773         * lto-streamer-in.c (lto_input_tree): Read it.
35774         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35775
35776 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35777
35778         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35779         (sparc*-*-solaris2*): ...this.
35780
35781 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35782
35783         PR debug/43229
35784         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35785         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35786         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35787         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35788
35789         PR debug/43237
35790         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35791         fallthrough to default handling, just with want_address 0 instead of 2.
35792         For single element lists, add_AT_loc directly, otherwise create an
35793         artificial variable DIE and stick location list to it.
35794
35795         PR debug/43177
35796         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35797         (VAL_EXPR_HAS_REVERSE): Define.
35798         (reverse_op): New function.
35799         (add_stores): For reversible operations add an extra MO_VAL_USE.
35800
35801 2010-03-02  Jason Merrill  <jason@redhat.com>
35802
35803         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35804
35805 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35806
35807         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35808         (sparc64-*-linux*): Likewise.
35809         (sparc64-*-solaris2*): Include assembler files before linker ones.
35810         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35811         * config/sparc/gas.h: Delete.
35812         * config/sparc/sol2-64.h: Add copyright notice.
35813         * config/sparc/sol2-gas-bi.h: Likewise.
35814         * config/sparc/sol2-gld.h: Likewise.
35815         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35816         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35817         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35818         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35819         (sparc_elf_asm_named_section): Rename into...
35820         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35821
35822 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35823
35824         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35825
35826 2010-03-02  Jeff Law  <law@redhat.com>
35827
35828         PR middle-end/42431
35829         * reload1.c (rtx_p, substitute_stack): Declare.
35830         (substitute): Record addresses of changed rtxs.
35831         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35832         Restore the original rtx when complete.
35833         (reload): Free subsitute_stack when complete.
35834
35835 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35836
35837         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35838         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35839         new chapter.
35840         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35841         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35842         Torture Tests): Change from subsection to section.
35843
35844 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35845             Steven Bosscher  <steven@gcc.gnu.org>
35846
35847         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35848         instead of bb.
35849
35850 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35851
35852         PR middle-end/42640
35853         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35854         the assignment from the new induction variable to the assignment
35855         of the value from the original loop PHI function.
35856
35857 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35858             Daniel Jacobowitz  <dan@codesourcery.com>
35859
35860         * doc/sourcebuild.texi (Test directives): Clarify options to
35861         dg-skip-if.
35862
35863 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35864
35865         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35866         Disable cfi directives unless GCC and gas agree on using read-only
35867         .eh_frame sections for 64-bit.
35868         * configure: Regenerate.
35869
35870 2010-03-01  Richard Guenther  <rguenther@suse.de>
35871
35872         PR tree-optimization/43220
35873         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35874         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35875
35876 2010-03-01  Richard Guenther  <rguenther@suse.de>
35877             Martin Jambor  <mjambor@suse.cz>
35878
35879         PR middle-end/41250
35880         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35881         gimplified parameters.
35882
35883 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35884
35885         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35886
35887 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35888
35889         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35890
35891 2010-03-01  Richard Guenther  <rguenther@suse.de>
35892
35893         PR middle-end/43213
35894         * expr.c (expand_assignment): Use the alias-oracle to tell
35895         if the rhs aliases the result decl.
35896
35897 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35898
35899         PR pch/14940
35900         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35901         to sol_gt_pch_get_address.
35902         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35903         64-bit, SPARC and x86.
35904         (sol_gt_pch_get_address): New function.
35905
35906 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35907
35908         * toplev.h (inform_n, error_n): Declare.
35909         * diagnostic.c (inform_n, error_n): New function.
35910
35911 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35912
35913         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35914         has no rtl yet when processing local_decls, queue it and recheck
35915         if deferred stack allocation hasn't assigned it rtl.
35916
35917 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35918
35919         * config/sh/sh.c (unspec_bbr_uid): New.
35920         (gen_block_redirect): Use it instead of INSN_UID.
35921         (gen_far_branch): Likewise.
35922
35923 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35924
35925         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35926         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35927
35928 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35929
35930         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35931         (Warning Options): -Wno-conversion-null is valid for
35932         Objective-C++ as well.
35933         * doc/tm.texi (Named Address Spaces): Likewise.
35934         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35935         * doc/tree-ssa.texi (Tree SSA): Likewise.
35936
35937 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35938
35939         PR bootstrap/43202
35940         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35941         by default.  Don't set the default arch for
35942         i[34567]86-*-darwin*|x86_64-*-darwin*.
35943
35944 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35945
35946         PR bootstrap/43202
35947         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35948         default.  Set the default 32bit/64bit archs with $with_arch
35949         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35950
35951 2010-02-27  Richard Guenther  <rguenther@suse.de>
35952
35953         PR tree-optimization/43186
35954         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35955         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35956         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35957         unroller iterations.
35958
35959 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35960
35961         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35962         required and i[34567]86-*-* targets don't support 64bit ISA.
35963
35964 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35965
35966         PR ada/43096
35967         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35968         the same alias set.
35969
35970 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35971
35972         * config.gcc: Set the default arch at least to Prescott for
35973         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35974         if SSE math is enabled.
35975
35976 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35977
35978         * diagnostic.c (diagnostic_initialize): Update.
35979         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35980         informative notes.
35981         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35982         (diagnostic_inhibit_notes): New.
35983         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35984
35985 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35986
35987         PR c/20631
35988         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35989         * doc/standards.texi: Likewise.
35990         * doc/extend.texi: Likewise.
35991         * doc/trouble.texi: Likewise.
35992         * doc/cppopts.texi: Likewise.
35993         * doc/install.texi: Likewise.
35994         * c.opt (std=c90,std=gnu90): New options.
35995         * c-opts.c (c_common_handle_option): Handle them.
35996
35997 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35998
35999         PR c/24577
36000         * c-decl.c (undeclared_variable): Use an informative note.
36001
36002 2010-02-26  Richard Guenther  <rguenther@suse.de>
36003
36004         PR tree-optimization/43186
36005         * gimple.h (gimple_fold): Remove.
36006         * gimple.c (gimple_fold): Remove.  Inline into single user ...
36007         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
36008         Try harder for conditions.
36009
36010 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36011
36012         PR debug/43190
36013         * function.c (used_types_insert): Don't skip through named pointer
36014         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
36015         and it is different from the main variant's type.
36016
36017 2010-02-26  Nick Clifton  <nickc@redhat.com>
36018
36019         * config/rx/rx.md (sminsi3): Remove bogus alternative.
36020
36021 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36022
36023         * config.gcc: Support --with-fpmath=sse for x86.
36024
36025         * config/i386/ssemath.h: New.
36026
36027         * doc/install.texi (--with-fpmath=sse): Documented.
36028
36029 2010-02-26  Richard Guenther  <rguenther@suse.de>
36030
36031         PR tree-optimization/43188
36032         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
36033         vector types of over-aligned element type.
36034
36035 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
36036
36037         PR target/43175
36038         * config/i386/i386.c (expand_vec_perm_blend): Use correct
36039         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
36040
36041 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
36042
36043         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
36044
36045 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36046
36047         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
36048         * var-tracking.c: Include diagnostic.h.
36049         (debug_dv): New function.
36050         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
36051
36052         PR debug/43160
36053         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
36054         (add_value_chain, add_value_chains, remove_value_chain,
36055         remove_value_chains): Handle DEBUG_EXPRs.
36056         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
36057
36058         PR debug/43161
36059         * regcprop.c (struct queued_debug_insn_change): New type.
36060         (struct value_data_entry): Add debug_insn_changes field.
36061         (struct value_data): Add n_debug_insn_changes field.
36062         (debug_insn_changes_pool): New variable.
36063         (free_debug_insn_changes, apply_debug_insn_changes,
36064         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
36065         (kill_value_one_regno): Call free_debug_insn_changes if needed.
36066         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
36067         fields.
36068         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
36069         changes for them.
36070         (copyprop_hardreg_forward_1): Don't call apply_change_group for
36071         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
36072         changes, call cprop_find_used_regs via note_stores.
36073         (copyprop_hardreg_forward): When copying vd from predecessor
36074         which has any queued DEBUG_INSN changes, make sure the pointers are
36075         cleared.  At the end call df_analyze and then if there are any
36076         DEBUG_INSN changes queued at the end of some basic block for still
36077         live registers, apply them.
36078         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
36079
36080 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
36081
36082         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
36083         (arm*-*-*): Ditto.
36084
36085 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
36086
36087         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
36088         targets.  Set the default with_cpu/with_arch from arch/cpu.
36089         Allow x86-64 and native for with_cpu/with_arch.
36090
36091 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
36092
36093         * ebitmap.c: Change calls to verify_popcount with calls to
36094         sbitmap_verify_popcount.
36095         (ebitmap_clear_bit): Fixed map->cacheindex test and
36096         map>cache update when bit clearing results in an empty
36097         element.
36098
36099 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
36100
36101         PR target/43154
36102         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
36103         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
36104         and support both V2DF and V2DI modes.
36105         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
36106         support both V2DF and V2DI modes.
36107         (general): Delete trailing whitespace from a few patterns.
36108
36109         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36110         V2DF/V2DI interleave high/low builtins.
36111
36112         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
36113         new VSX builtins.
36114
36115         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
36116         interleave high/low functions.
36117
36118 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
36119
36120         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
36121         #pragma extern_prefix.
36122
36123 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
36124
36125         PR debug/43166
36126         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
36127         BLKmode, assert op0 is a MEM and just adjust its mode.
36128
36129         PR debug/43165
36130         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
36131         if bitpos isn't multiple of mode's bitsize.
36132
36133 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36134
36135         * c.opt (-ftemplate-depth=): New.
36136         (-ftemplate-depth-): Deprecate.
36137         * optc-gen.awk: Handle -ftemplate-depth=.
36138         * opth-gen.awk: Likewise.
36139         * c-opts.c (c_common_handle_option): Likewise.
36140         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
36141
36142 2010-02-24  Jason Merrill  <jason@redhat.com>
36143
36144         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
36145
36146 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36147
36148         * cfg.c (alloc_aux_for_block): Remove inline.
36149         (alloc_aux_for_edge): Likewise.
36150
36151 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36152
36153         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
36154
36155 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36156
36157         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
36158         * config/i386/sol2-gas.h: New file.
36159         * config.gcc (i[34567]86-*-solaris2*): Use it.
36160
36161 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36162
36163         PR c/43128
36164         * c-typeck.c (ep_convert_and_check): New.
36165         (build_conditional_expr): Use it.
36166         (build_binary_op): Likewise.
36167
36168 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
36169
36170         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
36171
36172         PR debug/43150
36173         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
36174         bounds even for -O+.
36175         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
36176         expr needs to have DECL_NAME set.
36177
36178 2010-02-24  Nick Clifton  <nickc@redhat.com>
36179
36180         * config/mep/mep.c: Include gimple.h.
36181         (mep_function_uses_sp): Delete unused function.
36182         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
36183         parameters.  Use unsigned integers to count args.  Return a
36184         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
36185
36186 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36187
36188         PR target/43107
36189         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
36190         greater or equal to nelt instead of 2 * nelt.
36191         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
36192         with nelt - 1.
36193
36194 2010-02-23  Jason Merrill  <jason@redhat.com>
36195
36196         PR debug/42800
36197         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
36198         in cfun->local_decls even if they have register types.
36199
36200         PR c++/42837
36201         * stor-layout.c (place_field): Don't warn about unnecessary
36202         DECL_PACKED if the type is packed.
36203
36204 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36205
36206         PR target/43139
36207         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
36208         GOTOFF relocs, even when the base reg isn't pic pointer.
36209
36210 2010-02-23  Michael Matz  <matz@suse.de>
36211
36212         PR debug/43077
36213         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
36214         (expand_gimple_basic_block): Generate and use debug temps if there
36215         are debug uses left after the last real use of TERed ssa names.
36216         Unlink debug immediate uses when they are expanded.
36217
36218 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36219
36220         PR 43123
36221         * config/i386/i386.c (override_options): Reorganise to provide
36222         better error messages.
36223
36224 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36225
36226         PR middle-end/43083
36227         * graphite-scop-detection.c (create_single_exit_edge): Move
36228         the call to find_single_exit_edge to....
36229         (create_sese_edges): ...here.  Don't handle multiple edges
36230         exiting the function.
36231         (build_graphite_scops): Don't handle multiple edges
36232         exiting the function.
36233
36234 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36235
36236         PR middle-end/43097
36237         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
36238         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
36239
36240 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36241
36242         PR middle-end/43026
36243         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
36244
36245 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36246
36247         PR c++/43126
36248         * c-typeck.c (convert_arguments): Print declaration location.
36249         * c-common.c (validate_nargs): Rename as
36250         builtin_function_validate_nargs.
36251         (check_builtin_function_arguments): Update.
36252
36253 2010-02-22  Richard Guenther  <rguenther@suse.de>
36254
36255         PR lto/43045
36256         * tree-inline.c (declare_return_variable): Use the type of
36257         the call stmt lhs if available.
36258
36259 2010-02-22  Duncan Sands  <baldrick@free.fr>
36260
36261         * passes.c (register_pass): Always consider all pass lists when
36262         ref_pass_instance_number is zero.
36263
36264 2010-02-22  Richard Guenther  <rguenther@suse.de>
36265
36266         PR tree-optimization/42749
36267         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
36268         parameter.  Do arithmetic in the original type.
36269         (update_accumulator_with_ops): Likewise.
36270         (adjust_accumulator_values): Adjust.
36271
36272 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36273
36274         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
36275         (QI to BLKmode splitter): New splitter.
36276
36277 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
36278
36279         * config/i386/i386.c (initial_ix86_tune_features): Turn on
36280         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
36281
36282 2010-02-22  Richard Guenther  <rguenther@suse.de>
36283
36284         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
36285
36286 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
36287
36288         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
36289         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
36290         ($(T)crti.o, $(T)crtn.o): Remove rules.
36291
36292 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36293
36294         PR fortran/35259
36295         * doc/invoke.texi (-fassociative-math): Document that this
36296         option is automatically enabled for Fortran.
36297
36298 2010-02-20  David S. Miller  <davem@davemloft.net>
36299
36300         * configure.ac: Test if linker and assembler properly support
36301         GOTDATA_OP relocations.
36302         * configure: Rebuild.
36303         * config.in: Likewise.
36304         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36305         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36306         (movsi_high_pic): Likewise.
36307         (movdi_lo_sum_pic): Likewise.
36308         (movdi_high_pic): Likewise.
36309         (movsi_pic_gotdata_op): New pattern.
36310         (movdi_pic_gotdata_op): Likewise.
36311         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36312         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36313
36314 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36315
36316         PR target/43067
36317         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36318         attribute to ssemul.
36319         (xop_mulv2div2di3_high): Ditto.
36320
36321 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36322
36323         PR c++/35669
36324         * c.opt (Wconversion-null): New option.
36325         * doc/invoke.texi (Wconversion-null): Document.
36326
36327 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36328
36329         * common.opt (Wlarger-than-): Add Undocumented.
36330
36331 2010-02-19  Mike Stump  <mikestump@comcast.net>
36332
36333         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36334
36335 2010-02-19  Jason Merrill  <jason@redhat.com>
36336
36337         PR target/40332
36338         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36339         * configure: Likewise.
36340
36341 2010-02-20  Alan Modra  <amodra@gmail.com>
36342
36343         PR middle-end/42344
36344         * cgraph.h (cgraph_make_decl_local): Declare.
36345         * cgraph.c (cgraph_make_decl_local): New function.
36346         (cgraph_make_node_local): Use it.
36347         * cgraphunit.c (cgraph_function_versioning): Likewise.
36348         * ipa.c (function_and_variable_visibility): Likewise.
36349
36350 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36351
36352         PR bootstrap/43121
36353         * except.c (sjlj_emit_function_enter): Don't call
36354         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36355         directly.
36356         * rtl.h (add_reg_br_prob_note): Remove prototype.
36357
36358 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36359
36360         PR 41779
36361         * c-common.c (conversion_warning): Remove widening conversions
36362         before checking the conversion of integers to reals.
36363
36364 2010-02-19  Mike Stump  <mikestump@comcast.net>
36365
36366         PR middle-end/43125
36367         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36368
36369         PR objc/43061
36370         * cgraphunit.c (process_function_and_variable_attributes): Check
36371         DECL_PRESERVE_P instead of looking up attribute "used".
36372         * ipa-pure-const.c (check_decl): Likewise.
36373         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36374         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36375         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36376         instead of attribute "used".
36377         * config/sol2-c.c (solaris_pragma_init): Likewise.
36378         (solaris_pragma_fini): Likewise.
36379
36380 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36381
36382         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36383         Use XCNEW instead of xcalloc.
36384         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36385         XNEW instead of xmalloc.
36386         (get_fields): Use XNEWVEC instead of xmalloc.
36387
36388         PR debug/43084
36389         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36390         populate vars array.
36391         (create_new_general_access): For debug stmts just reset value.
36392         (get_stmt_accesses): For accesses within debug stmts just record them
36393         using add_access_to_acc_sites instead of preventing the peeling or
36394         counting them as accesses.
36395
36396         PR middle-end/42233
36397         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36398
36399 2010-02-19  Richard Guenther  <rguenther@suse.de>
36400
36401         PR tree-optimization/42916
36402         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36403         instructions.
36404
36405 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36406
36407         * configure.ac: Replace all uses of changequote in macro arguments
36408         with proper quoting.
36409
36410 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36411
36412         PR middle-end/42233
36413         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36414
36415 2010-02-19  Richard Guenther  <rguenther@suse.de>
36416
36417         PR tree-optimization/42944
36418         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36419         test for aliasing with errno.
36420
36421 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36422
36423         PR middle-end/42233
36424         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36425         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36426         * dojump.c: Include output.h.
36427         (inv): New inline function.
36428         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36429         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36430         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36431         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36432         argument, pass it down to other calls.
36433         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36434         add REG_BR_PROB note to the conditional jump.
36435         * cfgexpand.c (add_reg_br_prob_note): Removed.
36436         (expand_gimple_cond): Don't call it, add the probability
36437         as last argument to jumpif_1/jumpifnot_1.
36438         * Makefile.in (dojump.o): Depend on output.h.
36439         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36440         callers.
36441         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36442         * stmt.c (do_jump_if_equal): Likewise.
36443         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36444         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36445         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36446         Likewise.
36447         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36448         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36449         jumpifnot_1 callers.
36450         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36451         callers.
36452         (store_expr): Adjust jumpifnot caller.
36453         (store_constructor): Adjust jumpif caller.
36454
36455         PR middle-end/42233
36456         * gimplify.c (gimple_boolify): For __builtin_expect call
36457         gimple_boolify also on its first argument.
36458
36459 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36460
36461         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36462         changequote block.
36463         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36464         * configure: Regenerated.
36465
36466 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36467
36468         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36469         lang_hooks.types_compatible_p instead of comptypes.
36470
36471 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36472
36473         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36474         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36475         if __prefer_thumb__ is defined.
36476
36477 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36478
36479         PR tree-optimization/43066
36480         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36481         array with zero-sized element type.
36482
36483 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36484
36485         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36486         rtx, allocate struct var_loc_node here and return it to the
36487         caller, and only if it is actually needed.
36488         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36489         move it earlier and return immediately if it returns NULL.
36490
36491 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36492
36493         * config/sparc/gas.h: New file.  Restore
36494         TARGET_ASM_NAMED_SECTION to its ELF default.
36495         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36496         check !HAVE_GNU_AS.
36497         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36498         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36499         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36500         after sparc/sysv4.h.
36501
36502 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36503
36504         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36505
36506 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36507
36508         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36509         patterns from predicated pattern.
36510
36511 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36512
36513         PR target/43103
36514         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36515         for insn mnemonic suffix.
36516
36517 2010-02-17  Richard Guenther  <rguenther@suse.de>
36518
36519         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36520         to loop PHI nodes.
36521
36522 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36523
36524         PR debug/42918
36525         * caller-save.c (save_call_clobbered_regs): If BB ends with
36526         a DEBUG_INSN, move any notes in between last real insn and the last
36527         DEBUG_INSN after the last DEBUG_INSN.
36528
36529 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36530
36531         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36532         Fix return type.  Fix argument type.  Explain meaning of return value.
36533
36534 2010-02-16  Richard Guenther  <rguenther@suse.de>
36535
36536         PR tree-optimization/41043
36537         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36538         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36539         statements ...
36540         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36541
36542 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36543
36544         PR tree-optimization/43074
36545         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36546         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36547         vectorizable cycles in hybrid SLP check.
36548         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36549
36550 2010-02-16  Richard Guenther  <rguenther@suse.de>
36551
36552         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36553         (true_dependence): If memrefs_conflict_p computes must-alias
36554         trust it.  Move TBAA check after offset-based disambiguation.
36555         (canon_true_dependence): Likewise.
36556
36557 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36558
36559         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36560         * doc/invoke.texi: Document it.
36561         * var-tracking.c: Include toplev.h and params.h.
36562         (vt_find_locations): Return bool indicating success.  Compute
36563         hash sizes unconditionally.  Check new parameter, report.
36564         (variable_tracking_main_1): Check vt_find_locations results and
36565         retry.  Renamed from...
36566         (variable_tracking_main): ... this.  New wrapper to preserve
36567         flag_var_tracking_assignments.
36568         * Makefile.in (var-tracking.o): Adjust dependencies.
36569
36570 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36571             Jakub Jelinek  <jakub@redhat.com>
36572
36573         PR target/42854
36574         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36575         if weak_import attribute is present.
36576         * config/darwin.c (machopic_select_section): Likewise.
36577
36578 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36579
36580         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36581         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36582         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36583         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36584
36585         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36586         types.
36587
36588         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36589         Fix argument types.
36590
36591         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36592         Rewrite text to refer to the names.
36593
36594 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36595
36596         * config/i386/i386-builtin-types.def
36597         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36598         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36599         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36600         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36601         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36602         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36603         IX86_BUILTIN_VPERMIL2PS256.
36604         (MULTI_ARG_4_DF2_DI_I): Defined.
36605         (MULTI_ARG_4_DF2_DI_I1): Defined.
36606         (MULTI_ARG_4_SF2_SI_I): Defined.
36607         (MULTI_ARG_4_SF2_SI_I1): Defined.
36608         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36609         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36610         __builtin_ia32_vpermil2ps256.
36611         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36612         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36613         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36614         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36615         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36616         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36617         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36618         CODE_FOR_xop_vpermil2v8sf3.
36619         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36620         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36621         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36622         (_mm256_permute2_pd): New.
36623         (_mm_permute2_ps): New.
36624         (_mm256_permute2_ps): New.
36625
36626 2010-02-15  Nick Clifton  <nickc@redhat.com>
36627
36628         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36629         boolean parameters.  Use emit_jump_insn when emitting a pop
36630         instruction containing a return insn.
36631         (push): Use 'true' rather than '1' as second parameter to F.
36632         (h8300_expand_prologue): Likewise.
36633         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36634         (h8300_expand_epilogue): Likewise.
36635
36636 2010-02-15  Richard Guenther  <rguenther@suse.de>
36637
36638         PR middle-end/43068
36639         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36640         if that is zero.
36641
36642 2010-02-15  Nick Clifton  <nickc@redhat.com>
36643
36644         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36645         delta.
36646
36647 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36648
36649         * intl.c (fake_ngettext): New function.
36650         * intl.h (fake_ngettext): Declare.
36651         (ngettext): Define macro.
36652         * collect2.c (notice_translated): New function.
36653         (main): Use notice_translated and ngettext.
36654         * collect2.h (notice_translated): Declare.
36655
36656 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36657
36658         * reorg.c (delete_computation): Comment fixes.
36659         * caller-save.c (setup_save_areas): Idem.
36660         * sel-sched-dump.c (dump_lv_set): Idem.
36661         * rtl.def: Idem.
36662
36663 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36664
36665         * config/s390/s390.c (s390_sched_init): New function.
36666         (TARGET_SCHED_INIT): Target hook defined.
36667
36668 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36669             Jack Howarth  <howarth@bromo.med.uc.edu>
36670             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36671
36672         PR target/42982
36673         Partial revert of unintended change in fix for PR41605.
36674         * config/darwin.h: Fix typo.
36675         * config/darwin9.h: Same.
36676
36677 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36678
36679         * c-pch.c (pch_init): Clear v.
36680
36681 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36682
36683         PR middle-end/42930
36684         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36685         graphite_can_represent_init for MULT_EXPR.
36686
36687 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36688
36689         PR middle-end/42914
36690         PR middle-end/42530
36691         * graphite-sese-to-poly.c (remove_phi): New.
36692         (translate_scalar_reduction_to_array): Call remove_phi.
36693
36694 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36695
36696         PR middle-end/42771
36697         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36698         * graphite-clast-to-gimple.h (gloog): Update declaration.
36699         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36700         * graphite-poly.h (struct poly_bb): Add missing comments.
36701         (struct scop): Add poly_scop_p field.
36702         (POLY_SCOP_P): New.
36703         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36704         * graphite.c (graphite_transform_loops): Build the polyhedral
36705         representation for each scop before code generation.
36706         * sese.c (rename_variables_in_operand): Removed.
36707         (rename_variables_in_expr): Return the renamed expression.
36708         (rename_sese_parameters): New.
36709         * sese.h (rename_sese_parameters): Declared.
36710
36711 2010-02-11  Richard Guenther  <rguenther@suse.de>
36712
36713         PR tree-optimization/42998
36714         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36715         POINTER_PLUS_EXPR properly.
36716
36717 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36718             Changpeng Fang  <changpeng.fang@amd.com>
36719
36720         PR middle-end/40886
36721         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36722         the cost of an IV candidate when the IV is used in a test against zero.
36723
36724         * gcc.dg/tree-ssa/ivopts-3.c: New.
36725
36726 2010-02-11  Richard Guenther  <rguenther@suse.de>
36727
36728         PR lto/41664
36729         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36730         pointer-vs-decl case by swapping refs.  Handle some cases
36731         of pointer-vs-decl disambiguations more conservatively.
36732         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36733         to false after expanding.
36734
36735 2010-02-11  Richard Guenther  <rguenther@suse.de>
36736
36737         PR driver/43021
36738         * gcc.c (process_command): Handle LTO file@offset case more
36739         appropriately.
36740
36741 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36742
36743         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36744         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36745         of DEBUG_INSNs.
36746         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36747
36748         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36749         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36750         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36751         Optimize eq/ne comparisons when both arguments are known to be
36752         zero-extended.
36753         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36754         Don't mask operands unnecessarily if they are known to be already
36755         zero-extended.
36756
36757 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36758
36759         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36760         instead of loop.
36761
36762 2010-02-10  Richard Guenther  <rguenther@suse.de>
36763
36764         PR tree-optimization/43017
36765         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36766         for wrapping signed arithmetic.
36767
36768 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36769
36770         PR debug/43010
36771         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36772         if no debug info should be emitted for it.
36773
36774 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36775
36776         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36777         note when flag_exceptions is set.
36778
36779 2010-02-10  Duncan Sands  <baldrick@free.fr>
36780
36781         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36782
36783 2010-02-10  Richard Guenther  <rguenther@suse.de>
36784
36785         PR c/43007
36786         * tree.c (get_unwidened): Handle constants.
36787         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36788
36789 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36790
36791         PR lto/42985
36792         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36793         check for variable argument counts independently.
36794
36795 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36796
36797         PR target/42841
36798         * config/sh/sh.c (find_barrier): Increase length for non delayed
36799         conditional branches.
36800
36801 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36802
36803         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36804
36805 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36806
36807         * builtins.c (set_builtin_user_assembler_name): Also handle
36808         ffs if int is smaller than word.
36809
36810 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36811
36812         PR middle-end/42973
36813         * ira-conflicts.c (get_dup): Remove.
36814         (process_reg_shuffles): Add new parameter.  Use it as an
36815         additional guard for copy generation.
36816         (add_insn_allocno_copies): Rewrite.
36817
36818 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36819
36820         * common.opt (fsched2-use-traces): Preserved for backward
36821         compatibility.
36822         * doc/invoke.texi: Remove the documentation about option
36823         -fsched2-use-traces.
36824         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36825         flag_sched2_use_traces.
36826         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36827         the backward compatibility flag section.
36828
36829 2010-02-09  Richard Guenther  <rguenther@suse.de>
36830
36831         PR tree-optimization/43008
36832         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36833         make HEAP variables initialized from global memory if they
36834         are not known builtin functions.
36835         (find_func_aliases): Adjust.
36836
36837 2010-02-09  Richard Guenther  <rguenther@suse.de>
36838
36839         PR tree-optimization/43000
36840         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36841         arithmetic manually.
36842
36843 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36844
36845         PR tree-optimization/42931
36846         * tree-loop-linear.c (try_interchange_loops): Don't call
36847         double_int_mul if estimated_loop_iterations failed.
36848
36849 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36850
36851         PR middle-end/42898
36852         * tree-sra.c (build_accesses_from_assign): Do not mark in
36853         should_scalarize_away_bitmap if stmt has volatile ops.
36854         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36855         has volatile ops.
36856
36857 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36858
36859         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36860
36861 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36862
36863         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36864         before the pattern.
36865
36866 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36867
36868         PR middle-end/42946
36869         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36870
36871 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36872
36873         PR middle-end/42988
36874         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36875         to unknown_dependence.
36876         (graphite_legal_transform_dr): Handle the unknown_dependence.
36877         (graphite_carried_dependence_level_k): Same.
36878
36879 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36880
36881         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36882
36883 2010-02-07  Richard Guenther  <rguenther@suse.de>
36884
36885         PR middle-end/42991
36886         * expr.c (get_inner_reference): Always initialize *pbitsize.
36887
36888 2010-02-07  Richard Guenther  <rguenther@suse.de>
36889
36890         PR middle-end/42956
36891         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36892         new ARRAY_REFs on variable size element or minimal index arrays.
36893         Complete.
36894         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36895         gimple_fold_indirect_ref.
36896
36897 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36898
36899         PR target/42957
36900         * arm.c (arm_override_options): Just return if the user has specified
36901         an invalid fpu name.
36902
36903 2010-02-03  Jason Merrill  <jason@redhat.com>
36904
36905         PR c++/42870
36906         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36907         i386_pe_maybe_record_exported_symbol.
36908
36909 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36910
36911         PR target/42924
36912         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36913         (pa_delegitimize_address): New function.
36914
36915 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36916
36917         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36918         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36919
36920 2010-02-05  Richard Guenther  <rguenther@suse.de>
36921
36922         PR lto/42762
36923         * lto-streamer-in.c (get_resolution): Deal with references
36924         to undefined functions.
36925
36926 2010-02-05  Richard Guenther  <rguenther@suse.de>
36927
36928         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36929         (fold_const_aggregate_ref): Likewise.
36930         (ccp_fold_stmt): Substitute loads.
36931         (maybe_fold_reference): Verify types before substituting.
36932         Unshare properly.
36933         (fold_gimple_assign): Unshare properly.
36934         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36935
36936 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36937
36938         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36939         for rs6000_gen_cell_microcode.
36940
36941 2010-02-04  Richard Guenther  <rguenther@suse.de>
36942
36943         PR rtl-optimization/42952
36944         * dse.c (const_or_frame_p): Remove MEM handling.
36945
36946 2010-02-04  Nick Clifton  <nickc@redhat.com>
36947
36948         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36949         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36950         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36951         (mn10300_asm_output_mi_thunk): New function.
36952         (mn10300_can_output_mu_thunk): New function.
36953         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36954         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36955         (FUNCTION_ARG): Delete incorrect comment.
36956
36957 2010-02-03  Jason Merrill  <jason@redhat.com>
36958
36959         PR c++/40138
36960         * fold-const.c (operand_equal_p): Handle erroneous types.
36961
36962 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36963
36964         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36965
36966 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36967
36968         PR rtl-optimization/42941
36969         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36970         of xmalloc.
36971
36972 2010-02-03  Jason Merrill  <jason@redhat.com>
36973
36974         PR c++/35652
36975         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36976
36977 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36978
36979         PR debug/42896
36980         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36981         (cselib_reset_table): Renamed from...
36982         (cselib_reset_table_with_next_value): ... this.
36983         (cselib_get_next_uid): Renamed from...
36984         (cselib_get_next_unknown_value): ... this.
36985         * cselib.c (next_uid): Renamed from...
36986         (next_unknown_value): ... this.
36987         (cselib_clear_table): Adjust.
36988         (cselib_reset_table): Adjust.  Renamed from...
36989         (cselib_reset_table_with_next_value): ... this.
36990         (cselib_get_next_uid): Adjust.  Renamed from...
36991         (cselib_get_next_unknown_value): ... this.
36992         (get_value_hash): Use hash.
36993         (cselib_hash_rtx): Likewise.
36994         (new_cselib_val): Adjust.  Set and dump uid.
36995         (cselib_lookup_mem): Pass next_uid as hash.
36996         (cselib_subst_to_values): Likewise.
36997         (cselib_log_lookup): Dump uid.
36998         (cselib_lookup): Pass next_uid as hash.  Adjust.
36999         (cselib_process_insn): Adjust.
37000         (cselib_init): Initialize next_uid.
37001         (cselib_finish): Adjust.
37002         (dump_cselib_table): Likewise.
37003         * dse.c (canon_address): Dump value uid.
37004         * print-rtl.c (print_rtx): Print value uid.
37005         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
37006         (dvuid): New type.
37007         (dv_uid): New function, sort of renamed from...
37008         (dv_htab_hash): ... this, reimplemented in terms of it and...
37009         (dv_uid2hash): ... this.  New.
37010         (variable_htab_eq): Drop excess assertions.
37011         (tie_break_pointers): Removed.
37012         (canon_value_cmp): Compare uids.
37013         (variable_post_merge_New_vals): Print uids.
37014         (vt_add_function_parameters): Adjust.
37015         (vt_initialize): Reset table.  Adjust.
37016
37017 2010-02-03  Richard Guenther  <rguenther@suse.de>
37018
37019         PR tree-optimization/42944
37020         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
37021         (call_may_clobber_ref_p_1): Likewise.  Properly handle
37022         malloc and calloc clobbering errno.
37023
37024 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
37025
37026         * doc/invoke.texi: Fix name of sched1 dump.
37027
37028         * opts.c (decode_options): Set flag_tree_switch_conversion
37029         only conditionally on optimize >= 2.
37030
37031         * gcse.c: Assorted comment fixes in pass description.
37032
37033 2010-02-03  Anthony Green  <green@moxielogic.com>
37034
37035         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
37036         nop padding in order to maintain alignment of storage location of
37037         target function address.
37038         (moxie_trampoline_init): Store target function address at newly
37039         aligned location.
37040         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
37041         to 32.
37042         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
37043
37044 2010-02-03  Richard Guenther  <rguenther@suse.de>
37045
37046         PR middle-end/42927
37047         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
37048
37049 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37050
37051         * config.gcc: Reenable check for obsolete targets.
37052         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
37053         mips-sgi-irix6.[0-4]*.
37054
37055 2010-02-02  Nick Clifton  <nickc@redhat.com>
37056
37057         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
37058         constant size of 4 as being the same as 0.
37059         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
37060         can take values in the range 0..4.
37061
37062 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
37063
37064         PR java/41991
37065         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
37066         as _darwin10_Unwind_FindEnclosingFunction().
37067         * libgcc-libsystem.ver: New.
37068
37069 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
37070
37071         PR target/41399
37072         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
37073         implicitly set registers.
37074
37075 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
37076
37077         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
37078         (arm_override_options): Allow automatic selection of the thread
37079         pointer register if thumb2.
37080         (legitimize_pic_address): Improve code sequences for Thumb2.
37081         (arm_call_tls_get_addr): Likewise.
37082         (legitimize_tls_address): Likewise.
37083         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
37084         (pic_load_addr_32bit): ... this.  New named pattern.
37085         * thumb2.md (pic_load_addr_thumb2): Delete.
37086         (pic_load_dot_plus_four): Delete.
37087         (tls_load_dot_plus_four): New named pattern.
37088
37089 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37090
37091         PR libgomp/29986
37092         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
37093         Document fix for TLS bug.
37094
37095 2010-01-31  Richard Guenther  <rguenther@suse.de>
37096
37097         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
37098         conservatively correct.
37099
37100 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37101
37102         PR target/42850
37103         Revert:
37104         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37105
37106         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37107
37108 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37109
37110         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
37111
37112 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
37113
37114         * config.gcc: Adjust order of makefile fragments for mingw targets.
37115
37116 2010-01-31  Richard Guenther  <rguenther@suse.de>
37117
37118         PR middle-end/42898
37119         * gimplify.c (gimplify_init_constructor): For volatile LHS
37120         initialize a temporary.
37121
37122 2010-01-31  Matthias Klose  <doko@ubuntu.com>
37123
37124         * configure.ac: Fix __stack_chk_fail check for cross builds configured
37125         --with-headers
37126         * configure: Regenerate.
37127
37128 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
37129
37130         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37131         the same alias set and their sizes different constantness.
37132         (aliasing_component_refs_p): Revert 2009-10-24 change.
37133
37134 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37135
37136         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
37137         unused.
37138
37139 2010-01-29  Richard Guenther  <rguenther@suse.de>
37140
37141         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
37142         Assert we successfully updated the call.
37143
37144 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
37145
37146         PR rtl-optimization/42889
37147         * df.h (df_set_bb_dirty_nonlr): New prototype.
37148         * df-core.c (df_set_bb_dirty_nonlr): New function.
37149         * df-scan.c (df_insn_rescan): Call it instead of
37150         df_set_bb_dirty for DEBUG_INSNs.
37151
37152 2010-01-29  Richard Guenther  <rguenther@suse.de>
37153
37154         PR middle-end/37448
37155         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
37156         quadratic behavior in most cases.
37157
37158 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
37159
37160         PR target/42891
37161         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
37162         in the call to gen_x86_movsicc_0_m1.
37163
37164 2010-01-28  Richard Guenther  <rguenther@suse.de>
37165
37166         PR tree-optimization/42871
37167         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
37168
37169 2010-01-28  Richard Guenther  <rguenther@suse.de>
37170
37171         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
37172         into call arguments.
37173
37174 2010-01-28  Richard Guenther  <rguenther@suse.de>
37175
37176         PR middle-end/42883
37177         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
37178         the forwarder if the destination is an EH landing pad.
37179
37180 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
37181
37182         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
37183         block list passed to gimple_duplicate_sese_tail.
37184         (parallelize_loops): Avoid parallelization when the function
37185         has_nonlocal_label.
37186         Avoid parallelization when the preheader is IRREDUCIBLE.
37187         Try to optimize when estimated_loop_iterations_int is unresolved.
37188         Add the loop's location to the dump file.
37189         * tree-cfg.c (add_phi_args_after_redirect): Remove.
37190         (gimple_duplicate_sese_tail): Remove the check for the latch.
37191         Redirect nexits to the exit block.
37192         Remove handling of the incoming edges to the latch.
37193         Redirect the backedge from the copied latch to the exit bb.
37194
37195 2010-01-28  Michael Matz  <matz@suse.de>
37196
37197         PR target/42881
37198         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
37199         Wrap force_reg into a sequence, emit it before user.
37200
37201 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
37202
37203         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
37204         (arm_rev): New.
37205         (arm_legacy_rev): Likewise.
37206         (thumb_legacy_rev): Likewise.
37207
37208 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37209
37210         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
37211         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
37212         on MEM's address failed, try avoid_constant_pool_reference and
37213         recurse if it returned something different.
37214         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
37215         address, try avoid_constant_pool_reference and recurse if it
37216         returned something different.
37217         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
37218         address and avoid_constant_pool_reference returned something
37219         different, don't set have_address.
37220
37221 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
37222
37223         PR debug/42861
37224         * var-tracking.c (val_store): Add modified argument, obey it.
37225         Adjust callers.
37226         (count_uses): Move down logging of main.
37227         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
37228         don't need resolution.
37229         (emit_notes_in_bb): Likewise.
37230
37231 2010-01-27  Richard Guenther  <rguenther@suse.de>
37232
37233         PR middle-end/42878
37234         * tree-inline.c (remap_decl): Delay remapping of SSA name
37235         default definitions until we need them.
37236
37237 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37238
37239         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37240         (rs6000_delegitimize_address): New function.
37241
37242         * config/s390/s390.c (s390_delegitimize_address): Call
37243         delegitimize_mem_from_attrs.
37244
37245         PR middle-end/42874
37246         * tree-inline.c (cannot_copy_type_1): Removed.
37247         (copy_forbidden): Don't forbid copying of functions containing
37248         records/unions with variable length fields.
37249
37250 2010-01-27  Christian Bruel  <christian.bruel@st.com>
37251
37252         Revert:
37253         PR target/42841
37254         * config/sh/sh.c (find_barrier): Increase length for non delayed
37255         conditional branches.
37256
37257 2010-01-27  Matthias Klose  <doko@ubuntu.com>
37258
37259         * configure.ac (gnu-unique-object): Fix ldd version check.
37260         * configure: Regenerate.
37261
37262 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37263
37264         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
37265         HAVE_GNU_AS value.
37266         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
37267         Test for HAVE_GNU_AS value.
37268
37269 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37270
37271         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
37272         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
37273         INT64_TYPE): Define.
37274         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
37275         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
37276         INT_LEAST64_TYPE): Define.
37277         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
37278         UINT_LEAST64_TYPE): Define.
37279         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
37280         INT_FAST64_TYPE): Define.
37281         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
37282         UINT_FAST64_TYPE): Define.
37283         (INTMAX_TYPE, UINTMAX_TYPE): Define.
37284         (INTPTR_TYPE, UINTPTR_TYPE): Define.
37285         (SIG_ATOMIC_TYPE): Define.
37286
37287 2010-01-26  Richard Guenther  <rguenther@suse.de>
37288
37289         * df-scan.c (df_scan_set_bb_info): Remove assert.
37290         (df_insn_rescan_debug_internal): Merge asserts.
37291         (df_install_ref): Likewise.
37292         (df_mark_reg): Use bitmap_set_range.
37293         (df_hard_reg_used_p): Remove assert.
37294         (df_hard_reg_used_count): Likewise.
37295
37296 2010-01-26  Richard Guenther  <rguenther@suse.de>
37297
37298         PR rtl-optimization/42685
37299         * web.c (web_main): Ignore DEBUG_INSNs.
37300
37301 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37302
37303         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37304
37305         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37306         Fix types of fndecl and arglist parameters.
37307
37308 2010-01-26  Richard Guenther  <rguenther@suse.de>
37309
37310         PR middle-end/42806
37311         * tree-eh.c (unsplit_eh): Skip debug insns.
37312
37313 2010-01-26  Richard Guenther  <rguenther@suse.de>
37314
37315         PR tree-optimization/42250
37316         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37317
37318 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37319
37320         PR fortran/42866
37321         * omp-low.c (expand_omp_sections): Only use single_pred if
37322         l2_bb is single_pred_p.
37323
37324 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37325
37326         PR target/42841
37327         * config/sh/sh.c (find_barrier): Increase length for non delayed
37328         conditional branches.
37329         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37330
37331 2010-01-24  David S. Miller  <davem@davemloft.net>
37332
37333         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37334         define if not using GAS.
37335         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37336         Likewise.  Delete SECTION_MERGE code, which is only applicable
37337         when using GAS.
37338
37339 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37340
37341         PR c++/42748
37342         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37343         mangling of va_list in system headers.
37344
37345 2010-01-23  Toon Moene  <toon@moene.org>
37346
37347         * tree-predcom.c (combine_chains): Return NULL, not false.
37348
37349 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37350
37351         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37352         initialization of variable res to agree with return type.
37353
37354 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37355
37356         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37357         * tree-sra.c: Add include of expr.h.
37358
37359 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37360
37361         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37362         insert the debug stmt on the single non-EH edge from the stmt.
37363
37364 2010-01-22  Richard Henderson  <rth@redhat.com>
37365
37366         PR tree-opt/42833
37367         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37368         the RHS until after generate_subtree_copies has insertted its
37369         code before the current statement.
37370
37371 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37372
37373         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37374
37375         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37376
37377 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37378
37379         PR tree-optimization/42585
37380         * tree-sra.c (struct access): New field grp_total_scalarization.
37381         (dump_access): Dump the new field.
37382         (should_scalarize_away_bitmap): New variable.
37383         (cannot_scalarize_away_bitmap): Likewise.
37384         (sra_initialize): Allocate new bitmaps.
37385         (sra_deinitialize): Free new bitmaps.
37386         (create_access_1): New function.
37387         (create_access): Parts moved to create_access_1.
37388         (type_consists_of_records_p): New function.
37389         (completely_scalarize_record): Likewise.
37390         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37391         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37392         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37393         access.
37394         (analyze_all_variable_accesses): Completely scalarize small eligible
37395         records.
37396
37397 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37398
37399         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37400
37401 2010-01-21  Andrew Haley  <aph@redhat.com>
37402
37403         * gcc.c (process_command): Move lang_specific_driver before
37404         setting cc_libexec_prefix.
37405
37406 2010-01-21  Richard Guenther  <rguenther@suse.de>
37407
37408         PR middle-end/19988
37409         * fold-const.c (negate_expr_p): Pretend only negative
37410         real constants are easily negatable.
37411
37412 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37413             Jason Merrill  <jason@redhat.com>
37414
37415         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37416         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37417         * calls.c (initialize argument_information): Handle it.
37418         * c-common.c (handle_transparent_union_attribute): Use new name.
37419         * c-decl.c (finish_struct): Ditto.
37420         * c-typeck.c (type_lists_compatible_p): Ditto.
37421         (convert_for_assignment): Use new name and also handle record.
37422         * function.c (aggregate_value_p): Handle it.
37423         (pass_by_reference): Ditto.
37424         (assign_parm_data_types): Ditto.
37425         * print-tree.c (print_node): Ditto.
37426         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37427         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37428         * tree.c (first_field): New fn.
37429
37430 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37431
37432         PR target/42818
37433         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37434         even when linking statically, for now.
37435
37436 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37437
37438         PR debug/42715
37439         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37440         without a cselib val.
37441         (count_uses): Accept MO_VAL_SET with no val on stores.
37442         (add_stores): Likewise.
37443
37444 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37445
37446         * var-tracking.c (check_value_val): Add a compile time assertion.
37447         (dv_is_decl_p): Simplify.
37448         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37449         gcc_assert if ENABLE_CHECKING.
37450
37451 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37452
37453         PR debug/42782
37454         * var-tracking.c: Include tree-flow.h.
37455         (mem_dies_at_call): New.
37456         (dataflow_set_preserve_mem_locs): Use it.
37457         (dataflow_set_remove_mem_locs): Likewise.
37458         (dump_var): Renamed from dump_variable.  Adjust all callers.
37459         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37460         * Makefile.in (var-tracking.o): Adjust deps.
37461
37462 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37463
37464         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37465
37466 2010-01-20  Richard Guenther  <rguenther@suse.de>
37467
37468         PR tree-optimization/42717
37469         * tree-ssa-dce.c (get_live_post_dom): Remove.
37470         (forward_edge_to_pdom): Take an arbitrary edge to copy
37471         degenerate PHI args from.
37472         (remove_dead_stmt): Use the first post-dominator even if it
37473         does not contain live statements as redirection destination.
37474
37475 2010-01-20  Richard Guenther  <rguenther@suse.de>
37476
37477         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37478
37479 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37480
37481         * sel-sched.c (create_speculation_check): Remove set but not used
37482         variable twin.
37483         (try_transformation_cache): Remove set but not used variable ds.
37484         (calculate_privileged_insns): Remove set but not used variables
37485         cur_insn and min_spec_insn.
37486         (find_best_expr): Remove set but not used variable avail_n.
37487         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37488         variable e.
37489         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37490         false_label.
37491         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37492         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37493         new_scop_exit_edge.
37494
37495 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37496
37497         PR bootstrap/42786
37498         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37499         cpu types.  Add support for *-sse3 cpu types.
37500         (x86_64-*-*): Ditto.
37501
37502 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37503
37504         PR middle-end/42803
37505         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37506         argument, call initializer_constant_valid_p_1 instead of
37507         initializer_constant_valid_p, pass CACHE to it, return NULL
37508         immediately if first call returns NULL.
37509         (initializer_constant_valid_p_1): New function.
37510         (initializer_constant_valid_p): Use it.
37511
37512 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37513
37514         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37515
37516 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37517
37518         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37519         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37520         (loc_list_from_tree): Don't handle unsigned division.  Handle
37521         signed modulo using DW_OP_{over,over,div,mul,minus}.
37522         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37523         modulo instead of signed.
37524
37525 2010-01-20  DJ Delorie  <dj@redhat.com>
37526
37527         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37528         (Fpa): Pass it
37529         (h8300_emit_stack_adjustment): Propogate it.
37530         (push): Pass it.
37531         (h8300_expand_prologue): Likewise.
37532         (h8300_expand_epilogue): Likewise.
37533
37534 2010-01-19  Michael Matz  <matz@suse.de>
37535
37536         PR tree-optimization/41783
37537         * tree-data-ref.c (toplevel): Include flags.h.
37538         (dump_data_dependence_relation):  Also dump the inputs if the
37539         result will be unknown.
37540         (split_constant_offset_1): Look through some conversions.
37541         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37542         the offset from last element is too large.
37543         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37544         (reassociate_to_the_same_stmt): Handle vector registers.
37545         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37546         (e.g. conversions).
37547         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37548         wide_prolog_niters argument, emit widening instructions.
37549         (vect_do_peeling_for_alignment): Adjust caller, use widened
37550         variant of the iteration cound.
37551         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37552
37553 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37554
37555         PR target/38697
37556         * config/arm/neon-testgen.m (emit_automatics): New parameter
37557         features. Adjust for Fixed_return_reg feature.
37558         (test_intrinsic): Call emit_automatics with new feature.
37559         * config/arm/neon.ml: Update copyright years.
37560         (features): New Fixed_return_reg feature.
37561         (ops): Update feature for Vget_low.
37562
37563 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37564
37565         PR tree-optimization/42719
37566         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37567         stmt uses.
37568
37569         PR debug/42728
37570         * fwprop.c (all_uses_available_at): Return false if def_set dest
37571         is a REG that is used in def_insn.
37572
37573 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37574
37575         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37576
37577         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37578         Add argument names.
37579
37580         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37581
37582         * target.h (struct gcc_target) <secondary_reload>: Change type
37583         of last argument to secondary_reload_info *.
37584
37585 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37586
37587         PR target/42774
37588         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37589         memory references with unaligned offsets.  Remove CQImode handling.
37590         (unaligned_memory_operand): Return 1 for memory references with
37591         unaligned offsets.  Remove CQImode handling.
37592
37593 2010-01-18  Richard Guenther  <rguenther@suse.de>
37594
37595         PR middle-end/39954
37596         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37597         builtin calls.
37598
37599 2010-01-18  Richard Guenther  <rguenther@suse.de>
37600
37601         PR tree-optimization/42781
37602         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37603         restrict processing only if the original variable was artificial.
37604
37605 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37606
37607         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37608         find number of popped argument bytes.
37609
37610         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37611         Fix the text that describes the return value for invalid insns.
37612
37613         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37614
37615         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37616         Clarify what 'cost of the -dependence' is.  Fix quoting.
37617
37618         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37619         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37620
37621 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37622
37623         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37624         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37625
37626 2010-01-17  Richard Guenther  <rguenther@suse.de>
37627
37628         PR middle-end/42248
37629         * function.c (split_complex_args): Take a VEC to modify.
37630         (assign_parms_augmented_arg_list): Build a VEC instead of
37631         a chain of PARM_DECLs.
37632         (assign_parms_unsplit_complex): Take a VEC of arguments.
37633         Do not fixup unmodified parms.
37634         (assign_parms): Deal with the VEC.
37635         (gimplify_parameters): Likewise.
37636
37637 2010-01-17  Richard Guenther  <rguenther@suse.de>
37638
37639         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37640         node existence check.
37641         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37642         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37643         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37644         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37645         (gimple_execute_on_growing_pred): Likewise.
37646
37647 2010-01-17  Richard Guenther  <rguenther@suse.de>
37648
37649         PR tree-optimization/42773
37650         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37651         (compute_antic_aux): Likewise.
37652         (compute_partial_antic_aux): Likewise.
37653
37654 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37655
37656         PR debug/42767
37657         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37658         and US_TRUNCATE.
37659
37660 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37661
37662         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37663         appearance.
37664
37665         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37666         Fix markup for strict argument.
37667
37668         (TARGET_SCHED_REORDER2): Fix argument types.
37669
37670         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37671         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37672
37673         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37674         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37675
37676         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37677         Add argument name.
37678
37679         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37680         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37681         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37682         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37683         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37684
37685         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37686
37687         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37688
37689         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37690         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37691
37692         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37693
37694         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37695         Use prototype.
37696
37697         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37698
37699         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37700         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37701
37702         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37703
37704         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37705
37706         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37707         referring to it.  Fix language.
37708
37709         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37710
37711         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37712
37713         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37714
37715         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37716
37717         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37718         '@var{stream}.  Remove stray 'and'.
37719
37720         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37721
37722         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37723
37724         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37725
37726         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37727         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37728
37729         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37730         Fix description of return value.
37731         Rename argument "sz" to "len."
37732
37733         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37734         Clarify meaning of 'true' return value.
37735
37736         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37737
37738         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37739         rep_mode versus mode_rep.
37740
37741         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37742
37743         (TARGET_BUILTIN_DECL): Fix name.
37744
37745         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37746
37747         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37748
37749         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37750
37751         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37752
37753         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37754
37755         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37756         Clarify language.
37757
37758         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37759         Rename argument tm_fn to md_fn.
37760
37761         (TARGET_OPTION_PRINT): Fix argument list.
37762
37763 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37764
37765         PR target/42664
37766         * config/i386/i386.c (ix86_fixup_binary_operands):
37767         Revert FMA4 fixup of operands.
37768
37769 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37770
37771         PR other/42525
37772         * Makefile.in (write_entries_to_file, install-plugin):
37773         Use \012 instead of \n with tr.
37774
37775 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37776
37777         * configure.ac (HAVE_AS_REF): New C macro.
37778         * configure: Regenerate.
37779         * config.in: Likewise.
37780         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37781         if HAVE_AS_REF.
37782         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37783         if HAVE_AS_REF.
37784
37785 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37786
37787         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37788
37789         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37790
37791         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37792
37793         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37794
37795         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37796
37797         (TARGET_BINDS_LOCAL_P): Fix argument type.
37798
37799         (TARGET_ASM_FILE_END): Use prototype.
37800
37801         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37802
37803         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37804
37805         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37806
37807         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37808
37809         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37810         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37811
37812         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37813         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37814
37815         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37816         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37817         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37818         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37819
37820         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37821
37822         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37823
37824         (TARGET_INIT_BUILTINS): Use prototype.
37825
37826         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37827         Put 'const char *' in braces.  Fix parameter types.
37828         (TARGET_INVALID_CONVERSION): Fix parameter types.
37829         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37830         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37831
37832         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37833         Fix argument type.
37834
37835         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37836
37837         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37838
37839 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37840
37841         * doc/tm.texi (TARGET_HELP): Fix return type.
37842
37843         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37844         in braces.  Fix argument types.
37845
37846         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37847
37848         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37849
37850         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37851
37852         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37853         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37854
37855         (TARGET_MANGLE_TYPE): Fix argument types.
37856
37857         (TARGET_IRA_COVER_CLASSES): Use prototype.
37858
37859         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37860
37861         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37862
37863         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37864
37865         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37866
37867         (TARGET_CALLEE_COPIES): Fix argument types.
37868
37869         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37870
37871         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37872
37873         (TARGET_FUNCTION_VALUE): Fix argument types.
37874
37875         (TARGET_RETURN_IN_MSB): Fix argument type.
37876
37877         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37878
37879         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37880
37881         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37882
37883         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37884         agree with return type.
37885
37886         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37887
37888 2010-01-15  Jing Yu  <jingyu@google.com>
37889
37890         PR rtl-optimization/42691
37891         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37892         a pseudo to a constant and are merged, and adjust comments.
37893
37894 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37895
37896         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37897
37898 2010-01-15  Richard Guenther  <rguenther@suse.de>
37899
37900         PR middle-end/42739
37901         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37902         labels of computed or non-local gotos to the destination.
37903         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37904         landing pad label is the first label.
37905
37906 2010-01-15  Richard Guenther  <rguenther@suse.de>
37907
37908         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37909
37910 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37911
37912         PR target/42747
37913         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37914         to allow generation of the xssqrtdp instruction on power7.
37915         (sqrtdf2_fpr): Ditto.
37916
37917 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37918
37919         PR middle-end/42674
37920         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37921         functions with noreturn attribute.
37922
37923         PR c++/42608
37924         * varasm.c (declare_weak): Add weak attribute to decl if it
37925         doesn't have one already.
37926         (assemble_external): Only add decls to weak_decls if they also
37927         have weak attribute.
37928
37929 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37930
37931         * var-tracking.c (var_reg_delete): Don't delete the association
37932         between REGs and values or one-part variables if the register
37933         isn't clobbered.
37934
37935 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37936
37937         PR debug/42657
37938         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37939         because its first operand is a non-localized variable.
37940
37941 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37942
37943         PR tree-optimization/42706
37944         * tree-sra.c (encountered_recursive_call): New variable.
37945         (encountered_unchangable_recursive_call): Likewise.
37946         (sra_initialize): Initialize both new variables.
37947         (callsite_has_enough_arguments_p): New function.
37948         (scan_function): Call decl and flags check only for IPA-SRA, check
37949         whether there is a recursive call and whether it has enough arguments.
37950         (all_callers_have_enough_arguments_p): New function.
37951         (convert_callers): Look for recursive calls only when
37952         encountered_recursive_call is set.
37953         (ipa_early_sra): Bail out either if
37954         !all_callers_have_enough_arguments_p or
37955         encountered_unchangable_recursive_call.
37956
37957 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37958
37959         * sel-sched.c: Add 2010 to copyright years.
37960         * sel-sched-ir.c: Likewise.
37961         * sel-sched-ir.h: Likewise.
37962
37963 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37964
37965         PR tree-optimization/42714
37966         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37967         constructors specially.
37968
37969 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37970
37971         * config/i386/drivers-i386.c (detect_caches_intel):
37972         Add l2sizekb parameter and fill in.
37973         (host_detect_local_cpu): Add l2sizekb, fill in.
37974         Add Atom small cache heuristic.
37975
37976 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37977
37978         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37979         Add level3 parameter and fill in.
37980         (detect_caches_intel): Handle level3 cache.
37981
37982 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37983
37984         * config/i386/drivers-i386.c (host_detect_local_cpu):
37985         Fix core duo detection.
37986
37987 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37988
37989         * config/i386/drivers-i386.c (host_detect_local_cpu):
37990         Fix Atom detection.
37991
37992 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37993
37994         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37995         (rs6000_variable_issue_1): this.  Use...
37996         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37997
37998 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37999
38000         * sel-sched-ir.c (sel_restore_other_notes): Rename to
38001         sel_restore_notes.  Update all callers.  Call reemit_notes
38002         for all insns.
38003
38004 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38005
38006         PR rtl-optimization/42246
38007         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
38008         loops.
38009
38010 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38011
38012         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
38013         all successors is the same as number of successors in current region.
38014
38015 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38016
38017         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
38018         to rename is not separable.  Otherwise check that its LHS is not NULL.
38019
38020 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38021
38022         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
38023
38024 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38025
38026         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
38027         available registers when failed to discover LHS register class.
38028         Fix indentation.  Update comment.
38029
38030 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38031             Alexander Monakov  <amonakov@ispras.ru>
38032
38033         PR rtl-optimization/42389
38034         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
38035         to can_issue_more.
38036         (advance_state_on_fence): Likewise.
38037         (sel_target_adjust_priority): Print debug output only when
38038         sched_verbose >= 4, not 2.
38039         (get_expr_cost): Do not issue all unique insns on the next cycle.
38040         (fill_insns): Initialize can_issue_more from the value saved
38041         with the fence.
38042         * sel-sched-ir.c (flist_add): New parameter issue_more.
38043         Init FENCE_ISSUE_MORE with it.
38044         (merge_fences): Likewise.
38045         (init_fences): Update call to flist_add.
38046         (add_to_fences, add_clean_fence_to_fences)
38047         (add_dirty_fence_to_fences): Likewise.
38048         (move_fence_to_fences): Update call to merge_fences.
38049         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
38050         sched groups.
38051         * sel-sched-ir.h (struct _fence): New field issue_more.
38052         (FENCE_ISSUE_MORE): New accessor macro.
38053
38054 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38055
38056         PR rtl-optimization/42388
38057         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
38058         that have no predecessors nor successors.  Do not call move_bb_info
38059         for empty blocks outside of current region.
38060
38061 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38062
38063         PR rtl-optimization/42294
38064         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
38065         * sel-sched.c (move_exprs_to_boundary): Transitively add all
38066         originators' originators.
38067
38068 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38069
38070         PR rtl-optimization/39453
38071         PR rtl-optimization/42246
38072         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
38073         for pipelining_p.
38074         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
38075
38076 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38077             Alexander Monakov  <amonakov@ispras.ru>
38078
38079         PR middle-end/42245
38080         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
38081         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
38082         argument.  Update all callers.
38083         (tidy_control_flow): ... and here.  Recompute topological order
38084         of basic blocks in region if necessary.
38085         (sel_redirect_edge_and_branch): Change return type.  Return true
38086         if topological order might have been invalidated.
38087         (purge_empty_blocks): Export and move from...
38088         * sel-sched.c (purge_empty_blocks): ... here.
38089         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
38090         (maybe_tidy_empty_bb): Delete prototype.
38091         (purge_empty_blocks): Declare.
38092
38093 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38094
38095         PR rtl-optimization/42249
38096         * sel-sched.c (try_replace_dest_reg): When chosen register
38097         and original register is the same, do not bail out early, but
38098         still check all original insns for validity of replacing destination
38099         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
38100         in this case.
38101
38102 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38103
38104         PR c/42721
38105         Port from no-undefined-overflow branch:
38106         2009-03-09  Richard Guenther  <rguenther@suse.de>
38107
38108         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
38109
38110 2010-01-14  Richard Guenther  <rguenther@suse.de>
38111
38112         PR lto/42665
38113         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
38114
38115 2010-01-14  Ira Rosen  <irar@il.ibm.com>
38116
38117         PR tree-optimization/42709
38118         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
38119         as scalar type in creation of constant vector operand.
38120
38121 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38122
38123         PR testsuite/42414
38124         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
38125         (check-parallel-%): Match `testsuite' directory component only
38126         at the end.
38127
38128 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
38129
38130         PR translation/39521
38131         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
38132         strings with _().
38133
38134 2010-01-13  Richard Guenther  <rguenther@suse.de>
38135
38136         PR tree-optimization/42730
38137         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
38138         offset zero.
38139
38140 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
38141
38142         PR target/pr42542
38143         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
38144         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
38145         them signed.
38146
38147 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
38148
38149         * config/bfin/libgcc-bfin.ver: Regenerate based on current
38150         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
38151         ___umulsi3_highpart.
38152
38153         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
38154         rather than schedule_insns if the pass is enabled.
38155
38156 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38157
38158         PR tree-optimization/42704
38159         * tree-sra.c (sra_modify_assign): Do not delete assignments to
38160         SSA_NAMEs.
38161
38162 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38163
38164         PR tree-optimization/42703
38165         * tree-sra.c (analyze_access_subtree): Check that we can build a
38166         reference to the original data within the aggregate.
38167
38168 2010-01-13  Richard Guenther  <rguenther@suse.de>
38169
38170         PR tree-optimization/42705
38171         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
38172
38173 2010-01-13  Richard Guenther  <rguenther@suse.de>
38174
38175         PR middle-end/42716
38176         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
38177
38178 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
38179
38180         PR debug/41371
38181         * var-tracking.c (values_to_unmark): New variable.
38182         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
38183         values_to_unmark vector.  Moved body to...
38184         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
38185         instead queue it into values_to_unmark vector.
38186         (vt_find_locations): Free values_to_unmark vector.
38187
38188 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
38189
38190         * config/s390/s390.c (override_options): Set
38191         default of max-pending-list-length to 256
38192
38193 2010-01-13  Richard Guenther  <rguenther@suse.de>
38194
38195         PR lto/42678
38196         * tree-pass.h (PROP_gimple_lcx): New.
38197         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
38198         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
38199         before the final cleanup_eh.
38200         (dump_properties): Dump PROP_gimple_lcx.
38201         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
38202         (tree_lower_complex_O0): Remove.
38203         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
38204         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
38205         tree_lower_complex, schedule TODO_update_ssa.
38206         * lto-streamer-out.c (output_function): Stream the functions
38207         properties.
38208         * lto-streamer-in.c (input_function): Likewise.
38209         (lto_read_body): Do not override them here.
38210
38211 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
38212
38213         PR c/42708
38214         * c-typeck.c (build_c_cast): Fold value cast to union type before
38215         wrapping it in a CONSTRUCTOR.
38216
38217 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38218
38219         PR rtl-optimization/42699
38220         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
38221         involved.
38222
38223 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38224
38225         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38226         SUBTARGET_WARN_UNUSED_SPEC): Move ...
38227         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38228         SUBTARGET_WARN_UNUSED_SPEC): ... here
38229         * config/mips/iris5.h (LIBGCC_SPEC): Define.
38230
38231 2010-01-12  Julian Brown  <julian@codesourcery.com>
38232
38233         * config/arm/neon-schedgen.ml (Utils): Don't try to
38234         open missing module.
38235         (find_with_result): New.
38236
38237 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38238
38239         PR debug/42662
38240         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
38241         sharing when canonicalizing ({lt,ge}u (plus a b) b).
38242
38243         PR tree-optimization/42645
38244         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
38245         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
38246         decl_map, set processing_debug_stmt to -1 and return name without
38247         any remapping.
38248
38249 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
38250
38251         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
38252         binutils version, and reword target configuration description.
38253
38254 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38255
38256         * config/avr/avr.h (LINKER_NAME): Remove.
38257
38258 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
38259
38260         PR target/42416
38261         * config/rs6000/rs6000.c (rs6000_override_options): On targets
38262         that support VSX, warn for -mno-altivec if vsx is not disabled,
38263         and disable vsx.
38264
38265 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
38266             Shujing Zhao  <pearly.zhao@oracle.com>
38267
38268         PR translation/42469
38269         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
38270         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
38271         character between option name and help text.
38272         * c.opt (imultilib): Likewise.
38273
38274 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
38275
38276         * lto-streamer-out.c (output_unreferenced_globals): Output static
38277         variables.
38278
38279 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
38280
38281         PR rtl-optimization/42621
38282         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
38283         optimizing for size.
38284         (duplicate_computed_gotos): Remove now-redundant check.
38285
38286 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
38287
38288         PR target/37454
38289         * configure.ac: Save and restore LDFLAGS and LIBS
38290         * configure: Regenerate.
38291
38292 2010-01-10  Richard Guenther  <rguenther@suse.de>
38293
38294         PR middle-end/42667
38295         * builtins.c (fold_builtin_strlen): Add type argument and
38296         convert the resulting length to it.
38297         (fold_builtin_1): Adjust.
38298
38299 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38300
38301         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38302         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38303         1 insn.
38304         (num_insns_constant_wide): Adjust for that change.
38305
38306 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38307
38308         PR debug/42631
38309         * web.c (union_defs): Add used argument, to combine uses of
38310         uninitialized regs.
38311         (entry_register): Adjust type and tests of used argument.
38312         (web_main): Widen used for new use.  Pass it to union_defs.
38313         * df.h (union_defs): Adjust prototype.
38314
38315 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38316
38317         PR debug/42630
38318         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38319         uses in new incoming argument.  Free body.
38320         (reset_debug_uses_in_loop): New.
38321         (analyze_insn_to_expand_var): Call the latter if the former found
38322         anything.  Fix whitespace.  Reject invalid dest overlaps before
38323         going through all insns in the loop.
38324
38325 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38326
38327         PR debug/42629
38328         * haifa-sched.c (dying_use_p): Debug insns don't count.
38329
38330 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38331
38332         PR middle-end/42363
38333         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38334         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38335         (verify_gimple_call): Reject LHS in noreturn calls.
38336
38337 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38338
38339         PR debug/42604
38340         PR debug/42395
38341         * tree-vect-loop-manip.c (adjust_info): New type.
38342         (adjust_vec): New pointer to vector.
38343         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38344         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38345         (slpeel_update_phis_for_duplicate_loop): Use them.
38346         (slpeel_update_phi_nodes_for_guard1): Likewise.
38347         (slpeel_update_phi_nodes_for_guard2): Likewise.
38348         (slpeel_tree_peel_loop_to_edge): Likewise.
38349         (vect_update_ivs_after_vectorizer): Likewise.
38350
38351 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38352
38353         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38354         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38355
38356 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38357
38358         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38359         bogus uninitialized warning.
38360
38361 2010-01-09  Richard Guenther  <rguenther@suse.de>
38362
38363         PR middle-end/42512
38364         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38365         the evolution is compatible with the initial condition.
38366
38367 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38368
38369         * gcc.c (process_command): Update copyright notice dates.
38370         * gcov.c (print_version): Likewise.
38371         * gcov-dump.c (print_version): Likewise.
38372         * mips-tfile.c (main): Likewise.
38373         * mips-tdump.c (main): Likewise.
38374
38375 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38376
38377         PR target/41885
38378         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38379         (rotlhi3): Delete.
38380         (rotlhi3_8): Delete.
38381         (rotlsi3): Delete.
38382         (rotlsi3_8): Delete.
38383         (rotlsi3_16): Delete.
38384         (rotlsi3_24): Delete.
38385         (rotl<mode>3): New.
38386         (*rotw<mode>3): New.
38387         (*rotb<mode>3): New.
38388         * config/avr/avr.c (avr_rotate_bytes): New function.
38389         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38390
38391 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38392
38393         PR target/37454
38394         * configure.ac: Modify -rdynamic check.
38395         * configure: Regenerate.
38396
38397 2010-01-08  DJ Delorie  <dj@redhat.com>
38398
38399         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38400         register popping order.
38401
38402 2010-01-08  Richard Guenther  <rguenther@suse.de>
38403
38404         PR lto/42528
38405         * c.opt (fsigned-char): Also let LTO handle this option.
38406         (funsigned-char): Likewise.
38407
38408 2010-01-07  Richard Guenther  <rguenther@suse.de>
38409
38410         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38411         (gimple_op): Likewise.
38412         (gimple_op_ptr): Likewise.
38413         (gimple_assign_set_lhs): Remove gcc_assert.
38414         (gimple_assign_set_rhs1): Likewise.
38415         (gimple_assign_set_rhs2): Likewise.
38416         (gimple_call_set_lhs): Likewise.
38417         (gimple_call_set_fn): Likewise.
38418         (gimple_call_set_fndecl): Likewise.
38419         (gimple_call_fndecl): Likewise.
38420         (gimple_call_return_type): Likewise.
38421         (gimple_call_set_chain): Likewise.
38422         (gimple_call_num_args): Likewise.
38423         (gimple_call_set_arg): Likewise.
38424         (gimple_cond_set_code): Likewise.
38425         (gimple_cond_set_lhs): Likewise.
38426         (gimple_cond_set_rhs): Likewise.
38427         (gimple_cond_set_true_label): Likewise.
38428         (gimple_cond_set_false_label): Likewise.
38429         (gimple_label_set_label): Likewise.
38430         (gimple_goto_set_dest): Likewise.
38431         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38432         (gimple_debug_bind_get_value): Likewise.
38433         (gimple_debug_bind_get_value_ptr): Likewise.
38434         (gimple_debug_bind_set_var): Likewise.
38435         (gimple_debug_bind_set_value): Likewise.
38436         (gimple_debug_bind_reset_value): Likewise.
38437         (gimple_debug_bind_has_value_p): Likewise.
38438         (gimple_return_retval_ptr): Remove gcc_assert.
38439         (gimple_return_retval): Likewise.
38440         (gimple_return_set_retval): Likewise.
38441         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38442         (safe_referenced_var_iterator): Remove.
38443         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38444         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38445         (fill_referenced_var_vec): Remove.
38446         (first_readonly_imm_use): Remove redundant gcc_assert.
38447         (phi_arg_index_from_use): Combine gcc_asserts.
38448         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38449         (first_imm_use_stmt): Remove redundant gcc_assert.
38450         * tree-cfg.c (verify_gimple_call): Verify function and chain
38451         operands.  Verify arguments.
38452         (verify_types_in_gimple_stmt): Verify condition code and labels.
38453
38454 2010-01-07  Richard Guenther  <rguenther@suse.de>
38455
38456         PR tree-optimization/42641
38457         * sese.c (rename_map_elt_info): Use the SSA name version, do
38458         not hash pointers.
38459
38460 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38461
38462         PR tree-optimization/42625
38463         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38464         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38465
38466 2010-01-07  Duncan Sands  <baldrick@free.fr>
38467
38468         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38469
38470 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38471
38472         PR target/42511
38473         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38474         note itself is not function_invariant_p.
38475
38476 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38477
38478         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38479         Do not add the DF_NOTE problem.
38480         * store-motion.c (execute_rtl_store_motion): Likewise.
38481
38482 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38483
38484         PR tree-optimization/42157
38485         * tree-sra.c (compare_access_positions): Stabilize sort if both
38486         accesses have integer types, return zero immediately if they are the
38487         same.
38488
38489 2010-01-06  Richard Henderson  <rth@redhat.com>
38490
38491         PR middle-end/41883
38492         * haifa-sched.c (add_to_note_list): Merge into ...
38493         (concat_note_lists): ... here, and ...
38494         (unlink_other_notes, rm_other_notes): Merge into...
38495         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38496         NOTE_INSN_EPILOGUE_BEG.
38497
38498 2010-01-06  Richard Guenther  <rguenther@suse.de>
38499
38500         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38501         not inline regular functions into always-inline functions.
38502
38503 2010-01-06  Nick Clifton  <nickc@redhat.com>
38504
38505         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38506         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38507         used together.
38508         (OVERRIDE_OPTIONS): Delete.
38509         (OPTIMIZATION_OPTIONS): Define.
38510         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38511         * config/rx/rx.c (rx_handle_option): Issue an error message if
38512         -mcpu=rx200 and -fpu are used together.
38513         (rx_set_optimization_options): New function.  Issue an error
38514         message if an optimization attribute attempts to reset the FPU/
38515         math optimization pairing.
38516         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38517         * config/rx/rx.opt: Set the default to 32-bit doubles.
38518         * config/rx/t-rx: Add multilibs for -nofpu option.
38519         * doc/invoke.texi: Update documentation of RX options.
38520
38521 2010-01-06  Richard Guenther  <rguenther@suse.de>
38522
38523         * tree-ssa-pre.c (name_to_id): New global.
38524         (alloc_expression_id): Simplify SSA name handling.
38525         (lookup_expression_id): Likewise.
38526         (init_pre): Zero name_to_id.
38527         (fini_pre): Free it.
38528
38529 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38530
38531         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38532
38533 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38534
38535         PR target/42542
38536         * config/i386/sse.md (smaxv2di3): New.
38537         (umaxv2di3): Likewise.
38538         (sminv2di3): Likewise.
38539         (uminv2di3): Likewise.
38540
38541 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38542
38543         PR target/42564
38544         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38545         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38546         (legitimize_tls_address): Likewise.
38547         (sparc_tls_referenced_p): Likewise.
38548         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38549         and adjust calls to legitimize_pic_address.
38550         (legitimate_constant_p) Use sparc_tls_referenced_p.
38551         (legitimate_pic_operand_p): Likewise.
38552         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38553         (sparc_tls_symbol_ref_1): Delete.
38554         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38555         (legitimize_tls_address): Make static, handle CONST patterns.
38556         (legitimize_pic_address): Make static, remove unused parameter and
38557         adjust recursive calls.
38558         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38559         and adjust call to legitimize_pic_address.
38560         (sparc_output_mi_thunk): Likewise.
38561
38562 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38563             H.J. Lu  <hongjiu.lu@intel.com>
38564
38565         PR target/42542
38566         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38567         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38568         operands to make them signed.
38569
38570         Revert:
38571         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38572
38573         PR target/42542
38574         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38575         GTU to GT for V4SI and V2DI.
38576
38577         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38578         (umin<mode>3): Removed.
38579         (uminv8hi3): New.
38580         (uminv4si3): Likewise.
38581
38582 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38583
38584         PR tree-optimization/42462
38585         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38586         current_function_decl to helper functions and macros.
38587
38588 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38589
38590         PR bootstrap/41771
38591         * flags.h: Don't include real.h.
38592         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38593         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38594         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38595         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38596         * dominance.c: Update copyright.
38597         * gimple.c (walk_gimple_op): Remove inline.
38598         * tree-ssa-reassoc.c: Include real.h.
38599         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38600         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38601
38602 2010-01-05  Nick Clifton  <nickc@redhat.com>
38603
38604         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38605         register to push into the stack frame when the accumulator has to
38606         be saved during interrupts.
38607
38608 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38609
38610         * doc/invoke.texi: Remove the documentation about option
38611         -Wunreachable-code.
38612         * common.opt (Wunreachable-code):  Preserved for backward
38613         compatibility.
38614         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38615         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38616         the backward compatibility flag section.
38617
38618 2010-01-05  Richard Guenther  <rguenther@suse.de>
38619
38620         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38621
38622 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38623
38624         PR other/42611
38625         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38626
38627         PR tree-optimization/42508
38628         * tree-sra.c (convert_callers): Check for recursive call
38629         by comparing cgraph nodes instead of decls.
38630         (modify_function): Call ipa_modify_formal_parameters also
38631         on all same_body aliases.
38632
38633         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38634         cgraph nodes when checking for same_body aliases.
38635
38636 2010-01-05  Richard Guenther  <rguenther@suse.de>
38637
38638         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38639         allocation and lookup.
38640         (get_or_alloc_expr_for_constant): Likewise.
38641         (phi_translate): Sink allocation.
38642
38643 2010-01-04  Richard Guenther  <rguenther@suse.de>
38644
38645         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38646         a new entry only if needed.
38647         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38648         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38649         hashtable lookup.
38650         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38651         the result array.
38652         (phi_translate): Handle CONSTANTs early.
38653
38654 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38655
38656         PR tree-optimization/42398
38657         * tree-sra.c (struct access): Removed flag grp_different_types.
38658         (dump_access): Do not dump the removed flag.
38659         (sort_and_splice_var_accesses): Do not set the removed flag.
38660         (sra_modify_expr): Check for type compatibility directly.
38661
38662 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38663
38664         PR tree-optimization/42366
38665         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38666         edges with variable number of parameters.
38667         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38668         flag instead of asserting it.
38669         (ipa_read_node_info): Read uses_analysis_done flag.
38670
38671 2010-01-04  Richard Guenther  <rguenther@suse.de>
38672
38673         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38674         iterative_hash_* as intended.
38675         (vn_reference_compute_hash): Likewise.  Simplify hashing
38676         SSA names.
38677         (vn_reference_lookup_2): Likewise.
38678         (vn_nary_op_compute_hash): Likewise.
38679         (vn_phi_compute_hash): Likewise.
38680         (expressions_equal_p): Remove strange code.
38681         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38682         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38683         (bitmap_insert_into_set_1): Take value-id as parameter.
38684         (add_to_value): Pass it.
38685         (bitmap_insert_into_set): Likewise.
38686         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38687
38688 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38689
38690         PR driver/42442
38691         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38692         (do_self_spec): For switches with SWITCH_IGNORE set set also
38693         SWITCH_IGNORE_PERMANENTLY.
38694         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38695         of SWITCH_IGNORE.
38696
38697 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38698
38699         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38700         tree of an unreferenced global var.
38701
38702 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38703
38704         PR target/42542
38705         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38706         GTU to GT for V4SI and V2DI.
38707
38708         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38709         (umin<mode>3): Removed.
38710         (uminv8hi3): New.
38711         (uminv4si3): Likewise.
38712
38713 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38714
38715         PR lto/42581
38716         * collect2.c (main): Turn on trace in collect2 if -v is passed
38717         to gcc with LTO.
38718
38719 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38720
38721         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38722         description of expression operand.
38723
38724 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38725
38726         * configure.ac: Add install-html to target_list for Make-hooks.
38727         * configure: Regenerate.
38728         * fortran/Make-lang.in (F95_HTMLFILES): New.
38729         (fortran.html): Use it.
38730         (fortran.install-html): New.
38731         * Makefile.in (install-html): Add lang.install-html.
38732         * java/Make-lang.in (JAVA_HTMLFILES): New.
38733         (java.html): Use it.
38734         (java.install-html): New.
38735         * objc/Make-lang.in (objc.install-html): New.
38736         * objcp/Make-lang.in (obj-c++.install-html): New.
38737         * cp/Make-lang.in (c++.install-html): New.
38738         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38739         * lto/Make-lang.in (lto.install-html): New.
38740
38741 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38742
38743         PR lto/42520
38744         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38745
38746 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38747
38748         PR rtl-optimization/41862
38749         * store-motion.c (store_killed_in_insn, compute_store_table,
38750         remove_reachable_equiv_notes, replace_store_insn,
38751         build_store_vectors): Ignore all DEBUG_INSNs.
38752
38753 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38754
38755         PR lto/41564
38756         * common.opt: Add dumpdir.
38757
38758         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38759         isn't specified.
38760         (option_map): Add --dumpdir.
38761
38762         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38763
38764         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38765
38766         * opts.c (decode_options): Try dump_dir_name first if
38767         dump_base_name isn't an absolute path.
38768         (common_handle_option): Handle OPT_dumpdir.
38769
38770         * toplev.c (dump_dir_name): New.
38771         (print_switch_values): Also ignore -dumpdir.
38772
38773         * toplev.h (dump_dir_name): New.
38774
38775 2010-01-03  Richard Guenther  <rguenther@suse.de>
38776
38777         PR tree-optimization/42589
38778         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38779         double-word expansion of bswap32.
38780
38781 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38782
38783         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38784         with BLOCK_FOR_INSN.
38785         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38786         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38787         noce_process_if_block): Likewise.
38788         * gcse.c (compute_local_properties, insert_expr_in_table,
38789         insert_set_in_table, canon_list_insert, find_avail_set,
38790         pre_insert_copy_insn): Likewise.
38791
38792         * basic-block.h (BLOCK_NUM): Move from here...
38793         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38794
38795 2010-01-03  Richard Guenther  <rguenther@suse.de>
38796
38797         PR tree-optimization/42438
38798         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38799         contains_may_not_return_call flag.
38800         (BB_MAY_NOTRETURN): New.
38801         (valid_in_sets): Trapping nary operations are not valid
38802         in blocks that may not return.
38803         (insert_into_preds_of_block): Remove check for trapping expressions.
38804         (compute_avail): Compute also BB_MAY_NOTRETURN.
38805
38806 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38807
38808         * doc/invoke.texi: Add 2010 to copyright years.
38809
38810 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38811
38812         * config/sparc/sparc.c: Fix formatting nits.
38813
38814 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38815             Alexander Monakov  <amonakov@ispras.ru>
38816
38817         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38818
38819 2010-01-02  Richard Guenther  <rguenther@suse.de>
38820
38821         PR middle-end/42577
38822         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38823         (simplify_switch_using_ranges): Mark to be removed edges
38824         as non-executable.
38825
38826 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38827
38828         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38829
38830         * collect2.c (scan_libraries): Add missing argument in call to
38831         scan_prog_file.
38832
38833 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38834
38835         PR target/42448
38836         * config/alpha/predicates.md (aligned_memory_operand): Return false
38837         for CQImode.
38838         (unaligned_memory_operand): Return true for CQImode.
38839         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38840         doesn not cross aligned SImode word boundary.
38841
38842 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38843
38844         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38845         Remove.
38846         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38847         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38848
38849 2010-01-02  Richard Guenther  <rguenther@suse.de>
38850
38851         PR lto/41597
38852         * toplev.c (compile_file): Emit LTO marker properly.  Change
38853         it to __gnu_lto_v1.
38854         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38855
38856 2010-01-01  Richard Guenther  <rguenther@suse.de>
38857
38858         PR debug/42455
38859         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38860
38861 2010-01-01  Richard Guenther  <rguenther@suse.de>
38862
38863         PR c/42570
38864         * c-decl.c (grokdeclarator): For zero-size arrays force
38865         structural equality checks as layout_type does.
38866
38867 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38868
38869         * builtins.c: Update copyright to 2010.
38870
38871 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38872
38873         PR lto/42531
38874         * lto-streamer-out.c (produce_asm): Revert the last change.
38875         (copy_function): Likewise.
38876
38877         * lto-streamer.c (lto_get_section_name): Skip any leading
38878         asterisk in name.
38879
38880 2010-01-01  Richard Guenther  <rguenther@suse.de>
38881
38882         PR middle-end/42559
38883         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38884         for LABEL_DECLs.
38885
38886 \f
38887 Copyright (C) 2010 Free Software Foundation, Inc.
38888
38889 Copying and distribution of this file, with or without modification,
38890 are permitted in any medium without royalty provided the copyright
38891 notice and this notice are preserved.