OSDN Git Service

enable mdynamic-no-pic bootstrap for x86 Darwin
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
2
3         * gcc/configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4         plugin capabilities.
5         * gcc/configure: Regenerate.
6
7 2010-11-03  Xinliang David Li  <davidxl@google.com>
8
9        PR target/46200
10        * tree-ssa-loop-ivopts.c (get_computation_cost_at):
11        Adjust cbase if the use stmt is after iv update.
12
13 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
14
15         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for
16         newlib targets.
17
18 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
19
20         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
21         comment.  Pass true to the last argument of output_stack_adjust.
22
23 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
24
25         PR target/46295
26         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
27         if 256bit AVX register is used.
28
29 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
30
31         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
32         xsmindp/xsmaxdp on VSX for single precision min/max.
33         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
34         (vsx_sminsf3): Ditto.
35
36 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
37
38         * combine.c (try_combine): Fix formatting issues, improve comments and
39         fix a pasto.
40
41 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
42
43         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
44         of the result before building binary expressions.
45
46 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
47
48         PR rtl-optimization/45865
49         * Makefile.in (df-problems.o): Revert revision 164552.
50         * basic-block.h (enum bb_flags): Likewise.
51         * cfgcleanup.c (block_was_dirty): Likewise.
52         (try_forward_edges): Likewise.
53         (try_crossjump_bb): Likewise.
54         (try_head_merge_bb): Likewise.
55         (try_optimize_cfg): Likewise.
56         (cleanup_cfg): Likewise.
57         * df-core.c (df_set_bb_dirty): Likewise.
58         * df-problems.c: Likewise.
59         (df_simulate_find_uses): Likewise.
60         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
61         (find_memory, find_memory_store): Likewise.
62         (can_move_insns_across): Likewise.
63         * df.h (can_move_insns_across): Likewise.
64         * ifcvt.c (find_memory): Likewise.
65         (dead_or_predicable): Likewise.
66
67 2010-11-03  Richard Guenther  <rguenther@suse.de>
68
69         PR middle-end/46288
70         * predict.c (strip_predict_hints): Simply DCE builtin expect if
71         the result is unused.
72
73 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
74
75         PR tree-optimization/46009
76         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
77         cond_if_else_store_replacement if bb1 and bb2 have the same
78         single successor.
79         (cond_store_replacement): Use gimple_assign_single_p, don't
80         check if rhs is SSA_NAME or invariant.  Call release_defs for
81         assign.
82         (cond_if_else_store_replacement): New function.
83
84 2010-11-03  Richard Guenther  <rguenther@suse.de>
85
86         * opts.c (finish_options): Properly check for all WHOPR
87         flags before complaining about -flto-partition.
88
89 2010-11-04  Alan Modra  <amodra@gmail.com>
90
91         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
92         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
93         TARGET_SECURE_PLT.
94         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
95         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
96         on input, "r" on output.
97
98 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
99
100         Implemented -fobjc-std=objc1 flag.
101         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
102         option.
103         * doc/standards.texi (Standards): Updated the section on
104         Objective-C; mention support for Objective-C 2.0 features and the
105         new -fstd-objc=objc1 flag to disable them.
106
107 2010-11-03  Richard Guenther  <rguenther@suse.de>
108
109         PR middle-end/46241
110         * dwarf2out.c (scope_die_for): Properly detect global scope.
111
112 2010-11-03  Richard Guenther  <rguenther@suse.de>
113
114         PR tree-optimization/46190
115         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
116         Properly compute peel iterations.
117
118 2010-11-03  Richard Guenther  <rguenther@suse.de>
119
120         PR tree-optimization/46286
121         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
122         re-allocated vector data.
123
124 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
125
126         PR target/46285
127         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
128         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
129         is completed.
130
131 2010-11-03  Richard Guenther  <rguenther@suse.de>
132
133         PR tree-optimization/46217
134         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
135         flag matches.
136         (execute_update_addresses_taken): Likewise.
137
138 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
139
140         PR bootstrap/44335
141         * targhooks.c (targhook_words_big_endian): New function.
142         (targhook_float_words_big_endian): Likewise.
143         * targhooks.h (targhook_words_big_endian): Declare.
144         (targhook_float_words_big_endian): Likewise.
145         * target.def (words_big_endian, float_words_big_endian): New hooks.
146
147 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
148
149         PR tree-optimization/46165
150         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
151         a normal call into noreturn call.
152
153 2010-11-03  Richard Guenther  <rguenther@suse.de>
154
155         PR middle-end/46251
156         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
157         not INDIRECT_REFs.
158
159 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
160
161         PR tree-optimization/46107
162         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
163         if cfg_hook_duplicate_loop_to_header_edge failed.
164
165 2010-11-03  Ian Lance Taylor  <iant@google.com>
166
167         PR lto/46273
168         * gcc/config.gcc: Don't set lto_binary_reader.
169         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
170         (Configuration): Mention --disable-lto.  Remove --with-libelf
171         paragraph.
172
173 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
174
175         PR debug/46252
176         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
177         prev_real_insn.
178         * gcse.c (insert_insn_end_basic_block): Likewise.
179
180         PR rtl-optimization/46034
181         PR rtl-optimization/46212
182         PR rtl-optimization/46248
183         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
184         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
185         before i0dest -> i0src substitution and pass 1 instead of 0 as last
186         argument to subst on i2pat.
187
188 2010-11-02  Ian Lance Taylor  <iant@google.com>
189
190         * configure.ac: Use AC_SYS_LARGEFILE.
191         * configure: Rebuild.
192         * config.in: Rebuild.
193
194 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
195
196         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
197         fold_convert.
198         * c-typeck.c (build_function_call_vec): Likewise.
199         * cfgexpand.c (expand_debug_expr): Likewise.
200         * cgraphunit.c (assemble_thunk): Likewise.
201         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
202         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
203         (fold_binary_loc, fold_ternary_loc): Likewise.
204         * gimple-fold.c (get_symbol_constant_value): Likewise.
205         * gimple-low.c (lower_builtin_setjmp): Likewise.
206         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
207         * gimplify.c (gimplify_init_constructor): Likewise.
208         * lambda.h (build_linear_expr): Likewise.
209         * omp-low.c (omp_reduction_init): Likewise.
210         * tree-inline.c (remap_ssa_name): Likewise.
211         * tree-object-size.c (compute_object_sizes): Likewise.
212         * tree-sra.c (init_subtree_with_zero): Likewise.
213         (sra_ipa_modify_assign): Likewise.
214         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
215         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
216         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
217         (undistribute_ops_list): Likewise.
218         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
219         * tree-vect-stmts.c (vectorizable_call): Likewise.
220         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
221         (build_zero_cst): Handle more cases directly.  Update comment.
222
223 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
224
225         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper):
226         Removed.
227         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
228
229         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
230         and call ix86_split_call_vzeroupper instead of
231         ix86_split_call_pop_vzeroupper.
232         (*call_pop_1_vzeroupper): Likewise.
233         (*sibcall_pop_1_vzeroupper): Likewise.
234         (*call_value_pop_0_vzeroupper): Likewise.
235         (*call_value_pop_1_vzeroupper): Likewise.
236         (*sibcall_value_pop_1_vzeroupper): Likewise.
237
238 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
239
240         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a
241         typo.
242
243 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
244
245         * basic-block.h (insert_insn_end_bb_new): Delete.
246         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
247
248 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
249             H.J. Lu  <hongjiu.lu@intel.com>
250
251         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
252         (ix86_split_call_pop_vzeroupper): Likewise.
253
254         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
255         (ix86_expand_call): Conditionally decorate calls with
256         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
257         (ix86_split_call_vzeroupper): New.
258         (ix86_split_call_pop_vzeroupper): Likewise.
259
260         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
261         (*call_pop_0_vzeroupper): New insn_and_split pattern.
262         (*call_pop_1_vzeroupper): Likewise.
263         (*sibcall_pop_1_vzeroupper): Likewise.
264         (*call_0_vzeroupper): Likewise.
265         (*call_1_vzeroupper): Likewise.
266         (*sibcall_1_vzeroupper): Likewise.
267         (*call_1_rex64_vzeroupper): Likewise.
268         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
269         (*call_1_rex64_large_vzeroupper): Likewise.
270         (*sibcall_1_rex64_vzeroupper): Likewise.
271         (*call_value_pop_0_vzeroupper): Likewise.
272         (*call_value_pop_1_vzeroupper): Likewise.
273         (*sibcall_value_pop_1_vzeroupper): Likewise.
274         (*call_value_0_vzeroupper): Likewise.
275         (*call_value_0_rex64_vzeroupper): Likewise.
276         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
277         (*call_value_1_vzeroupper): Likewise.
278         (*sibcall_value_1_vzeroupper): Likewise.
279         (*call_value_1_rex64_vzeroupper): Likewise.
280         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
281         (*call_value_1_rex64_large_vzeroupper): Likewise.
282         (*sibcall_value_1_rex64_vzeroupper): Likewise.
283
284 2010-11-02  Ian Lance Taylor  <iant@google.com>
285
286         PR lto/46273
287         * config.gcc: Revert last patch: set lto_binary_reader.
288
289 2010-11-02  Richard Guenther  <rguenther@suse.de>
290
291         PR tree-optimization/46149
292         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
293         non-indirect MEM_REF variants.
294
295 2010-11-02  Richard Guenther  <rguenther@suse.de>
296
297         PR tree-optimization/46216
298         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
299         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
300
301 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
302
303         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
304         (*-*-osf*): Likewise.
305         * configure: Regenerate.
306
307 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
308
309         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
310         for Intel Core 2 and Core i7.
311
312 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
313
314         Model decoder of Core 2/i7 for multipass scheduling.
315
316         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
317         New type to hold target-specific data for multipass scheduling.
318         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
319         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
320         Core 2/i7.
321         (core2i7_secondary_decoder_max_insn_size,)
322         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
323         New static variables.
324         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
325         ([_]ix86_first_cycle_multipass_data): New static variable.
326         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
327         Implement targetm.sched hooks.
328         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
329         of ...
330         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
331         Implement new targetm.sched hooks.
332         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
333         targetm.sched hook to install multipass scheduling hooks on demand.
334
335         * doc/tm.texi.in: Document new targetm.sched hooks.
336         * doc/tm.texi: Regenerate.
337
338         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
339         (first_cycle_multipass_data_t): New typedef.
340         (struct choice_entry: target_data): New field.
341         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
342         to allow target model restrictions not represented in DFA.
343         (choose_ready, schedule_block): Update.
344         (sched_extend_ready_list, sched_finish_ready_list): Call new target
345         hooks to initialize target-specific data for multipass scheduling.
346         * sched-int.h (max_issue): Update declaration.
347         * sel-sched.c (choose_best_insn): Update.
348         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
349         (first_cycle_multipass_{init, fini}): Define and document new
350         targetm.sched hooks.
351
352 2010-11-02  Richard Guenther  <rguenther@suse.de>
353
354         PR tree-optimization/46184
355         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
356         input vector type from the reduction operand as well.
357
358 2010-11-02  Richard Guenther  <rguenther@suse.de>
359
360         PR tree-optimization/46177
361         * tree-loop-distribution.c (prop_phis): Use
362         mark_virtual_phi_result_for_renaming.
363
364 2010-11-02  Martin Jambor  <mjambor@suse.cz>
365
366         PR middle-end/46120
367         * tree.c (get_binfo_at_offset): Bail out on artificial
368         fields.  Identify primary bases according to their offsets.
369
370 2010-11-02  Martin Jambor  <mjambor@suse.cz>
371
372         PR tree-optimization/45875
373         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
374         (gimple_get_relevant_ref_binfo): Detect primary bases according to
375         their field offset.
376
377 2010-11-02  Ian Lance Taylor  <iant@google.com>
378
379         * doc/install.texi (Configuration): Note in two places that Java
380         is not enabled by default.
381
382 2010-11-02  Ian Lance Taylor  <iant@google.com>
383
384         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
385         (Configuration): Mention --disable-lto.  Remove --with-libelf
386         paragraph.
387
388 2010-11-02  Ian Lance Taylor  <iant@google.com>
389
390         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
391         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
392         LIBELFINC.  Remove HAVE_libelf.
393         * config.gcc: Don't set lto_binary_reader.
394         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
395         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
396         (LIBS): Remove $(LIBELFLIBS).
397         (INCLUDES): Remove $(LIBELFINC).
398         * configure: Rebuild.
399         * config.in: Rebuild.
400
401 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
402
403         * config/microblaze/microblaze-protos.h (function_arg): Delete.
404         (function_arg_advance): Delete.
405         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
406         (FUNCTION_ARG): Delete.
407         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
408         (microblaze_function_arg_advance): ...this.  Make static.  Take a
409         const_tree and a bool.
410         (function-arg): Rename to...
411         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
412         and a bool.
413         (microblaze_expand_prologue): Call targetm.calls.function_arg and
414         targetm.calls.function_arg_advance.
415         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
416
417 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
418
419         Merge from FSF "apple/trunk" branch.
420
421         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
422         * config/darwin.opt: .. to here.
423         (matt-stubs): New option.
424         * config/i386/darwin.opt: Delete.
425         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
426         (MACHO_DYNAMIC_NO_PIC_P): New.
427         (MACHOPIC_INDIRECT): New.
428         (MACHOPIC_PURE): New.
429         * config/i386/darwin.h (DARWIN_X86) Define to 1.
430         (MACHOPIC_ATT_STUB): New.
431         (CC1_SPEC): Do not remove mdynamic-no-pic.
432         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
433         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
434         (FUNCTION_PROFILER): Correct over-length line.
435         (SUBTARGET_OVERRIDE_OPTIONS): New.
436         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
437         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
438         (legitimate_constant_p): Handle mdynamic-no-pic.
439         (ix86_legitimate_address_p): Likewise.
440         (ix86_legitimize_address): Likewise.
441         (ix86_expand_move): Likewise.
442         (machopic_output_stub): Update for ATT-style stubs and
443         mdynamic-no-pic.
444         * config/darwin-protos.h (machopic_symbol_defined_p): New.
445         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
446         TARGET_DYNAMIC_NO_PIC: Remove.
447         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
448         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
449         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
450         Remove handling of mdynamic-no-pic.
451         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
452         Define if required.
453         (machopic_symbol_defined_p): Do not try to use current_function_decl
454         when generating _get_pc thunks within stubs.
455         (machopic_indirect_data_reference): Rework for direct conditionals
456         rather than #ifdefs, add x86 mdynamic-no-pic
457         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
458         defined value.
459         (darwin_override_options): Handle mdynamic-no-pic here.
460         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
461         (machopic_lazy_symbol_ptr3_section): New.
462         (machopic_picsymbol_stub2_section): New.
463         (machopic_picsymbol_stub3_section): New.
464         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
465         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
466         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
467         Moved common definition from x86 and rs6000.
468         (MACHO_DYNAMIC_NO_PIC_P): Override value.
469         (MACHOPIC_INDIRECT): Likewise.
470         (MACHOPIC_PURE): Likewise.
471         * config.gcc (x86-darwin-*): Remove darwin.opt.
472
473 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
474
475         PR debug/46255
476         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
477         instead of gsi_last_bb.
478
479 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
480             Maxim Kuvyrkov  <maxim@codesourcery.com>
481
482         * config/i386/i386.c (cpu_names): Add "corei7".
483         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
484
485 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
486             Maxim Kuvyrkov  <maxim@codesourcery.com>
487
488         Tune alignment for Intel Core i7
489
490         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
491         (enum processor_type): Update comment.  Add entries for Core i7.
492         * config/i386-c.c (ix86_target_macros_internal): Update.
493         * config/i386.c (m_COREI7{_32,_64}): New macros.
494         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
495         (processor_target_table): Tune alignment for Core i7.
496         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
497
498         * doc/invoke.texi: Document "corei7" option value.
499
500 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
501             Maxim Kuvyrkov  <maxim@codesourcery.com>
502             H.J. Lu  <hjl.tools@gmail.com>
503
504         Basic support for Intel Core i7
505
506         * i386.c (ix86_option_override_internal): Add entry for corei7, use
507         generic tuning.  Use generic32 when compiling for 32-bit ABI.
508
509 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
510
511         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
512         sections and call darwin_asm_dwarf_section() to handle them.
513         (darwin_asm_dwarf_section): New.
514         (darwin_file_start): Remove code emitting dwarf section symbols.
515
516 2010-11-02  Chung-Lin Tang <cltang@codesourcery.com>
517
518         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
519         explicitly disable stack protection when building libgcc.
520         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
521
522 2010-11-01  Jason Merrill  <jason@redhat.com>
523
524         * fold-const.c (fold_indirect_ref_1): Handle folding
525         POINTER_PLUS_EXPR to ARRAY_REF.
526
527 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
528
529         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
530         (sh_delegitimize_address): New function.
531
532 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
533
534         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
535         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
536         (CC1_SPEC): Don't handle -target.
537         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
538         options.
539         * config/darwin.opt (Zallowable_client, Zbundle_loader,
540         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
541         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
542         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
543         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
544         Zweak_reference_mismatches, client_name, compatibility_version,
545         current_version, dylinker_install_name, pagezero_size,
546         read_only_relocs, seg1addr, segs_read_only_addr,
547         segs_read_write_addr, sub_library, sub_umbrella): New.
548         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
549         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
550         * config/freebsd.opt: New.
551         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
552         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
553         * config/rpath.opt: New.
554         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
555         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
556         Use rpath.opt.
557
558 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
559
560         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
561         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
562         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
563         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
564         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
565         Document that options in .opt files do not need to be included.
566         * doc/tm.texi: Regenerate.
567         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
568         * opts-common.c: Update comment on tm.h include.
569         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
570         * system.h (SWITCH_TAKES_ARG): Poison.
571         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
572         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
573         in darwin.opt.
574         (LINK_COMMAND_SPEC_A): Don't include %{x}.
575         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
576         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
577         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
578         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
579         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
580         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
581         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
582         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
583         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
584         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
585         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
586         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
587         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
588         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
589         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
590         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
591         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
592         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
593         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
594         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
595         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
596         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
597         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
598
599 2010-11-01  Paul Koning  <ni1d@arrl.net>
600
601         * config/pdp11/pdp11.md: Use iterators.
602         (addqi3, subqi3, iorsi3, xorsi3): Delete.
603
604 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
605
606         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
607         GCC_INSN_FLAGS_H.
608         * libgcov.c (__gcov_indirect_call_profiler): Set
609         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
610         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
611
612 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
613
614         PR tree-optimization/46259
615
616         Revert:
617         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
618
619         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
620         build_vector_from_val.
621
622 2010-11-01  DJ Delorie  <dj@redhat.com>
623
624         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
625         as well as an assertion.
626
627 2010-11-01  Paul Koning  <ni1d@arrl.net>
628
629         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
630         complex modes in memory.
631
632 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
633
634         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
635
636 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
637
638         PR target/45250
639         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
640         (cfa_base_offset): New variable.
641         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
642         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
643         is NULL.
644         (vt_init_cfa_base): Initialize cfa_base_offset.
645
646 2010-11-01  Alan Modra  <amodra@gmail.com>
647
648         PR target/46030
649         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
650         and savres_strategy.
651         (stack_info): New file scope var.
652         (rs6000_init_machine_status): Init stack_info.
653         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
654         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
655         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
656         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
657         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
658         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
659         (rs6000_savres_strategy): Rewrite.
660         (rs6000_stack_info): Use "stack_info" in place of local "info".
661         Return cached stack info when reload_completed unless ENABLE_CHECKING
662         in which case confirm newly calculated stack info matches old info.
663         Delay calculation of lr_save_p, set it for out of line gp save/restore
664         as well as fp.  Call rs6000_savres_strategy from here..
665         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
666         (rs6000_output_function_prologue): Use info->savres_strategy to
667         determine whether fp save/restore externs need to be emitted.
668
669 2010-10-31  Jason Merrill  <jason@redhat.com>
670
671         * tree.h (EXPR_LOC_OR_HERE): New macro.
672         * builtins.c (c_strlen): Use it.
673         * c-decl.c (build_enumerator): Likewise.
674         * gimplify.c (internal_get_tmp_var): Likewise.
675         (shortcut_cond_expr): Likewise.
676         (gimplify_one_sizepos): Likewise.
677
678 2010-10-31  Richard Henderson  <rth@redhat.com>
679
680         * config/i386/cygming.h (TARGET_SEH): New.
681         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
682         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
683         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
684         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
685         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
686         (ASM_DECLARE_FUNCTION_SIZE): New.
687         * config/i386/i386-protos.h: Update.
688         * config/i386/i386.c (ix86_option_override_internal): Enable
689         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
690         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
691         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
692         (ix86_compute_frame_layout): For SEH, disable
693         use_fast_prologue_epilogue, move frame pointer to the end of
694         the frame.  Initialize hfp_save_offset.
695         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
696         at end of prologue for SEH.
697         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
698         emit blockage at beginning of epilogue.
699         (ix86_expand_binary_operator): After reload, emit LEA if needed.
700         (ix86_output_call_insn): New.
701         * config/i386/i386.h (TARGET_SEH): New.
702         (struct machine_function): Add member seh.
703         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
704         * config/i386/winnt.c (struct seh_frame_state): New.
705         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
706         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
707         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
708         i386_pe_start_function, i386_pe_end_function): New.
709
710         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
711         as CFA_STORE in rules 12 and 13.
712
713 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
714
715         PR tree-optimization/46142
716         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
717         accommodate third function argument.
718
719 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
720
721         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
722
723 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
724
725         * fold-const.c (build_zero_vector): Use build_vector_from_val.
726         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
727         (get_initial_def_for_reduction): Likewise.
728         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
729         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
730         * tree.c (build_one_cst): Likewise.
731         (build_vector_from_val): Use types_compatible_p for assert.
732
733 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
734
735         * emit-rtl.c (mark_used_flags): New function.
736         (set_used_flags, reset_used_flags): Call it.
737
738 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
739
740         PR middle-end/44569
741         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
742         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
743
744 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
745
746         PR target/46195
747         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
748         (ix86_compat_aligned_value_p): This.
749         (ix86_old_function_arg_boundary): Renamed to ...
750         (ix86_compat_function_arg_boundary): This.  Updated.
751         (ix86_contains_aligned_value_p): New.
752         (ix86_function_arg_boundary): Align long double parameters on
753         stack to 4byte in 32bit.
754
755 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
756
757         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
758         * c-parser.c (c_parser_objc_at_property_declaration): Removed
759         parsing of RID_COPIES and RID_IVAR.  Updated call to
760         objc_add_property_declaration.
761         * c-typecheck.c (build_component_ref): Call
762         objc_maybe_build_component_ref instead of objc_build_setter_call.
763         Use objc_is_property_ref to improve Objective-C checks.
764         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
765         of objc_build_getter_call.
766
767 2010-10-29  Paul Koning  <ni1d@arrl.net>
768
769         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
770         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
771         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
772         (REG_OK_STRICT): Move description.
773
774 2010-10-29  Paul Koning  <ni1d@arrl.net>
775
776         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
777
778 2010-10-29  Paul Koning  <ni1d@arrl.net>
779
780         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
781
782 2010-10-29  Paul Koning  <ni1d@arrl.net>
783
784         PR/41822
785         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
786
787 2010-10-29  Richard Henderson  <rth@redhat.com>
788
789         PR rtl-opt/46226
790         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
791         for asm goto.
792
793 2010-10-29  Paul Koning  <ni1d@arrl.net>
794
795         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
796         register to register move.
797
798 2010-10-29  Paul Koning  <ni1d@arrl.net>
799
800         * config/pdp11/pdp11.c (print_operand_address): Correct handling
801         of integer constant addresses, delete vax-only logic.
802
803 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
804
805         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
806         a conditional expression.
807
808 2010-10-29  Paul Koning  <ni1d@arrl.net>
809
810         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
811         instruction encoding.
812
813 2010-10-29  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
814             Andrew Pinski <pinskia@gmail.com>
815
816         * tree.h (build_vector_from_val): Declare.
817         * tree.c (build_vector_from_val): New function.
818         * c-typeck.c (build_binary_op): Handle vector shifting.
819         * doc/extend.texi: Description of the vector shifting operation.
820
821 2010-10-29  Paul Koning  <pkoning@equallogic.com>
822
823         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
824         pdp11_secondary_memory_needed): Declare.
825         * config/pdp11/predicates.md (float_operand): New predicate.
826         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
827         (cbranchdf4, movdf): Change predicate.
828         (movsf): Handle FPU register case.
829         (truncdfsf2, extendsfdf2): Add FPU register case.
830         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
831         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
832         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
833         (pdp11_register_move_cost): Update cost matrix.
834         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
835         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
836         pdp11_secondary_memory_needed): New function.
837         (pdp11_return_in_memory): Add other float types.
838         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
839         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
840         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
841         REGISTER_MOVE_COST): Delete.
842         (BASE_RETURN_VALUE_REG): Add other float types.
843
844 2010-10-29  Nick Clifton<nickc@redhat.com>
845
846         * doc/invoke.texi: Document -mam34 and -mtune options.
847         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
848         (mn10300_tune_cpu): New variable.
849         (mn10300_handle_option): Handle -mam34 and -mtune options.
850         (mn10300_option_override): Convert tune string into tune cpu variable.
851         (mn10300_legitimate_constant_p): Delete unused local variable.
852         (is_load_insn): New function.
853         (is_store_insn): New function.
854         (mn10300_adjust_schedule_cost): New function.
855         (TARGET_SCHED_ADJUST_COST): Define.
856         * config/mn10300/mn10300.opt (mam34): New option.
857         (mtune): New option.
858         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
859         (enum processor_type): Add AM34.
860         (TARGET_AM34): Define.
861         * config/mn10300/mn10300.md (attr cpu): Add am34.
862         Add pipeline description.
863         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
864         Remove unneeded alternatives.  Add timing attribute.
865         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
866         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
867         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
868         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
869         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
870         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
871         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
872         float_conditional_branch, jump, indirect_jump, tablejump,
873         call_internal, call_value_internal, zero_extendqisi2_am33,
874         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
875         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
876         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
877         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
878         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
879         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
880         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
881         return_internal_regs, store_movm, return, call_next_insn):
882         Add timing attribute.
883         (am33_subsi3): Add missing clobber of CC_REG.
884         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
885         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
886         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
887         extendqisi2): Fix predicates.
888         (call_internal, call_internal_value): Separate alternatives.
889         * config/mn10300/t-mn10300: Add AM34 multilib.
890
891 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
892
893         * config/sh/sh.c (sh_promote_function_mode): Use
894         default_promote_function_mode if !sh_promote_prototypes.
895
896 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
897
898         * recog.c (split_all_insns): Remove dead code.
899
900 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
901
902         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
903
904 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
905
906         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
907         (FUNCTION_ARG_ADVANCE): Delete.
908         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
909         functions.
910         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
911         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
912         (TARGET_FUNCTION_ARG_ADVANCE): Define.
913
914 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
915
916         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
917         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
918         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
919         Take a const_tree and a bool.
920         (mcore_function_arg_advance): New function.
921         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
922
923 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
924
925         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
926         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
927         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
928         Take a const_tree and a bool.
929         (mcore_function_arg_advance): New function.
930         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
931
932 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
933
934         * config/h8300/h8300-protos.h (function_arg): Delete.
935         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
936         * config/h8300/h8300.c (function_arg): Rename to...
937         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
938         a bool.
939         (h8300_function_arg_advance): New function.
940         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
941
942 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
943
944         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
945         to...
946         * config/arc/arc.c (arc_function_arg): ...here and...
947         (arc_function_arg_advance): ...here.  New functions.
948         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
949
950 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
951
952         * config/crx/crx-protos.h (crx_function_arg): Delete.
953         (crx_function_arg_advance): Delete.
954         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
955         * config/crx/crx.c (crx_function_arg): Make static.  Take a
956         const_tree and a bool.
957         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
958         (enough_regs_for_param): Take a const_tree.
959         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
960
961 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
962
963         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
964         (m68hc11_function_arg_advance): Delete.
965         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
966         (FUNCTION_ARG_ADVANCE): Delete.
967         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
968         Take a const_tree and a bool.
969         (m68hc11_function_arg_advance): Likewise.
970         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
971
972 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
973
974         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
975         (xstormy16_function_arg_advance): Delete.
976         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
977         (FUNCTION_ARG_ADVANCE): Delete.
978         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
979         Take a const_tree and a bool.
980         (xstormy16_function_arg_advance): Likewise.  Return void, updating
981         the CUM parameter instead.
982         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
983
984 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
985
986         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
987         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
988         (MOXIE_FUNCTION_ARG_SIZE): Move to...
989         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
990         (moxie_function_arg): Make static.  Take a const_tree and a bool.
991         (moxie_function_arg_advance): New function.
992         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
993
994 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
995
996         * config/mn10300/mn10300-protos.h (function_arg): Delete.
997         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
998         (FUNCTION_ARG_ADVANCE): Delete.
999         * config/mn10300/mn10300.c (function_arg): Rename to...
1000         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
1001         and a bool.
1002         (mn10300_function_arg_advance): New function.
1003         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1004
1005 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
1006
1007         * config/iq2000/iq2000-protos.h (function_arg): Delete.
1008         (function_arg_advance): Delete.
1009         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1010         * config/iq2000/iq2000.c (function_arg): Rename to...
1011         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
1012         a bool.
1013         (function_arg_advance): Rename to...
1014         (iq2000_function_arg_advance): ...this.  Make static.  Take a
1015         const_tree and a bool.
1016         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
1017         iq2000_function_arg.
1018         (iq2000_pass_by_reference): Call iq2000_function_arg).
1019         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1020
1021 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
1022
1023         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
1024         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1025         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
1026         const_tree.
1027         (fr30_function_arg): New function.
1028         (fr30_function_arg_advance): New function.
1029         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1030
1031 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
1032
1033         * config/frv/frv-protos.h (frv_function_arg): Delete.
1034         (frv_function_arg_advance): Delete.
1035         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1036         * config/frv/frv.c (frv_function_arg): Rename to...
1037         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
1038         (frv_function_arg, frv_function_incoming_arg): New functions.
1039         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
1040         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1041         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1042
1043 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
1044
1045         PR target/46153
1046         * config/i386/sse.md (sse_movhlps_exp): Use destination
1047         returned from ix86_fixup_binary_operands to expand insn.
1048         (sse_movlhps_exp): Ditto.
1049         (sse_loadhps_exp): Ditto.
1050         (sse_loadlps_exp): Ditto.
1051         (sse2_loadhpd_exp): Ditto.
1052         (sse2_loadlpd_exp): Ditto.
1053
1054 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
1055
1056         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
1057         constants in thumb2.
1058
1059 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
1060
1061         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
1062         arithmetics in masking operations.
1063         (contains_muldiv): Likewise.
1064         (try_combine): Likewise.
1065         (find_split_point): Likewise.
1066         (combine_simplify_rtx): Likewise.
1067         (simplify_if_then_else): Likewise.
1068         (simplify_set): Likewise.
1069         (expand_compound_operation): Likewise.
1070         (expand_field_assignment): Likewise.
1071         (make_extraction): Likewise.
1072         (extract_left_shift): Likewise.
1073         (make_compound_operation): Likewise.
1074         (force_to_mode): Likewise.
1075         (make_field_assignment): Likewise.
1076         (reg_nonzero_bits_for_combine): Likewise.
1077         (simplify_shift_const_1): Likewise.
1078         (simplify_comparison): Likewise.
1079
1080 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
1081
1082         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
1083         (ia64_function_arg_advance): Delete.
1084         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
1085         (FUNCTION_ARG_ADVANCE): Delete.
1086         * config/ia64/ia64.c (ia64_function_arg): Rename to...
1087         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
1088         bool arguments.
1089         (ia64_function_arg, ia64_function_incoming_arg): New functions.
1090         (ia64_function_arg_advance): Make static.  Take a const_tree and
1091         a bool.
1092         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1093         (TARGET_FUNCTION_ARG_ADVANCE): Define.
1094
1095 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
1096
1097         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
1098         (TARGET_GET_RAW_ARG_MODE): New.
1099         * doc/tm.texi: Regenerate.
1100         * target.def (get_raw_result_mode): New.
1101         (get_raw_arg_mode): New.
1102         * targhooks.c (default_get_reg_raw_mode): New.
1103         * targhooks.h (default_get_reg_raw_mode): New.
1104         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
1105         (apply_result_size): Ditto.
1106         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
1107         (TARGET_GET_RAW_RESULT_MODE): Define.
1108         (TARGET_GET_RAW_ARG_MODE): Ditto.
1109
1110 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
1111
1112         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
1113         for newer Solaris 10 release.
1114         (sparc_fallback_frame_state): Likewise.
1115
1116 2010-10-27  Jason Merrill  <jason@redhat.com>
1117
1118         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
1119         variables sooner.
1120
1121 2010-10-27  Jie Zhang  <jie@codesourcery.com>
1122             Maxim Kuvyrkov  <maxim@codesourcery.com>
1123
1124         * haifa-sched.c (ISSUE_POINTS): Remove.
1125         (max_issue): Don't issue more than issue_rate instructions.
1126
1127 2010-10-27  Ian Lance Taylor  <iant@google.com>
1128
1129         PR target/46197
1130         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
1131         (split_stack_return): Replace UNSPEC_STACK_CHECK with
1132         UNSPECV_SPLIT_STACK_RETURN.
1133
1134 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
1135
1136         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
1137
1138         * config/i386/i386.c (block_info): New.
1139         (BLOCK_INFO): Likewise.
1140         (call_avx256_state): Likewise.
1141         (check_avx256_stores): Likewise.
1142         (move_or_delete_vzeroupper_2): Likewise.
1143         (move_or_delete_vzeroupper_1): Likewise.
1144         (move_or_delete_vzeroupper): Likewise.
1145         (use_avx256_p): Likewise.
1146         (function_pass_avx256_p): Likewise.
1147         (flag_opts): Add -mvzeroupper.
1148         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
1149         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
1150         is disabled.
1151         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
1152         generate vzeroupper.
1153         (init_cumulative_args): Add an int to indicate caller.  Set
1154         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
1155         based on return type.
1156         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
1157         caller_pass_avx256_p based on argument type.
1158         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
1159         is used, but not returned by caller.
1160         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
1161         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
1162         is used.
1163         (ix86_minimum_alignment): Likewise.
1164         (ix86_expand_special_args_builtin): Set target to
1165         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
1166         (ix86_reorg): Run the vzeroupper optimization if needed.
1167
1168         * config/i386/i386.h (ix86_args): Add caller.
1169         (INIT_CUMULATIVE_ARGS): Updated.
1170         (machine_function): Add use_vzeroupper_p, use_avx256_p,
1171         caller_pass_avx256_p, caller_return_avx256_p,
1172         callee_pass_avx256_p and callee_return_avx256_p.
1173
1174         * config/i386/i386.opt (-mvzeroupper): New.
1175
1176         * config/i386/predicates.md (vzeroupper_operation): Removed.
1177
1178         * config/i386/sse.md (avx_vzeroupper): Removed.
1179         (*avx_vzeroupper): Removed.
1180         (avx_vzeroupper): New.
1181
1182         * doc/invoke.texi: Document -mvzeroupper.
1183
1184 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
1185
1186         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
1187         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
1188         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
1189
1190 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
1191             Olivier Hainque  <hainque@adacore.com>
1192
1193         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
1194         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
1195         fs->signal_frame instead.
1196
1197 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1198
1199         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
1200         parsing of RID_COPIES and RID_IVAR.
1201
1202 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1203
1204         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
1205         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
1206         Do not use objc_set_property_attr, but use local variables
1207         instead.  Detect repeated usage of setter, getter and ivar
1208         attributes.  Improved error processing when a setter name does not
1209         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
1210         that the token is a keyword.  Updated call to
1211         objc_add_property_declaration.
1212
1213 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
1214
1215         * c-parser.c (c_parser_objc_at_property): Renamed to
1216         c_parser_objc_at_property_declaration.  Updated calls to
1217         objc_add_property_variable, now objc_add_property_declaration.
1218         Code rewritten to be much more robust in recovering from syntax
1219         errors.  Added comments.
1220         (c_parser_objc_property_attrlist): Removed.
1221         (c_parser_external_declaration): Updated calls to
1222         c_parser_objc_at_property, now
1223         c_parser_objc_at_property_declaration.
1224         (c_parser_objc_methodprotolist): Same change.
1225
1226 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
1227
1228         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
1229
1230 2010-10-26  Jan Hubicka  <jh@suse.cz>
1231
1232         * ipa.c (process_references): Enqueue all referenced nodes;
1233         mark as reachable only non-external nodes.
1234         (cgraph_remove_unreachable_nodes): All referenced nodes should
1235         be enqueued; remove bogues node->needed check.
1236
1237 2010-10-26  Jan Hubicka  <jh@suse.cz>
1238
1239         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
1240         to represent OMP.
1241
1242 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
1243
1244         * config/i386/i386.md (split_stack_return): Replace
1245         unspec_volatile with unspec.
1246
1247 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
1248
1249         * doc/install.texi: Fix typo in --with-sysroot description.
1250
1251 2010-10-26  Jan Hubicka  <jh@suse.cz>
1252
1253         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
1254         Use info provided by linker plugin.
1255
1256 2010-10-26  Jason Merrill  <jason@redhat.com>
1257
1258         * varasm.c (constructor_static_from_elts_p): Don't require a
1259         CONSTRUCTOR to have elements to be suitable for static
1260         initialization.  Allow ARRAY_TYPE as well.
1261
1262 2010-10-26  Jan Hubicka  <jh@suse.cz>
1263
1264         PR middle-end/45736
1265         * cgraph.c (cgraph_set_readonly_flag): Rename to...
1266         (cgraph_set_const_flags) ... this one; get also looping argument;
1267         clear constructor/destructor flags.
1268         (cgraph_set_pure_flag): Likewise.
1269         (cgraph_set_looping_const_or_pure_flag): Remove.
1270         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
1271         to optimize away static ctors/dtors; it does not work on inline clones;
1272         external functions can always be rmeoved.
1273         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
1274         inline clones; in LTO external functions always can go.
1275         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
1276         (cgraph_mark_address_taken_node): Assert that we are not taking
1277         address of inline clone.
1278         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
1279         external functions.
1280         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
1281         address taken.
1282         (ipcp_initialize_node_lattices): Only local functions can be
1283         handled without cloning.
1284         * cgraph.h (cgraph_set_readonly_flag,
1285         cgraph_set_looping_const_or_pure_flag): Remove.
1286         (cgraph_set_const_flag): Declare.
1287         (cgraph_set_pure_flag): Update.
1288         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
1289         flags setting code.
1290         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
1291         look at inline clones; fix handling of external definitions.
1292         (cgraph_postorder): Do not look at inline clones in the first pass.
1293         (function_and_variable_visibility): Drop constructors/destructor
1294         flags at pure and const functions.
1295         * tree-profile.c (tree_profiling): Update.
1296         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
1297         address taken; external functions do not account to whole program size.
1298         (cgraph_decide_inlining): Likewise; do not try to inline
1299         functions already inlined.
1300
1301 2010-10-26  Jie Zhang  <jie@codesourcery.com>
1302
1303         * doc/invoke.texi: Improve documentation of
1304         -fstrict-volatile-bitfields.
1305
1306 2010-10-26  Ira Rosen  <irar@il.ibm.com>
1307
1308         PR tree-optimization/46167
1309         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
1310         is basic block for the statement.
1311
1312 2010-10-26  Paul Koning  <ni1d@arrl.net>
1313
1314         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
1315         current definition of struct_real_format.
1316
1317 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
1318
1319         PR target/44948
1320         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
1321         (ix86_function_arg_boundary): Always align parameters on stack
1322         in 64bit and align parameters with alignment >= 16byte on stack
1323         in 32bit.  Warn alignment change.
1324
1325 2010-10-26  Ian Lance Taylor  <iant@google.com>
1326
1327         PR middle-end/45687
1328         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
1329         offset.
1330
1331 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
1332
1333         Implement opaque-enum-specifiesr for C++0x
1334         * tree.h (ENUM_IS_OPAQUE): New.
1335         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
1336
1337 2010-10-26  Jie Zhang  <jie@codesourcery.com>
1338
1339         * stor-layout.c (layout_decl): Use the field's type to
1340         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
1341         * config/arm/arm.c (arm_override_options): Default to
1342         -fstrict-volatile-bitfields.
1343
1344 2010-10-25  Paul Koning  <ni1d@arrl.net>
1345
1346         * config/pdp11/pdp11.md: Add define_constants for register
1347         numbers, branch offset limits.
1348         * config/pdp11/pdp11.c: Use named constants instead of numbers.
1349         * config/pdp11.pdp11.h: Ditto.
1350
1351 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
1352
1353         * configure.ac: Use $cpu_type instead of $target to define the nop.
1354         * configure: Regenerate.
1355
1356 2010-10-25  Jie Zhang  <jie@codesourcery.com>
1357
1358         * combine.c (try_combine): If insns need to be kept around, check that
1359         they can be copied in the merged instruction.
1360
1361 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1362
1363         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
1364         has been modified.
1365         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
1366         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
1367         it has been modified.
1368
1369 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1370
1371         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
1372
1373 2010-10-24  Paul Koning  <ni1d@arrl.net>
1374
1375         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
1376         * config/pdp11/pdp11.c (output_jump): Ditto.
1377
1378 2010-10-24  Ian Lance Taylor  <iant@google.com>
1379
1380         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
1381
1382 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1383
1384         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
1385         least one insn with a locus corresponding to an edge's goto_locus,
1386         disregard non-fallthru edges to the exit block and merge the blocks
1387         created for the same goto_locus.
1388
1389 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
1390
1391         * gcc.c (n_switches_alloc_debug_check): New.
1392         (set_option_handlers): New.
1393         (process_command): Use set_option_handlers.
1394         (do_self_spec): Pass spec-generated options through option handlers.
1395         (main): Also save and restore n_switches_alloc when swapping
1396         switch arrays.
1397
1398 2010-10-23  Richard Henderson  <rth@redhat.com>
1399
1400         PR target/46144
1401         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
1402         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
1403         Honor matching operands when splitting to XOR.
1404
1405 2010-10-23  Ian Lance Taylor  <iant@google.com>
1406
1407         * tree-vrp.c (extract_range_from_binary_expr): If
1408         flag_non_call_exceptions don't eliminate division by zero.
1409         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1410
1411 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
1412
1413         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1414         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
1415         __ORDER_PDP_ENDIAN__.
1416         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1417         (struct DWstruct): Define based on __BYTE_ORDER__.
1418         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1419         (struct INTstruct): Define based on __BYTE_ORDER__.
1420         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1421         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
1422         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
1423         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1424         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1425         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1426         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1427         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1428         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1429         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1430         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1431         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1432         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1433         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1434         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1435         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1436         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1437         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1438         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
1439         * doc/tm.texi: Regenerate.
1440         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
1441         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
1442
1443 2010-10-23  Jie Zhang  <jie@codesourcery.com>
1444
1445         PR rtl-optimization/37360
1446         * config/mips/mips.c (cached_can_issue_more): New local variable.
1447         (mips_sched_reorder_1): New.
1448         (mips_sched_reorder): Use mips_sched_reorder_1.
1449         (mips_sched_reorder2): New.
1450         (mips_variable_issue): Set cached_can_issue_more.
1451         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
1452         instead of mips_sched_reorder.
1453
1454         Revert:
1455         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
1456         PR rtl-optimization/37360
1457         * haifa-sched.c (max_issue): Do not assert that we never issue more
1458         insns than issue_rate.  Add comment.
1459
1460 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
1461
1462         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
1463         location info of the expression.
1464
1465 2010-10-22  DJ Delorie  <dj@redhat.com>
1466
1467         * doc/extend.texi (Named Address Spaces): Document the M32C named
1468         address space.
1469
1470         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
1471         __far address space.
1472         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
1473         "__far" address space for R8C and M16C processor variants.
1474         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
1475         (far_addr_space_p): New.
1476         (encode_pattern_1): Add sign and zero extend support.
1477         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
1478         (m32c_extra_constraint_p2): Add SF constraint.
1479         (m32c_legitimate_address_p): Support __far addresses.
1480         (m32c_addr_space_pointer_mode): New.
1481         (m32c_addr_space_address_mode): New.
1482         (m32c_addr_space_legitimate_address_p): New.
1483         (m32c_addr_space_legitimize_address): New.
1484         (m32c_addr_space_subset_p): New.
1485         (m32c_addr_space_convert): New.
1486         (conversions): Add __far operand patterns.
1487         (m32c_prepare_move): Force constants into registers for __far moves.
1488         (m32c_split_move): __far moves are always split.
1489         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
1490         * config/m32c/mov.md (mov<mode>_far_op1): New.
1491         (mov<mode>_far_op2): New.
1492         (movqi_op): Add __far (SF) support.
1493         (movhi_op): Likewise.
1494         (movsi_splittable): Split A1A0 also.
1495
1496 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
1497             Andrew Pinski  <pinskia@gmail.com>
1498
1499         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
1500         * doc/extend.texi: New paragraph
1501
1502 2010-10-22  Paul Koning  <ni1d@arrl.net>
1503
1504         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
1505
1506 2010-10-22  DJ Delorie  <dj@redhat.com>
1507
1508         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
1509
1510 2010-10-22  Paul Koning  <ni1d@arrl.net>
1511
1512         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
1513
1514 2010-10-22  Richard Henderson  <rth@redhat.com>
1515
1516         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
1517         cases for __builtin_fma and __builtin_fmaf.
1518
1519 2010-10-22  Richard Henderson  <rth@redhat.com>
1520
1521         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
1522         NEG+USE for vectors as well.
1523         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
1524         and splitter.
1525
1526 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
1527
1528         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
1529         SWITCH_CURTAILS_COMPILATION): Remove.
1530         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
1531         * doc/tm.texi: Regenerate.
1532         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
1533
1534 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
1535
1536         * config/i386/bdver1.md: New file.
1537         * config/i386/i386.md (include "bdver1.md"): Invoke the
1538         pipeline description for bdver1.
1539         (x86_sahf_1): Add "bdver1_decode" attribute.
1540         (*cmpfp_i_mixed): Likewise.
1541         (*cmpfp_i_sse): Likewise.
1542         (*cmpfp_i_i387): Likewise.
1543         (*cmpfp_iu_mixed): Likewise.
1544         (*cmpfp_iu_sse): Likewise.
1545         (*cmpfp_iu_387): Likewise.
1546         (*swap<mode>,*swap<mode>_1): Likewise.
1547         (fixuns_trunc<mode>hi2): Likewise.
1548         (fix_trunc<mode>si_sse): Likewise.
1549         (x86_fnstcw_1): Likewise.
1550         (x86_fldcw_1): Likewise.
1551         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
1552         (*floatsi<mode>2_vector_mixed): Likewise.
1553         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
1554         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
1555         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
1556         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
1557         (*floatsi<mode>2_vector_sse): Likewise.
1558         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
1559         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
1560         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
1561         (*mul<mode>3_1): Likewise.
1562         (*mulsi3_1_zext): Likewise.
1563         (*mulhi3_1): Likewise.
1564         (*mulqi3_1): Likewise.
1565         (*<u>mul<mode><dwi>3_1): Likewise.
1566         (*<u>mulqihi3_1): Likewise.
1567         (*<s>muldi3_highpart_1): Likewise.
1568         (*<s>mulsi3_highpart_1): Likewise.
1569         (*<s>mulsi3_highpart_zext): Likewise.
1570         (x86_64_shld): Likewise.
1571         (x86_shld): Likewise.
1572         (x86_64_shrd): Likewise.
1573         (x86_shrd): Likewise.
1574         (sqrtxf2): Likewise.
1575         (sqrt_extend<mode>xf2_i387): Likewise.
1576         (*sqrt<mode>2_sse): Likewise.
1577         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
1578         (sse_cvtsi2ssq): Likewise.
1579         (sse_cvtss2si): Likewise.
1580         (sse_cvtss2si_2): Likewise.
1581         (sse_cvtss2siq): Likewise.
1582         (sse_cvtss2siq_2): Likewise.
1583         (sse_cvttss2si): Likewise.
1584         (sse_cvttss2siq): Likewise.
1585         (sse2_cvtpi2pd): Likewise.
1586         (sse2_cvttpd2pi): Likewise.
1587         (sse2_cvtsi2sd): Likewise.
1588         (sse2_cvtsi2sdq): Likewise.
1589         (sse2_cvtsd2si): Likewise.
1590         (sse2_cvtsd2si_2): Likewise.
1591         (sse2_cvtsd2siq): Likewise.
1592         (sse2_cvtsd2siq_2): Likewise.
1593         (sse2_cvttsd2si): Likewise.
1594         (sse2_cvttsd2siq): Likewise.
1595         (*sse2_cvtpd2dq): Likewise.
1596         (*sse2_cvttpd2dq): Likewise.
1597         (sse2_cvtsd2ss): Likewise.
1598         (sse2_cvtss2sd): Likewise.
1599         (*sse2_cvtpd2ps): Likewise.
1600         (sse2_cvtps2pd): Likewise.
1601
1602 2010-10-22  Richard Guenther  <rguenther@suse.de>
1603
1604         PR middle-end/46137
1605         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
1606         remove the virtual operands if they are not needed.
1607
1608 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
1609
1610         * config/i386/i386.c (processor_costs bdver1_cost): Update
1611         insn costs and architectural parameters for bdver1.
1612
1613 2010-10-22  Richard Guenther  <rguenther@suse.de>
1614
1615         * gimple.h (gimple_register_canonical_type): Declare.
1616         * gimple.c (gimple_canonical_types): New global hashtable.
1617         (struct gimple_type_leader_entry_s): New type.
1618         (gimple_type_leader): New global cache.
1619         (gimple_lookup_type_leader): New function.
1620         (gtc_visit): Query the proper cache.
1621         (gimple_types_compatible_p): Likewise.
1622         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
1623         (gimple_canonical_type_eq): New function.
1624         (gimple_register_canonical_type): Likewise.
1625         (print_gimple_types_stats): Adjust for gimple_canonical_types.
1626         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
1627         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
1628         gimple_types_compatible_p for LTO.
1629
1630 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
1631
1632         PR target/46098
1633         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
1634         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
1635         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
1636         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
1637         (<sse>_movu<ssemodesuffix>): New expander.
1638         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
1639         (avx_movdqu<avxmodesuffix>): New expander.
1640         (*sse2_movdqu): Rename from sse2_movdqu.
1641         (sse2_movdqu): New expander.
1642
1643 2010-10-22  Richard Guenther  <rguenther@suse.de>
1644
1645         PR tree-optimization/45720
1646         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
1647         Handle negative step.
1648         (vect_enhance_data_refs_alignment): Likewise.
1649         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
1650         (vect_create_cond_for_align_checks): Likewise.
1651         (vect_create_cond_for_alias_checks): Likewise.
1652
1653 2010-10-22  Ira Rosen  <irar@il.ibm.com>
1654
1655         PR tree-optimization/46126
1656         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
1657         vectorizable_shift in case of basic block vectorization.
1658
1659 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
1660
1661         * target.h (enum opt_levels, struct default_options): New.
1662         * target.def (handle_ofast): Remove hook.
1663         (target_option.optimization): Change to
1664         target_option.optimization_table.
1665         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
1666         TARGET_OPTION_OPTIMIZATION_TABLE.
1667         (CAN_DEBUG_WITHOUT_FP): Remove.
1668         * doc/tm.texi: Regenerate.
1669         * opts.c (maybe_default_option, maybe_default_options,
1670         default_options_table): New.
1671         (default_options_optimization): Take extra parameters.  Don't
1672         assert that global_options and global_options_set are in use.  Use
1673         maybe_default_options.
1674         (decode_options): Pass extra parameters to
1675         default_options_optimization.
1676         * common.opt (falign-loops): Use value 0 with Var.
1677         (frerun-cse-after-loop, ftree-ter): Remove Init.
1678         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
1679         TARGET_OPTION_OPTIMIZATION): Remove.
1680         * targhooks.c (empty_optimization_table): New.
1681         * targhooks.h (empty_optimization_table): Declare.
1682         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
1683         * config/alpha/alpha.c (alpha_option_optimization_table,
1684         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1685         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
1686         * config/arm/arm.c (arm_option_optimization: Change to
1687         arm_option_optimization_table.
1688         (TARGET_OPTION_OPTIMIZATION): Change to
1689         TARGET_OPTION_OPTIMIZATION_TABLE.
1690         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
1691         * config/avr/avr.c (avr_option_optimization_table,
1692         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1693         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
1694         * config/cris/cris.c (cris_option_optimization): Change to
1695         cris_option_optimization_table.
1696         (TARGET_OPTION_OPTIMIZATION): Change to
1697         TARGET_OPTION_OPTIMIZATION_TABLE.
1698         * config/crx/crx.c (crx_option_optimization): Change to
1699         crx_option_optimization_table.
1700         (TARGET_OPTION_OPTIMIZATION): Change to
1701         TARGET_OPTION_OPTIMIZATION_TABLE.
1702         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1703         * config/fr30/fr30.c (fr30_option_optimization_table,
1704         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1705         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
1706         * config/frv/frv.c (frv_option_optimization_table,
1707         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1708         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
1709         * config/h8300/h8300.c (h8300_option_optimization): Change to
1710         h8300_option_optimization_table.
1711         (TARGET_OPTION_OPTIMIZATION): Change to
1712         TARGET_OPTION_OPTIMIZATION_TABLE.
1713         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1714         * config/i386/i386.c (ix86_option_optimization): Change to
1715         ix86_option_optimization_table.
1716         (TARGET_OPTION_OPTIMIZATION): Change to
1717         TARGET_OPTION_OPTIMIZATION_TABLE.
1718         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1719         as initializer.
1720         * config/ia64/ia64.c (ia64_option_optimization): Change to
1721         ia64_option_optimization_table.
1722         (TARGET_OPTION_OPTIMIZATION): Change to
1723         TARGET_OPTION_OPTIMIZATION_TABLE.
1724         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
1725         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
1726         initializer.
1727         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1728         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1729         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1730         * config/lm32/lm32.c (lm32_option_optimization_table,
1731         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1732         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
1733         * config/m32r/m32r.c (m32r_option_optimization): Change to
1734         m32r_option_optimization_table.
1735         (TARGET_OPTION_OPTIMIZATION): Change to
1736         TARGET_OPTION_OPTIMIZATION_TABLE.
1737         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
1738         CAN_DEBUG_WITHOUT_FP): Remove.
1739         * config/mcore/mcore.c (mcore_option_optimization): Change to
1740         mcore_option_optimization_table.
1741         (TARGET_OPTION_OPTIMIZATION): Change to
1742         TARGET_OPTION_OPTIMIZATION_TABLE.
1743         * config/mep/mep.c (mep_option_optimization): Change to
1744         mep_option_optimization_table.
1745         (TARGET_OPTION_OPTIMIZATION): Change to
1746         TARGET_OPTION_OPTIMIZATION_TABLE.
1747         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
1748         * config/microblaze/microblaze.c
1749         (microblaze_option_optimization_table,
1750         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1751         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
1752         * config/mips/mips.c (mips_option_optimization_table,
1753         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1754         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
1755         * config/mmix/mmix.c (mmix_option_optimization): Change to
1756         mmix_option_optimization_table.
1757         (TARGET_OPTION_OPTIMIZATION): Change to
1758         TARGET_OPTION_OPTIMIZATION_TABLE.
1759         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
1760         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1761         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1762         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1763         * config/pa/pa.c (pa_option_optimization_table,
1764         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1765         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1766         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
1767         pdp11_option_optimization_table.
1768         (TARGET_OPTION_OPTIMIZATION): Change to
1769         TARGET_OPTION_OPTIMIZATION_TABLE.
1770         * config/picochip/picochip.c (picochip_option_optimization_table,
1771         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1772         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
1773         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
1774         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1775         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1776         * config/rx/rx.c (rx_option_optimization_table,
1777         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1778         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1779         * config/s390/s390.c (s390_option_optimization): Change to
1780         s390_option_optimization_table.
1781         (s390_option_override): Update comment.
1782         (TARGET_OPTION_OPTIMIZATION): Change to
1783         TARGET_OPTION_OPTIMIZATION_TABLE.
1784         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
1785         * config/score/score.c (score_option_optimization_table,
1786         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1787         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
1788         * config/sh/sh.c (sh_option_optimization): Change to
1789         sh_option_optimization_table.
1790         (TARGET_OPTION_OPTIMIZATION): Change to
1791         TARGET_OPTION_OPTIMIZATION_TABLE.
1792         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
1793         (sh_option_override, expand_block_move, multcosts, find_barrier,
1794         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
1795         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
1796         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
1797         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
1798         instead of TARGET_SMALLCODE.
1799         * config/sh/sh.opt (mspace): Make into an alias for -Os.
1800         * config/sparc/sparc.c (sparc_option_optimization_table,
1801         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1802         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
1803         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1804         TARGET_OPTION_OPTIMIZATION_TABLE): New.
1805         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
1806         * config/v850/v850.c (v850_option_optimization): Change to
1807         v850_option_optimization_table.
1808         (TARGET_OPTION_OPTIMIZATION): Change to
1809         TARGET_OPTION_OPTIMIZATION_TABLE.
1810         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
1811         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
1812         xtensa_option_optimization_table.
1813         (TARGET_OPTION_OPTIMIZATION): Change to
1814         TARGET_OPTION_OPTIMIZATION_TABLE.
1815         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1816
1817 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
1818
1819         Based on the CFString implementation in FSF apple/trunk branch.
1820
1821         * target.def (objc_construct_string): New Hook.
1822         * doc/tm.texi (objc_construct_string): Document.
1823         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
1824         * config/t-darwin: Amend build rules for darwin.o.
1825         * config/darwin.opt: Add cfstrings flags.
1826         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
1827         (darwin_objc_construct_string): New.
1828         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
1829         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
1830         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
1831         (darwin_fold_builtin): Likewise.
1832         (darwin_build_constant_cfstring): Likewise.
1833         (darwin_objc_construct_string): Likewise.
1834         (darwin_cfstring_p): Likewise.
1835         (darwin_enter_string_into_cfstring_table): Likewise.
1836         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
1837         * config/darwin.c (darwin_running_cxx): New var.
1838         (machopic_select_section): Return cfstring_constant_object_section.
1839         (darwin_override_options): Set darwin_running_cxx.
1840         (add_builtin_field_decl): New.
1841         (darwin_init_cfstring_builtins): New.
1842         (darwin_build_constant_cfstring): New.
1843         (darwin_fold_builtin): New.
1844         (cfstring_hash): New.
1845         (cfstring_eq): New.
1846         (darwin_enter_string_into_cfstring_table): New.
1847         * config/darwin-sections.def (cfstring_constant_object_section): New.
1848         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
1849         (TARGET_OBJC_CONSTRUCT_STRING): Define.
1850
1851 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1852
1853         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
1854         TYPE_STUB_DECL instead of TREE_CHAIN.
1855         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
1856         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
1857         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
1858         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
1859         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
1860         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
1861         Likewise.
1862         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
1863
1864 2010-10-22  Jie Zhang  <jie@codesourcery.com>
1865
1866         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
1867         (copy_blkmode_from_reg): Likewise.
1868         (read_complex_part): Likewise.
1869         (expand_expr_real_1): Calculate packedp and pass it to
1870         extract_bit_field.
1871         * expr.h (extract_bit_field): Update declaration.
1872         * calls.c (store_unaligned_arguments_into_pseudos): Update call
1873         to extract_bit_field.
1874         * expmed.c (extract_fixed_bit_field): Update calls to
1875         extract_fixed_bit_field.
1876         (store_split_bit_field): Likewise.
1877         (extract_bit_field_1): Add new argument packedp.
1878         (extract_bit_field): Add new argument packedp.
1879         (extract_fixed_bit_field): Add new argument packedp and let
1880         packed attribute override volatile.
1881         * stmt.c (expand_return): Update call to extract_bit_field.
1882
1883 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1884
1885         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
1886
1887 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1888
1889         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
1890         of gcc_checking_assert.
1891         * sel-sched.c (code_motion_process_successors): Likewise.
1892
1893 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1894
1895         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
1896         when stopping because of a different locus on edge or insn.
1897         (try_optimize_cfg): Add comment.
1898         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
1899         block is a forwarder block, propagate locus on the edge.
1900         (cfg_layout_merge_blocks): Likewise.
1901
1902 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
1903
1904         PR target/45946
1905         * config/i386/i386.md (*pushti2): New insn pattern.
1906         (pushti2 splitter): New insn splitter.
1907         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
1908         DWI mode iterator.
1909
1910 2010-10-21  Paul Koning  <ni1d@arrl.net>
1911
1912         * config/pdp11/pdp11-protos.md (arith_operand,
1913         const_immediate_operand, expand_shift_operand,
1914         immediate15_operand): Delete
1915         * config/pdp11/pdp11.c: Ditto.
1916         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
1917         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1918         EXTRA_CONSTRAINT): Delete.
1919         * config/pdp11/pdp11.md (various): Use standard constraints
1920         instead of removed ones.
1921         * config/pdp11/constraints.md: New file.
1922         * config/pdp11/predicates.md: New file.
1923
1924 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
1925
1926         PR c/45834
1927         * alias.c (true_dependence_1): Remove obsolete check for QImode.
1928         (may_alias_p): Ditto.
1929
1930 2010-10-21  Martin Jambor  <mjambor@suse.cz>
1931
1932         PR tree-optimization/45875
1933         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
1934
1935 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1936
1937         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
1938         variables.
1939         (create_new_def_for): Likewise.
1940
1941 2010-10-21  Nick Clifton  <nickc@redhat.com>
1942
1943         * config/mn10300/mn10300.c: Fold code to 80-character width.
1944         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1945         MEM, CONST_INT and CONST_DOUBLE.
1946         (targetm): Move initialization to end of file.
1947         (print_operand): Rename to mn10300_print_operand.
1948         (print_operand_address): Rename to mn10300_print_operand_address.
1949         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
1950         (expand_prologue): Rename to mn10300_expand_prologue.
1951         (expand_epilogue): Rename to mn10300_expand_epilogue.
1952         (initial_offset): Rename to mn10300_initial_offset.
1953         (function_arg): Rename to mn10300_function_arg.
1954         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
1955         (symbolic_operand): Rename to mn10300_symbolic_operand.
1956         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
1957         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
1958         * config/mn10300/mn10300-protos.h: Update prototypes.
1959         * config/mn10300/mn10300.h: Fold code to 80-character width.
1960         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1961         MEM, CONST_INT and CONST_DOUBLE.
1962         (CPP_SPEC): Move to...
1963         (TARGET_CPU_CPP_BUILTINS): ... here.
1964         * config/mn10300/mn10300.md: Fold code to 80-character width.
1965         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
1966         MEM, CONST_INT and CONST_DOUBLE.
1967
1968 2010-10-21  Ira Rosen  <irar@il.ibm.com>
1969
1970         PR tree-optimization/46049
1971         PR tree-optimization/46052
1972         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
1973         (vect_get_slp_defs): Add arguments.
1974         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
1975         operands to vect_get_slp_defs.
1976         (vectorizable_reduction): Fix comment, pass scalar operands to
1977         vect_get_slp_defs.
1978         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
1979         type to determine number of units in the created vector.
1980         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
1981         (vectorizable_conversion): Fix comment.
1982         (vectorizable_shift): New function.
1983         (vectorizable_operation): Move code that handles shifts to
1984         vectorizable_shift.
1985         (vectorizable_type_demotion): Fix comment, pass scalar operands to
1986         vect_get_slp_defs.
1987         (vectorizable_type_promotion, vectorizable_store): Likewise.
1988         (vectorizable_condition): Fix comment.
1989         (vect_analyze_stmt): Call vectorizable_shift.
1990         (vect_transform_stmt): Likewise.
1991         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
1992         Use it as the operand to create vectors for, except reduction
1993         initial definition and store.  Use operands type.
1994         (vect_get_slp_defs): Add new arguments.  Pass them to
1995          vect_get_constant_vectors.
1996
1997 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1998
1999         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
2000         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
2001         * cfghooks.c (fixup_reorder_chain): Likewise.
2002         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
2003         * cgraph.c (cgraph_add_thunk): Likewise.
2004         (cgraph_create_edge_1): Likewise.
2005         (cgraph_create_virtual_clone): Likewise.
2006         * ddg.c (add_cross_iteration_register_deps): Likewise.
2007         * dwarf2out.c (modified_type_die): Likewise.
2008         * emit-rtl.c (set_mem_alias_set): Likewise.
2009         * ggc-zone.c (zone_allocate_marks): Likewise.
2010         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
2011         * gimple.c (iterative_hash_gimple_type): Likewise.
2012         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
2013         (create_single_exit_edge): Likewise.
2014         * haifa-sched.c (choose_ready): Likewise.
2015         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2016         * passes.c (execute_todo): Likewise.
2017         * sched-ebb.c (begin_schedule_ready): Likewise.
2018         * sel-sched.c (code_motion_process_successors): Likewise.
2019         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
2020         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
2021         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
2022         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
2023         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
2024         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
2025         (ssa_conflicts_add): Likewise.
2026         * tree-ssa-copy.c (replace_exp): Likewise.
2027         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
2028         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
2029         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2030         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
2031         (compute_antic): Likewise.
2032         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
2033         (add_dependence): Likewise.
2034         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
2035         * tree-vrp.c (supports_overflow_infinity): Likewise.
2036         (make_overflow_infinity, negative_overflow_infinity): Likewise.
2037         (avoid_overflow_infinity, register_new_assert_for): Likewise.
2038         (process_assert_insertions_for): Likewise.
2039         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
2040         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
2041         (intersect_loc_chains, variable_merge_over_cur): Likewise.
2042
2043 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
2044
2045         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
2046         * reload1.c (has_nonexceptional_receiver): Likewise.
2047         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
2048         (create_new_def_for): Likewise.
2049         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
2050         (merge_phi_nodes): Likewise.
2051         (has_abnormal_incoming_edge_p): Delete.
2052
2053 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
2054
2055         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
2056
2057 2010-10-21  Richard Guenther  <rguenther@suse.de>
2058             Michael Matz  <matz@suse.de>
2059
2060         PR tree-optimization/45764
2061         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2062         Adjust initial misalignment for negative DR_STEP.
2063         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
2064         do not have the same alignment over the whole iteration domain.
2065
2066 2010-10-21  Richard Guenther  <rguenther@suse.de>
2067
2068         PR tree-optimization/46111
2069         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
2070
2071 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2072
2073         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
2074
2075 2010-10-21  Tristan Gingold  <gingold@adacore.com>
2076
2077         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
2078         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
2079
2080 2010-10-21  Tristan Gingold  <gingold@adacore.com>
2081
2082         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
2083         signal_frame.
2084         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
2085
2086 2010-10-21  Tristan Gingold  <gingold@adacore.com>
2087
2088         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
2089         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
2090
2091 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
2092
2093         * basic-block.h (find_fallthru_edge): Define.
2094         * cfgcleanup.c (merge_blocks_move): Use it.
2095         (try_crossjump_bb): Likewise.
2096         * cfglayout.c (fixup_reorder_chains): Likewise.
2097         (fixup_fallthru_exit_predecessor): Likewise.
2098         * cfgrtl.c (rtl_split_edge): Likewise.
2099         (rtl_verify_flow_info): Likewise.
2100         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2101         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
2102         * ifcvt.c (block_fallthru): Likewise.
2103         * reload1.c (fixup_abnormal_edges): Likewise.
2104         * sched-ebb.c (being_schedule_ready): Likewise.
2105         (schedule_ebb): Likwise.
2106         * sched-rgn.c (find_single_block_region): Likewise.
2107         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
2108         * tree-complex.c (expand_complex_move): Likewise.
2109         * sched-int.h (find_fallthru_edge): Rename to...
2110         (find_fallthru_edge_from): ...this.
2111         * haifa-sched.c (find_fallthru_edge): Rename to...
2112         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
2113         (init_before_recovery): Call find_fallthru_edge_from.
2114         * sel-sched-ir.c (merge_fences): Likewise.
2115         * sel-sched.c (in_fallthru_bb_p): Likewise.
2116         (move_cond_jump): Likewise.
2117
2118 2010-10-20  Paul Koning  <ni1d@arrl.net>
2119
2120         * config/pdp11/pdp11.md (various): Fix conditions on a number of
2121         insn to check for target 11/40 or higher.
2122
2123 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2124
2125         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
2126         bool instead of a tree.
2127         (c_parser_objc_method_decl): Added bool argument.  Updated call to
2128         objc_build_method_signature.
2129         (c_parser_objc_method_definition): Do not call
2130         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
2131         c_parser_objc_method_decl and objc_start_method_definition.
2132         (c_parser_objc_methodproto): Do not call objc_set_method_type.
2133         Updated calls to c_parser_objc_method_type,
2134         c_parser_objc_method_decl and objc_add_method_declaration.
2135
2136 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
2137
2138         PR tree-optimization/45919
2139         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
2140         array members.
2141
2142         PR tree-optimization/46066
2143         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
2144         instead of gsi_last_bb.
2145
2146 2010-10-20  DJ Delorie  <dj@redhat.com>
2147
2148         * config/m32c/m32c.c (m32c_option_override): Always disable
2149         function-cse in 16-bit mode.  Indirect calls are always worse than
2150         direct calls as there is no 16-bit indirect call opcode.
2151         (m32c_override_options_after_change): New, likewise.
2152
2153 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
2154
2155         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
2156         emitting the conditional move in the inner mode of the SUBREG.
2157
2158 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
2159
2160         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
2161         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
2162         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2163         (ia64_preferred_reload_class): Make static.  Change rclass argument
2164         and result types from enum reg_class to reg_class_t.
2165
2166 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
2167
2168         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
2169         call for single operand expression.
2170
2171 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
2172
2173         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
2174         if there is a call statement to pure or const function in the block.
2175
2176 2010-10-20  Paul Koning  <pkoning@equallogic.com>
2177
2178         Fix several build errors for pdp11 target.
2179         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
2180         (cbranchdf4): Conditional on TARGET_FPU.
2181         (movdf): Ditto; correct alternatives check.
2182         (movmemhi): Fix predicate and constraint.
2183         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
2184
2185 2010-10-20  Richard Guenther  <rguenther@suse.de>
2186
2187         PR lto/45667
2188         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
2189         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
2190         (verify_gimple_assign_single): Disable ADDR_EXPR type check
2191         when in LTO.
2192
2193 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
2194
2195         PR fortran/42169
2196         * ira-emit.c (store_can_be_removed_p): Return false instead of
2197         gcc_unreachable.
2198
2199 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
2200
2201         * fold-const.c (fold_binary_loc): New transformation.
2202
2203 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
2204
2205         PR target/46085
2206         * config/i386/sse.md (reduc_splus_v8sf): Updated.
2207         (reduc_splus_v4df): Likewise.
2208
2209 2010-10-20  Richard Guenther  <rguenther@suse.de>
2210
2211         PR tree-optimization/45860
2212         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
2213         conditional store replacement for non-register type stores.
2214
2215 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
2216
2217         * stor-layout.c (skip_simple_constant_arithmetic): New function.
2218         (self_referential_size): Use it instead of skip_simple_arithmetic.
2219
2220 2010-10-20  Olivier Hainque  <hainque@adacore.com>
2221
2222         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
2223         If the current function calls eh_return, claim live all registers
2224         that we need to check for liveness otherwise.
2225
2226 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
2227
2228         * c-decl.c (c_write_global_declarations): Call
2229         objc_write_global_declarations when compiling Objective-C.
2230         * c-lang.c (finish_file): Removed.
2231
2232 2010-10-19  DJ Delorie  <dj@redhat.com>
2233
2234         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
2235         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
2236         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
2237         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
2238         * doc/tm.texi: Regenerate.
2239         * targhooks.h (default_label_align_after_barrier_max_skip,
2240         default_loop_align_max_skip, default_label_align_max_skip,
2241         default_jump_align_max_skip): Declare.
2242         * target.def (label_align_after_barrier_max_skip): New.
2243         (loop_align_max_skip): New.
2244         (label_align_max_skip): New.
2245         (jump_align_max_skip): New.
2246         * system.h (poison): Add those macros to the list.
2247         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
2248         (LOOP_ALIGN_MAX_SKIP): Remove.
2249         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
2250         (JUMP_ALIGN_MAX_SKIP): Remove.
2251         (default_label_align_after_barrier_max_skip): New.
2252         (default_loop_align_max_skip): New.
2253         (default_label_align_max_skip): New.
2254         (default_jump_align_max_skip): New.
2255         (compute_alignments): Use the new hooks.
2256         (shorten_branches): Likewise.
2257
2258 2010-10-19  Richard Henderson  <rth@redhat.com>
2259
2260         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
2261         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
2262         (fma4i_fmadd_<mode>): New.
2263         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
2264         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
2265         standard fma patterns.
2266         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
2267         enable for FMA.
2268         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
2269         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
2270         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
2271
2272 2010-10-19  Paul Koning  <pkoning@equallogic.com>
2273
2274         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
2275         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
2276
2277 2010-10-19  Richard Henderson  <rth@redhat.com>
2278
2279         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
2280         (fmadf4, *fmsdf4, *nfmadf4): New.
2281         (fmaxf4, *fmsxf4, *nfmaxf4): New.
2282
2283 2010-10-19  Michael Eager  <eager@eagercon.com>
2284
2285         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
2286         Use sjlj unwind info for exceptions.
2287
2288 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
2289
2290         PR fortran/43414
2291         * dwarf2out.c (add_calling_convention_attribute): Flag main
2292         Fortran subroutine with DW_AT_main_subprogram.
2293
2294 2010-10-19  Nick Clifton  <nickc@redhat.com>
2295
2296         * config/rx/rx.c (rx_function_value): Small integer types are
2297         promoted to SImode.
2298         (rx_promote_function_mode): New function.
2299         (TARGET_PROMOTE_FUNCTION_MODE): Define.
2300
2301 2010-10-19  Nick Clifton  <nickc@redhat.com>
2302
2303         * config/mep/mep.c (mep_print_operand): Use
2304         targetm.strip_name_encoding.
2305         (mep_output_aligned_common): Likewise.
2306
2307 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
2308
2309         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
2310
2311 2010-10-18  Richard Henderson  <rth@redhat.com>
2312
2313         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
2314         (fma (neg a) (neg b) c) and (fma a (neg b) c).
2315
2316 2010-10-18  Richard Henderson  <rth@redhat.com>
2317
2318         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
2319         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
2320         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
2321         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
2322         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
2323         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
2324         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
2325         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
2326         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
2327         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
2328         (bdesc_multi_arg): Remove the corresponding builtins.
2329         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
2330         (UNSPEC_FMA4_FMSUBADD): Remove.
2331         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
2332         * config/i386/sse.md (FMA4MODEF4): Remove.
2333         (FMAMODE): Add.
2334         (fma<mode>4): New expander.
2335         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
2336         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
2337         (*fma4i_fmsub_<mode>): Similarly.
2338         (*fma4i_fnmadd_<mode>): Similarly.
2339         (*fma4i_fnmsub_<mode>): Similarly.
2340         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
2341         with the first operand.
2342         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
2343         of explicit arithmetic.  Macroize with AVXMODEF2P.
2344         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
2345         (xop_frcz<mode>2): Macroize with FMAMODE.
2346         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
2347         the first operand.
2348         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
2349         extra negations.
2350         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
2351         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
2352         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
2353         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
2354         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
2355         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
2356         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
2357         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
2358
2359 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
2360
2361         PR rtl-optimization/45966
2362         * combine.c (try_combine): If added_sets_2, deal with the case
2363         where i0 feeds i1 and i1 feeds i2.
2364
2365 2010-10-18  Jan Hubicka  <jh@suse.cz>
2366
2367         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
2368         preserve flags before trying to guess on visibility.
2369         (varpool_externally_visible_p): New function.
2370         (function_and_variable_visibility): Use it.
2371
2372 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2373
2374         Implemented parsing @synthesize and @dynamic for Objective-C.
2375         * c-parser.c (c_parser_external_declaration): Recognize
2376         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
2377         (c_parser_objc_at_synthesize_declaration): New.
2378         (c_parser_objc_at_dynamic_declaration): New.
2379
2380 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2381
2382         * c-parser.c (c_parser_objc_class_declaration): After finding an
2383         error, parse the whole declaration then reset parser->error.
2384
2385 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2386
2387         PR target/46041
2388         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
2389         * builtins.c (mode_has_fma): Ditto.
2390
2391 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
2392
2393         PR target/36898
2394         PR middle-end/43760
2395         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
2396
2397 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
2398
2399         * config/i386/i386.c (ix86_option_override_internal): Define and
2400         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
2401         default.
2402         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
2403         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
2404
2405 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2406
2407         Merge from 'apple/trunk' branch on FSF servers.
2408         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
2409         following Objective-C change:
2410
2411         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
2412
2413         Radar 4301047
2414         * c-parse.in (objc_quals): Build objc qualifier list same way
2415         as gcc-3.3
2416
2417 2010-10-18  Jan Hubicka  <jh@suse.cz>
2418
2419         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
2420         function_and_variable_visibility): Revert accidental commit.
2421
2422 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2423
2424         Merge from 'apple/trunk' branch on FSF servers.
2425         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
2426         the following Objective-C change:
2427
2428         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
2429
2430         Radar 4204796
2431         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
2432         'volatilized' type used in a typeof operator.
2433
2434 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
2435
2436         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
2437         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
2438         rewrite modelled on gimple_purge_dead_eh_edges.
2439         (gimple_purge_all_dead_abnormal_call_edges): New function.
2440         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
2441         directly instead of through gimple_purge_dead_abnormal_call_edges.
2442         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
2443         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
2444         removed AB side-effects from one of its statements.
2445         (init_pre): Initialize need_ab_cleanup.
2446         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
2447         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
2448
2449 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
2450
2451         PR c/46015
2452         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
2453         on computed goto argument.
2454
2455 2010-10-18  Richard Guenther  <rguenther@suse.de>
2456
2457         PR tree-optimization/45967
2458         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
2459         (could_have_pointers): Likewise.
2460         (handle_rhs_call, handle_const_call, handle_pure_call,
2461         find_func_aliases, intra_create_variable_infos): Remove calls to them.
2462         (struct fieldoff): Add must_have_pointers field.
2463         (type_must_have_pointers): New function.
2464         (field_must_have_pointers): Likewise.
2465         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
2466         Adjust field merging.
2467         (create_function_info_for): May-have-pointers of varinfo is
2468         almost always true.
2469         (create_variable_info_for_1): Likewise.
2470
2471 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
2472
2473         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
2474         of operands to vec_concat.
2475
2476 2010-10-18  Richard Guenther  <rguenther@suse.de>
2477
2478         PR lto/44950
2479         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
2480         also clear references to entries of it.
2481
2482 2010-10-18  Andi Kleen  <ak@linux.intel.com>
2483
2484         PR other/43448
2485         * gccbug.in: Remove.
2486         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
2487         (doc, distclean, install-common): Remove reference to gccbug.
2488         * configure: Regenerate.
2489         * configure.ac (all_outputs): Remove gccbug.
2490         * doc/configfiles.texi: Remove references to gccbug.
2491         * doc/sourcebuild.texi: Dito.
2492
2493 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
2494
2495         PR middle-end/46019
2496         * fold-const.c (fold_binary_loc): If integer_pow2p has
2497         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
2498
2499 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
2500             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2501
2502         * gengtype.c (verbosity_level): Add variable.
2503         (set_gc_used): Count variables for verbosity.
2504         (close_output_files): Backing up files, counting written ones
2505         verbosily.
2506         (write_types): Count emitted functions for verbosity. Added
2507         debug messages.
2508         (write_enum_defn): Count structures for verbosity. Added debug
2509         messages.
2510         (gengtype_long_options): Add "verbose" & "backupdir".
2511         (print_usage): Ditto.
2512         (main): Verbose display of parsed files.
2513
2514         * gengtype.h (verbosity_level): Add declaration.
2515
2516 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
2517
2518         * gengtype.c (parse_program_options): Add allocation of
2519         plugin_files, and correct test on nb_plugin_files.
2520
2521 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
2522
2523         Merge from 'apple/trunk' branch on FSF servers.
2524
2525         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
2526
2527         Radar 4133425
2528         * c-decl.c (undeclared_variable): Issue diagnostic on
2529         private 'ivar' access.
2530
2531 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
2532
2533         PR target/46051
2534         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
2535         generated sequence to match *avx_vperm2f128<mode>_nozero.
2536         (vec_interleave_lowv4df): Ditto.
2537         (vec_interleave_highv8sf): Ditto.
2538         (vec_interleave_lowv8sf): Ditto.
2539
2540 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
2541
2542         * libgcov.c (create_file_directory): Enable it for win32 case.
2543         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
2544         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
2545         (GCOV_PREFIX_SKIP): Likewise.
2546
2547 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
2548
2549         * doc/objc.texi (GNU Objective-C runtime API): New section.
2550         (Modern GNU Objective-C runtime API): New section.
2551         (Traditional GNU Objective-C runtime API): New section.
2552         (Executing code before main): Mention that this section is
2553         specific to the GNU Objective-C runtime.
2554         (Garbage Collection): Same.
2555
2556 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
2557
2558         * c-parser.c (c_parser_for_statement): Move initialization of
2559         cond and incr before if.
2560
2561 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
2562
2563         * target.def (preferred_output_reload_class): New hook.
2564         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
2565         * doc/tm.texi: Regenerate.
2566         * targhooks.c (default_preferred_output_reload_class): New function.
2567         * targhooks.h (default_preferred_output_reload_class): Declare.
2568         * reload.c (find_dummy_reload): Change rclass argument type from
2569         enum reg_class to reg_class_t. Change this_alternative array type
2570         from enum reg_class to reg_class_t.
2571         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
2572         (push_reload): Change preferred_class variable type to reg_class_t.
2573         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
2574         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
2575         argument type from enum reg_class to reg_class_t. Use
2576         HARD_REGISTER_NUM_P predicate.
2577         * recog.h (reg_fits_class_p): Update prototype.
2578
2579         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2580         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
2581         Remove.
2582         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
2583         static. Change regclass argument and result types from enum reg_class
2584         to reg_class_t.
2585         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2586
2587 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
2588
2589         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
2590         visibility enum, and handle @package.
2591
2592 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
2593
2594         * doc/objc.texi (What you can and what you cannot do in +load):
2595         Document that sending messages to constant string objects in +load
2596         is not guaranteed to work.
2597
2598 2010-10-16  Jan Hubicka  <jh@suse.cz>
2599
2600         PR middle-end/44206
2601         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
2602         existence of refrences before removing the function.
2603
2604 2010-10-16  Jan Hubicka  <jh@suse.cz>
2605
2606         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
2607         only_called_at_startup and only_called_at_exit.
2608         (cgraph_propagate_frequency): Compute only_called_at_startup and
2609         only_called_at_exit.
2610         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
2611         only_called_at_exit.
2612         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
2613         flags.
2614         * predict.c (compute_function_frequency): Initialize the new flags.
2615
2616 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
2617
2618         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
2619         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
2620         on the bounds of its domain.
2621         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
2622
2623 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
2624
2625         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
2626         * config/avr/avr-protos.h (preferred_reload_class): Remove.
2627         * config/avr/avr.c (preferred_reload_class): Remove.
2628         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
2629         * config/pa/pa.c (emit_move_sequence): Update comment
2630         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
2631         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
2632         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
2633         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
2634         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
2635         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
2636         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
2637         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
2638         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
2639         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
2640         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
2641         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
2642         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
2643
2644 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
2645
2646         * opts.c (set_fast_math_flags,
2647         set_unsafe_math_optimizations_flags): Make static.
2648         * toplev.h (set_fast_math_flags,
2649         set_unsafe_math_optimizations_flags): Remove prototypes.
2650
2651 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
2652
2653         * config/arm/arm.c (arm_option_optimization): Set
2654         flag_section_anchors to 1 not 2.
2655         * config/i386/i386.c (ix86_option_override_internal): Check
2656         global_options_set.x_flag_zee and
2657         global_options_set.x_flag_omit_frame_pointer.
2658         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
2659         flag_zee to 2.
2660         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
2661         global_options_set.x_flag_omit_frame_pointer.
2662         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
2663         opts->x_flag_section_anchors to 1 not 2.
2664         * config/sh/sh.c (sh_option_optimization): Don't set
2665         flag_schedule_insns to 2.
2666         (sh_option_override): Check
2667         global_options_set.x_flag_schedule_insns.
2668         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
2669
2670 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
2671
2672         * configure.ac: Make sure inhibit_libc remains false for mingw targets
2673         as cross.
2674         * configure: Regenerated.
2675
2676 2010-10-15  Xinliang David Li  <davidxl@google.com>
2677
2678         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
2679         function.
2680         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
2681         into a recursive function.
2682
2683 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
2684
2685         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
2686         (*movdfcc_1): ditto.
2687
2688 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2689
2690         * target.def (target_option.init_struct): New hook.
2691         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
2692         * doc/tm.texi: Regenerate.
2693         * hooks.c (hook_void_gcc_optionsp): New.
2694         * hooks.h (hook_void_gcc_optionsp): Declare.
2695         * langhooks-def.h (lhd_init_options_struct): Remove.
2696         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
2697         * langhooks.c (lhd_init_options_struct): Remove.
2698         * opts.c (init_options_struct): Also call
2699         targetm.target_option.init_struct.
2700         * config/i386/i386.c (ix86_option_init_struct,
2701         TARGET_OPTION_INIT_STRUCT): New.
2702         (ix86_option_optimization): Move some settings to
2703         ix86_option_init_struct.
2704         * config/pdp11/pdp11.c (pdp11_option_init_struct,
2705         TARGET_OPTION_INIT_STRUCT): New.
2706         (pdp11_option_optimization): Move some settings to
2707         pdp11_option_init_struct.
2708         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
2709         rs6000_option_init_struct.  Use options structure pointer.
2710         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2711         * config/s390/s390.c (s390_option_init_struct,
2712         TARGET_OPTION_INIT_STRUCT): New.
2713         (s390_option_optimization): Don't set
2714         flag_asynchronous_unwind_tables here.
2715         * config/sh/sh.c (sh_option_init_struct,
2716         TARGET_OPTION_INIT_STRUCT): New.
2717         (sh_option_optimization): Don't set flag_finite_math_only here.
2718         * config/spu/spu.c (spu_option_optimization): Replace by
2719         spu_option_optimization.  Use options structure pointer.
2720         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2721
2722 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2723
2724         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
2725
2726         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
2727         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
2728         (Standard names): Document fma.
2729
2730         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
2731         __FP_FAST_FMAF, __FP_FAST_FMAL.
2732
2733         * builitns.c (expand_builtin_mathfn_ternary): New function for
2734         expanding ternary math functions, like fma.
2735         (expand_builtin): Call it for the fma builtins.
2736
2737         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
2738         ops at present.
2739
2740         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
2741         vectorizable functions to support vectorizing fma.
2742
2743         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
2744         Handle fma builtins.
2745
2746         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
2747         (UNSPEC_VSX_MSUB): Ditto.
2748         (UNSPEC_VSX_NMADD): Ditto.
2749         (UNSPEC_VSX_NMSUB): Ditto.
2750         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
2751         of UNSPEC. Renumber combiner patterns.
2752         (vsx_fmsub<mode>4*): Ditto.
2753         (vsx_fnmadd<mode>4*): Ditto.
2754         (vsx_fnmsub<mode>4*): Ditto.
2755
2756         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
2757         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
2758         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
2759         (altivec_vmaddfp_1): Ditto.
2760         (altivec_vmaddfp_2): Ditto.
2761         (atlivec_mulv4sf3): Ditto.
2762         (altivec_vnmsubfp): Ditto.
2763         (altivec_vnmsubfp_1): Ditto.
2764         (altivec_vnmsubfp_2): Ditto.
2765         (altivec_vnmsubfp_3): Delete.
2766
2767         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
2768         (fmasf4_fpr): Ditto.
2769         (fmssf4_fpr): Ditto.
2770         (fnmasf4_fpr): Ditto.
2771         (fnmssf4_fpr): Ditto.
2772         (fmadf4): Ditto.
2773         (fmadf4_fpr): Ditto.
2774         (fmsdf4_fpr): Ditto.
2775         (fnmadf4_fpr): Ditto.
2776         (fnmsdf4_fpr): Ditto.
2777
2778         * optabs.h (OTI_fma): Add fma optab.
2779         (fma_optab): Ditto.
2780
2781         * genopinit.c (optabs): Set fma optab.
2782
2783         * rtl.def (FMA): Add FMA rtl.
2784
2785         * tree.h (mode_has_fma): New function to return if MODE supports a
2786         fast multiply and add instruction.
2787         * builtins.c (mode_has_fma): Ditto.
2788
2789 2010-10-15  Jan Hubicka  <jh@suse.cz>
2790
2791         * lto-streamer-out.c (write_symbol): Use pointer set of seen
2792         objects instead of bitmap.
2793         (produce_symtab): Likewise; output defined symbols first.
2794
2795 2010-10-15  Jie Zhang  <jie@codesourcery.com>
2796
2797         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
2798         Option Summary and Index.
2799
2800 2010-10-15  Richard Guenther  <rguenther@suse.de>
2801
2802         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
2803         for automatic variables again.
2804
2805 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2806
2807         * doc/extend.texi (Variable Length): Don't refer to VLAs not
2808         conforming to C99.
2809
2810 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2811
2812         * config/rx/rx.c (rx_option_optimization): Change to
2813         rx_override_options_after_change.  Don't change
2814         flag_lto_compression_level.  Don't check for changes to whether
2815         FPU instructions can be used.  Check and set only
2816         flag_finite_math_only, not other fast-math flags.
2817         (rx_option_override): Call rx_override_options_after_change.
2818         (TARGET_OPTION_OPTIMIZATION): Remove.
2819         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2820
2821 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2822
2823         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
2824         disable section anchors for lang_hooks.name[4] != 'O'.
2825
2826 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
2827
2828         * config/frv/frv.c (frv_option_optimization,
2829         TARGET_OPTION_OPTIMIZATION): Remove.
2830         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
2831
2832 2010-10-15  Michael Matz  <matz@suse.de>
2833
2834         * cgraphunit.c (clone_of_p): Define unconditionally.
2835
2836 2010-10-15  Richard Guenther  <rguenther@suse.de>
2837
2838         PR lto/45957
2839         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
2840
2841 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
2842
2843         * ifcvt.c (find_active_insn_before): New function.
2844         (find_active_insn_after): New function.
2845         (cond_exec_process_if_block): Use new functions to replace
2846         prev_active_insn() and next_active_insn().
2847
2848 2010-10-14  Yao Qi  <yao@codesourcery.com>
2849
2850         PR target/45447
2851         * config/arm/arm.c (arm_build_builtin_va_list): Assign
2852         va_list_name to TYPE_STUB_DECL (va_list_type).
2853
2854 2010-10-14  Jan Hubicka  <jh@suse.cz>
2855
2856         PR middle-end/45621
2857         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
2858         redirected to clone, be happy.
2859         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
2860         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
2861         former_clone_of unconditionally.
2862
2863 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2864
2865         Merge from FSF apple 'trunk' branch.
2866         2006 Fariborz Jahanian <fjahanian@apple.com>
2867
2868         Radars 4436866, 4505126, 4506903, 4517826
2869         * c-parser.c (c_parser, objc_property_attr_context) New flag.
2870         (c_lex_one_token): Handle property attributes.
2871         (c_parser_external_declaration): Handle @property.
2872         (c_parser_declaration_or_fndef): Warn on invalid attributes before
2873         @alias, @class, @end and @property objc keywords.
2874         (c_parser_objc_methodprotolist): Handle @property.
2875         (c_parser_objc_property_attrlist): New.
2876         (c_parser_objc_at_property): New.
2877         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
2878         (build_modify_expr): Likewise.
2879
2880 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
2881
2882         PR tree-optimization/46008
2883         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
2884
2885 2010-10-14  Richard Guenther  <rguenther@suse.de>
2886
2887         PR tree-optimization/44913
2888         * tree-data-ref.c (disjoint_objects_p): Remove.
2889         (dr_may_alias_p): Simplify.  Only hand the base object to
2890         the alias-oracle.
2891         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2892         some more trees, bail out instead of asserting.
2893         (ptr_derefs_may_alias_p): Likewise.  Export.
2894         (refs_may_alias_p_1): Handle STRING_CSTs.
2895         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
2896
2897 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
2898
2899         PR c/45969
2900         * c-typeck.c (build_binary_op): Don't try to compute a semantic
2901         type with excess precision for boolean operations.
2902
2903 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2904             Basile Starynkevitch  <basile@starynkevitch.net>
2905
2906         * gengtype.c:  Include getopt.h and version.h.
2907
2908         (lang_bitmap, struct outf, outf_p)
2909         (get_output_file_with_visibility, oprintf): Definitions moved to
2910         gengtype.h
2911         (output_files, header_file, srcdir, srcdir_len, this_file)
2912         (do_dump): No more static variables.
2913         (do_debug): New.
2914         (dbgprint_count_type_at): Added new function.
2915         (gengtype_long_options): New.
2916         (print_usage, print_version, parse_program_options): New.
2917         (main): Call parse_program_options, and removed old option
2918         handling code.  Added some debug output.
2919
2920         * gengtype.h:  Updated copyright year.
2921         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
2922         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
2923         Moved from gengtype.c to here.
2924         (do_debug, read_state_filename, write_state_filename): New variables.
2925         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
2926
2927         * Makefile.in:
2928         (REVISION): Always defined.
2929         (version.o): Removed ifdef REVISION_c.
2930         (s-gtype): Pass arguments to build/gengtype program.
2931         (build/version.o): Added building rule.
2932         (build/gengtype$(build_exeext)): Added build/version.o.
2933
2934 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2935
2936         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
2937         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
2938         __strong macros.
2939
2940 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2941
2942         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
2943         may_trap_or_fault_p instead of may_trap_p predicate.
2944         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
2945         (substitute_placeholder_in_expr): Likewise.
2946         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
2947         flag on MEM_REF nodes.
2948         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
2949         flags on INDIRECT_REF nodes.
2950
2951 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
2952
2953         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
2954         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
2955         (arm*-*-eabi*) <tm_file>: Likewise.
2956         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
2957         (frv-*-*linux*) <tm_file>: Likewise.
2958         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
2959         and associated helper macros.
2960         * config/frv/frv-abi.h: Delete.
2961
2962 2010-10-14  Richard Guenther  <rguenther@suse.de>
2963
2964         PR lto/44561
2965         * tree.def (NULLPTR_TYPE): New tree code.
2966         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
2967         * dwarf2out.c (is_base_type): Likewise.
2968         (gen_type_die_with_usage): Likewise.
2969         * sdbout.c (plain_type_1): Likewise.
2970         * tree.c (build_int_cst_wide): Likewise.
2971         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
2972
2973 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
2974
2975         * params.c (params_finished): New.
2976         (add_params): Assert !params_finished.
2977         (finish_params): New.
2978         (set_param_value_internal): Take params and params_set
2979         parameters.  Assert params_finished.
2980         (set_param_value, maybe_set_param_value): Take params and
2981         params_set parameters.  Update calls to set_param_value_internal.
2982         (set_default_param_value): Assert !params_finished.  Don't use
2983         set_param_value_internal.
2984         (default_param_value, init_param_values): New.
2985         * params.h (struct param_info): Change value to default_value.
2986         Remove set.
2987         (set_param_value, maybe_set_param_value): Add params and
2988         params_set parameters.
2989         (PARAM_VALUE): Get parameters from global_options.
2990         (PARAM_SET_P): Remove.
2991         (finish_params, default_param_value, init_param_values): New.
2992         * common.opt (param_values): New Variable.
2993         * config/arm/arm.c (arm_option_override): Pass extra arguments to
2994         maybe_set_param_value.
2995         * config/i386/i386.c (ix86_option_override_internal): Pass extra
2996         arguments to maybe_set_param_value.
2997         * config/picochip/picochip.c (picochip_option_override): Pass
2998         extra arguments to maybe_set_param_value.
2999         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
3000         extra arguments to maybe_set_param_value.
3001         * config/s390/s390.c (s390_option_override): Use
3002         maybe_set_param_value instead of set_param_value.  Pass extra
3003         arguments to maybe_set_param_value.
3004         * config/sparc/sparc.c (sparc_option_override): Pass extra
3005         arguments to maybe_set_param_value.
3006         * config/spu/spu.c (spu_option_override): Pass extra arguments to
3007         maybe_set_param_value.
3008         * opts.c (handle_param): Take opts and opts_set parameters.
3009         Update call to set_param_value.
3010         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
3011         initial_loop_invariant_max_bbs_in_loop): Remove.
3012         (init_options_once): Don't set them.
3013         (init_options_struct): Initialize parameters structures.
3014         (default_options_optimization): Use default_param_value when
3015         restoring defaults.  Update calls to maybe_set_param_value.
3016         (finish_options): Update calls to maybe_set_param_value.
3017         (common_handle_option): Update calls to handle_param and
3018         set_param_value.
3019         * toplev.c (DEFPARAM): Update definition for changes to param_info.
3020         (general_init): Call finish_params.
3021
3022 2010-10-14  Nick Clifton  <nickc@redhat.com>
3023
3024         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
3025         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
3026         (FIRST_PSEUDO_REGISTER): Increase by one.
3027         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
3028         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
3029         (MODES_TIEABLE): Call mn10300_modes_tieable.
3030         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
3031         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
3032         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
3033         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
3034         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
3035         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3036         (mn10300_cc_status_mdep): Delete.
3037         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
3038         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
3039         the combine-stack-adjust pass.
3040         (print_operand): Use the mode of the comparison operation to
3041         select the comparison suffix.
3042         (notice_update_cc): Delete.
3043         (mn10300_secondary_reload_class): Remove test for stack pointer
3044         based arithmetic.
3045         (output_tst): Rename to mn10300_output_cmp.
3046         (impossible_plus_operand): Move into predicates.md.
3047         (mn10300_legitimize_address): Make static.
3048         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
3049         constant pic operands.
3050         (mn10300_legitimate_constant_p): New function.
3051         (mn10300_case_values_threshold): Make static.
3052         (mn10300_hard_regno_mode_ok): New function.
3053         (mn10300_modes_tieable): New function.
3054         (mn10300_select_cc_mode): New function.
3055         * config/mn10300/predicates.md (impossible_plus_operand): Define.
3056         * config/mn10300/mn10300-protos.h: Tidy.
3057         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
3058         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
3059         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
3060         with clobbers or sets of CC_REG.
3061         (CC_REG): Define.
3062         (mov*): Remove use of CLR instruction.
3063         (cbranch_si4_<code>): New pattern/split.
3064         (integer_conditional_branch): New pattern.
3065         (cbranch_sf4_<code>): New pattern/split.
3066         (float_conditional_branch): New pattern.
3067         (casesi): Use addsi3 pattern instead of movsi pattern to add and
3068         move a value at the same time.
3069         (cc0 peepholes): Remove.
3070
3071 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
3072
3073         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
3074         on RTX_FRAME_RELATED_P insns and the insn to which
3075         NOTE_INSN_EPILOGUE_BEG is attached.
3076         * sched-vis.c (print_value): Allow NULL value.
3077
3078 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
3079
3080         PR rtl-optimization/45570
3081         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
3082         assert that we are pipelining outer loops.  Allow returning
3083         zero predecessors.
3084
3085 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
3086
3087         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
3088         (tidy_control_flow): Tidy vertical space.
3089         (sel_remove_bb): New variable idx.  Use it to remember the basic
3090         block index before deleting the block.
3091         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
3092         (sel_merge_blocks): ... here.
3093         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
3094
3095 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
3096
3097         * cse.c (is_dead_reg): Change into inline function that is not
3098         called through for_each_rtx.
3099         (set_live_p): Adjust caller.
3100         (insn_live_p): Don't reset DEBUG_INSNs here.
3101         (struct dead_debug_insn_data): New data.
3102         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
3103         (delete_trivially_dead_insns): If there is just one setter for the
3104         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
3105         and add DEBUG_INSN for it right before the removed setter and
3106         use the DEBUG_EXPR instead of the dead pseudo.
3107
3108 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
3109
3110         * et-forest.c (et_nca): Return NULL immediately when
3111         the dominance forest has disjoint components.
3112
3113 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
3114
3115         * ira.c (setup_class_hard_regs): Fix typo in indexing
3116         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
3117
3118 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
3119
3120         * graph.c (inbb): New variable.
3121         (start_bb): Set inbb to 1 if output is inside of a building block.
3122         (end_bb): Check if output is inside of a building block.
3123
3124 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
3125
3126         PR rtl-optimization/45912
3127         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
3128         regno of registers instead of their index to compute the alignment.
3129
3130 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
3131
3132         * config/i386/i386.c (ix86_build_const_vector): Check vector
3133         mode instead of scalar mode.
3134         (ix86_build_signbit_mask): Likewise.
3135         (ix86_expand_fp_absneg_operator): Updated.
3136         (ix86_expand_copysign): Likewise.
3137         (ix86_expand_int_vcond): Likewise.
3138         (ix86_emit_swdivsf): Likewise.
3139         (ix86_sse_copysign_to_positive): Likewise.
3140         (ix86_expand_sse_fabs): Likewise.
3141         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
3142         * config/i386/sse.md (copysign<mode>3): Likewise.
3143         (sse2_cvtudq2ps): Likewise.
3144         (vec_unpacku_float_hi_v4si): Likewise.
3145         (vec_unpacku_float_lo_v4si): Likewise.
3146
3147         * config/i386/i386.c (ix86_builtins): Add
3148         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
3149         (bdesc_args): Likewise.
3150         (ix86_builtin_vectorized_function): Support
3151         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
3152         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
3153         and IX86_BUILTIN_CVTPS2DQ256.
3154         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
3155
3156         * config/i386/sse.md (STORENT_MODE): New.
3157         (VEC_FLOAT_MODE): Likewise.
3158         (VEC_EXTRACT_MODE): Likewise.
3159         (*avx_cvtdq2pd256_2): Likewise.
3160         (vec_pack_trunc_v4df): Likewise.
3161         (vec_interleave_highv8sf): Likewise.
3162         (vec_interleave_lowv8sf): Likewise.
3163         (storent<mode>): Macroized.
3164         (<code><mode>2: absneg): Likewise.
3165         (copysign<mode>3): Likewise.
3166         (vec_extract<mode>): Likewise.
3167
3168         PR target/44180
3169         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
3170         for V8SFmode.
3171
3172 2010-10-13  Richard Guenther  <rguenther@suse.de>
3173             H.J. Lu  <hongjiu.lu@intel.com>
3174
3175         * config/i386/sse.md (reduc_splus_v8sf): Add.
3176         (reduc_splus_v4df): Likewise.
3177         (vec_unpacks_hi_v8sf): Likewise.
3178         (vec_unpacks_lo_v8sf): Likewise.
3179         (*avx_cvtps2pd256_2): Likewise.
3180         (vec_unpacks_float_hi_v8si): Likewise.
3181         (vec_unpacks_float_lo_v8si): Likewise.
3182         (vec_interleave_highv4df): Likewise.
3183         (vec_interleave_lowv4df): Likewise.
3184
3185 2010-10-13  Richard Guenther  <rguenther@suse.de>
3186
3187         PR objc/45878
3188         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
3189         alone if there are no virtual methods.
3190
3191 2010-10-13  Richard Henderson  <rth@redhat.com>
3192
3193         * expr.c (build_personality_function): Take parameter LANG instead
3194         of parameter NAME.  Build the name based on the lang prefix and the
3195         unwind method in use.
3196         * tree.c (lhd_gcc_personality): Update call to
3197         build_personality_function.
3198
3199 2010-10-13  Richard Guenther  <rguenther@suse.de>
3200
3201         PR objc/45878
3202         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
3203
3204 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
3205
3206         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
3207         Canonicalize input operands of ASM_OPERANDS insns.
3208
3209 2010-10-13  Richard Guenther  <rguenther@suse.de>
3210
3211         PR tree-optimization/45788
3212         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
3213         EH update until fixup-cfg.
3214
3215 2010-10-13  Julian Brown  <julian@codesourcery.com>
3216
3217         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
3218         from CORE_REGS and GENERAL_REGS classes.
3219         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
3220         final constraint for register preferencing.
3221
3222 2010-10-13  Richard Guenther  <rguenther@suse.de>
3223
3224         PR tree-optimization/45970
3225         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
3226         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
3227         (stmt_kills_ref_p): Likewise.
3228         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
3229
3230 2010-10-13  Richard Guenther  <rguenther@suse.de>
3231
3232         PR tree-optimization/45982
3233         * tree-ssa-structalias.c (make_constraints_to): New function.
3234         (make_constraint_to): Implement in terms of make_constraints_to.
3235         (find_func_aliases): Properly make return values of pure/const
3236         functions escape if they assign to sth that is not a pointer.
3237
3238 2010-10-13  Richard Guenther  <rguenther@suse.de>
3239
3240         PR middle-end/45874
3241         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
3242         Fixup the CFG when EH was fixed up.
3243
3244 2010-10-13  Ira Rosen  <irar@il.ibm.com>
3245
3246         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
3247         Use operand's type for POINTER_PLUS_EXPR.
3248
3249 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
3250
3251         * c-parser.c (c_parser_for_statement): Initialize incr.
3252
3253 2010-10-12  Xinliang David Li  <davidxl@google.com>
3254
3255         PR tree-optimization/45972
3256         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
3257         with too many arguments.
3258
3259 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
3260
3261         PR fortran/45636
3262         * tree-ssa-forwprop.c: Include expr.h.
3263         (constant_pointer_difference, simplify_builtin_call): New functions.
3264         (tree_ssa_forward_propagate_single_use_vars): Call
3265         simplify_builtin_call on builtin calls.
3266
3267 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
3268
3269         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
3270         (*adddi3_extend_sp32): Likewise.
3271         (*subdi3_insn_sp32): Likewise.
3272         (*subdi3_extend_sp32): Likewise.
3273         (*negdi2_sp32): Use negative test for consistency.
3274
3275 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3276
3277         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
3278         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3279         * config/fixed-bit.h: Likewise.
3280         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3281         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
3282         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
3283         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
3284         (DF_SIZE): Likewise.
3285         * doc/tm.texi: Regenerate.
3286
3287 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
3288
3289         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
3290         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
3291         (*isel_reversed_unsigned_<mode>): New.
3292         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
3293         as valid comparisons and adjust operands and output appropriately.
3294         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
3295
3296 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
3297
3298         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
3299         DATA_ALIGNMENT and add COND parameter. Update comments above.
3300         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
3301         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
3302
3303 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
3304
3305         PR bootstrap/45958
3306         * exec-tool.in: Support '-plugin' as the second option to the linker.
3307
3308 2010-10-12  Richard Henderson  <rth@redhat.com>
3309
3310         PR middle-end/45962
3311         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
3312         (expand_stack_vars): Assert large base allocated when used.
3313
3314 2010-10-12  Richard Guenther  <rguenther@suse.de>
3315
3316         * tree-ssa-structalias.c (get_constraint_for_1): Constants
3317         only point to nonlocal, not anything.
3318
3319 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
3320
3321         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
3322         unwind info for exceptions.
3323
3324 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3325
3326         PR testsuite/45851
3327         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
3328         Document optional target selector.
3329
3330 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
3331
3332         * flag-types.h: New.
3333         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
3334         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
3335         options.h.
3336         (OPTIONS_H): Define.
3337         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
3338         of options.h.
3339         * configure.ac (tm_include_list): Include options.h not flags.h.
3340         * configure: Regenerate.
3341         * flags.h: Include flag-types.h.  Include options.h at top of file
3342         again.
3343         (enum debug_info_type, enum debug_info_level, enum
3344         debug_info_usage, enum symbol_visibility, struct visibility_flags,
3345         enum ira_algorithm, enum ira_region, enum excess_precision, enum
3346         graph_dump_types, enum stack_check_type,
3347         enum warn_strict_overflow_code): Move to flag-types.h
3348         * opth-gen.awk: Include flag-types.h in options.h.
3349
3350 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
3351
3352         * expr.c (store_expr): Share code for STRING_CST and
3353         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
3354         check if target is a MEM.
3355
3356         * rtl.h: Include hashtab.h.
3357         (iterative_hash_rtx): New prototype.
3358         * rtl.c (iterative_hash_rtx): New function.
3359         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
3360         (output_loc_list): Return immediately if emitted is set, set it.
3361         (hash_loc_operands, hash_locs, hash_loc_list,
3362         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
3363         optimize_location_lists_1, optimize_location_lists): New function.
3364         (dwarf2out_finish): Call optimize_location_lists.
3365         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
3366
3367 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3368
3369         PR testsuite/45974
3370         Revert:
3371         * Makefile.in ($(lang_checks_parallel))
3372         ($(lang_checks_parallelized)): Use single quotes for
3373         $(RUNTESTFLAGS), to allow passing quoted content.
3374
3375 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3376
3377         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
3378         actual_oldval.  Use __builtin_expect.
3379         (SUBWORD_VAL_CAS): Likewise.
3380
3381 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
3382
3383         * recog.c (nonmemory_operand): Call immediate_operand for
3384         CONSTANT_P operands.
3385
3386 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
3387
3388         * config/i386/i386.md (movmem<mode>): Macroize expander from
3389         movmem{si,di} using SWI48 mode iterator.
3390         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
3391         *strmovsi_rex_1 using P mode iterator.
3392         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
3393         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
3394         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
3395         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
3396         (setmem<mode>): Macroize expander from setmem{si,di} using
3397         SWI48 mode iterator.
3398         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
3399         *strsetsi_rex_1 using P mode iterator.
3400         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
3401         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
3402         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
3403         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
3404         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
3405         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
3406         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
3407         mode iterator.
3408         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
3409         *strlenqi_rex_1 using P mode iterator.
3410
3411 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
3412
3413         PR bootstrap/45445
3414         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
3415         static functions.
3416         (mark_ref_live, mark_ref_dead): Use them.
3417         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
3418         Save the original reg, and use the new functions.
3419         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
3420         changed.
3421         (check_and_make_def_conflict): Save the original reg.
3422
3423 2010-10-11  Martin Jambor  <mjambor@suse.cz>
3424
3425         PR middle-end/45699
3426         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
3427         thunks.
3428
3429 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3430
3431         * Makefile.in ($(lang_checks_parallel))
3432         ($(lang_checks_parallelized)): Use single quotes for
3433         $(RUNTESTFLAGS), to allow passing quoted content.
3434