Remove _GNU_SOURCE from AM_CPPFLAGS
[official-gcc.git] / gcc / ChangeLog
blob96f542caea66e3d78461e5a61fe3816ba38d33b1
1 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
3         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
4         assert it is always true.
5         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6         moves.
8 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
10         * c-parser.c (c_lex_one_token): Rewritten conditional used when
11         compiling Objective-C to be more efficient.
13 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
15         * opts-common.c (decode_cmdline_options_to_array): Remove variable
16         argv_copied.
18 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
20         * recog.h, genoutput.c, optabs.c: Revert last patch.
22 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
24        PR target/48090
25        * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
27 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
29         * recog.h (insn_operand_data): Add an "allows_mem" field.
30         * genoutput.c (output_operand_data): Initialize it.
31         * optabs.c (maybe_legitimize_operand_same_code): New function.
32         (maybe_legitimize_operand): Use it when matching the original
33         op->value.
35 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
37         * genpreds.c (process_define_predicate): Move most processing
38         to gensupport.c.  Continue to validate the expression.
39         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
40         (process_define_predicate): Move processing to gensupport.c.
41         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
42         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
43         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
44         argument.
45         (valid_predicate_name_p): New function, split out from old
46         genpreds.c:process_define_predicate.
47         (process_define_predicate): New function, combining code from
48         old genpreds.c and genrecog.c functions.
49         (process_rtx): Call it for DEFINE_PREDICATE and
50         DEFINE_SPECIAL_PREDICATE.
52 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
54         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
55         size of a '%A' memory reference.
56         (T_DREG, T_QREG): New neon_builtin_type_bits.
57         (arm_init_neon_builtins): Assert that the load and store operands
58         are neon_struct_operands.
59         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
60         (NEON_ARG_MEMORY): New builtin_arg.
61         (neon_dereference_pointer): New function.
62         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
63         Handle NEON_ARG_MEMORY.
64         (arm_expand_neon_builtin): Update after above interface changes.
65         Use NEON_ARG_MEMORY for loads and stores.
66         * config/arm/predicates.md (neon_struct_operand): New predicate.
67         * config/arm/iterators.md (V_two_elem): Tweak formatting.
68         (V_three_elem): Use BLKmode for accesses that have no associated mode.
69         (V_four_elem): Tweak formatting.
70         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
71         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
72         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
73         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
74         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
75         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
76         (neon_vst4<mode>): Replace pointer operand with a memory operand.
77         Use %A in the output template.
78         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
79         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
80         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
81         the width of the memory access.  Remove post-increment.
82         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
84 2011-04-12  Nick Clifton  <nickc@redhat.com>
86         * config/v850/v850.c (expand_prologue): Do not use the CALLT
87         instruction for interrupt handlers if the target is the basic V850
88         architecture.
89         (expand_epilogue): Likewise.
91 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
93         PR rtl-optimization/48549
94         * combine.c (propagate_for_debug): Also stop after BB_END of
95         this_basic_block.  Process LAST and just stop processing after it.
96         (combine_instructions): If last_combined_insn has been deleted,
97         set last_combined_insn to its PREV_INSN.
99 2011-04-12  Richard Guenther  <rguenther@suse.de>
101         PR tree-optimization/46076
102         * gimple.h (struct gimple_statement_call): Add fntype field.
103         (gimple_call_fntype): Adjust.
104         (gimple_call_set_fntype): New function.
105         * gimple.c (gimple_build_call_1): Set the call function type.
106         * gimplify.c (gimplify_call_expr): Preserve the function
107         type the frontend used for the call.
108         (gimplify_modify_expr): Likewise.
109         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
110         function type.
111         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
112         function type.
113         * tree-ssa.c (useless_type_conversion_p): Function pointer
114         conversions are useless.
116 2011-04-12  Martin Jambor  <mjambor@suse.cz>
118         * cgraph.h (cgraph_node): Remove function declaration.
119         (cgraph_create_node): Declare.
120         (cgraph_get_create_node): Likewise.
121         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
122         Updated all callers.
123         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
124         the decl does not already exist.  Call cgraph_get_create_node instead
125         of cgraph_node.
126         (cgraph_get_create_node): New function.
127         (cgraph_same_body_alias): Update comment.
128         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
129         assert it does not return NULL.
130         (cgraph_update_edges_for_call_stmt): Likewise.
131         (cgraph_clone_edge): Likewise.
132         (cgraph_create_virtual_clone): Likewise.
133         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
134         instead of cgraph_node.
135         (cgraph_add_new_function): Call cgraph_create_node or
136         cgraph_get_create_node instead of cgraph_node.
137         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
138         instead of cgraph_node.
139         (record_eh_tables): Likewise.
140         (mark_address): Likewise.
141         (mark_load): Likewise.
142         (build_cgraph_edges): Call cgraph_get_create_node instead
143         of cgraph_node.
144         (rebuild_cgraph_edges): Likewise.
145         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
146         instead of cgraph_node.
147         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
148         cgraph_node.
149         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
150         cgraph_create_node instead of cgraph_node.
151         * c-decl.c (finish_function): Call cgraph_get_create_node instead
152         of cgraph_node.
153         * lto-cgraph.c (input_node): Likewise.
154         * lto-streamer-in.c (input_function): Likewise.
155         * varasm.c (mark_decl_referenced): Likewise.
156         (assemble_alias): Likewise.
158 2011-04-12  Martin Jambor  <mjambor@suse.cz>
160         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
161         instead of cgraph_node and assert it does not return NULL.
162         * lto-streamer-in.c (lto_read_body): Likewise.
163         * omp-low.c (new_omp_context): Likewise.
164         (create_task_copyfn): Likewise.
165         * tree-emutls.c (lower_emutls_function_body): Likewise.
166         * matrix-reorg.c (transform_allocation_sites): Likewise.
168 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
170         PR c/48552
171         * c-typeck.c (build_asm_expr): Error out on attempts to use
172         void type outputs or inputs for constraints that allow reg or
173         don't allow memory.
175 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
176             Richard Earnshaw  <rearnsha@arm.com>
178         PR target/48250
179         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
180         to use sign-magnitude offsets. Reject unsupported unaligned
181         cases. Add detailed description in comments.
182         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
183         condition from TARGET_32BIT to TARGET_ARM.
185 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
187         * tree.h (struct typed_tree): New.
188         (struct tree_common): Include it instead of tree_base.
189         (TREE_TYPE): Update for new location of type field.
190         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
191         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
192         (union tree_node): Add typed field.
193         * treestruct.def (TS_TYPED): New.
194         * lto-streamer.c (check_handled_ts_structures): Handle it.
195         * tree.c (MARK_TS_TYPED): New macro.
196         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
198 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
200         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
201         (force_nonfallthru): Do not alter the loop nest if no basic block
202         was created.
204 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
206         * config/i386/sse.md (VI): New mode iterator.
207         (SSEMODEI): Remove.
208         (AVX256MODEI): Ditto.
209         (AVXMODEF4P): Ditto.
210         (avxvecpsmode): Ditto.
211         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
212         (sse2_andnot<mode>3): New expander.
213         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
214         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
215         (<any_logic:code><mode>3): Use VI mode iterator.
216         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
217         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
218         (*andnottf3): Handle AVX three-operand constraints.
219         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
221 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
222             Robert Millan  <rmh@gnu.org>
224         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
225         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
226         GNU_USER_DYNAMIC_LINKER64): Define.
227         (REG_NAME): Don't undefine.
228         (MD_UNWIND_SUPPORT): Undefine.
229         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
230         (REG_NAME): Don't undefine.
231         (MD_UNWIND_SUPPORT): Undefine.
232         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
234 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
236         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
237         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
239 2011-04-11  Xinliang David Li  <davidxl@google.com>
241         * value-profile.c (check_ic_target): New function.
242         (gimple_ic_transform): Sanity check indirect call target.
243         * gimple-low.c (gimple_check_call_args): Interface change.
244         (gimple_check_call_matching_types): New function.
245         * tree-inline.c (tree_can_inline_p): Call new function.
247 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
249         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
250         tree-pretty-print.h & realmpfr.h.
252 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
254         PR middle-end/48464
255         * ira.c (setup_pressure_classes): Fix typo in loop condition.
256         (setup_allocno_and_important_classes): Ditto.
258 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
260         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
261         GNU_USER_DYNAMIC_LINKER.
262         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
263         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
264         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
265         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
266         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
267         GNU_USER_TARGET_OS_CPP_BUILTINS.
268         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
269         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
270         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
271         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
272         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
273         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
274         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
275         GNU_USER_TARGET_OS_CPP_BUILTINS.
276         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
277         GNU_USER_DYNAMIC_LINKER.
278         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
279         GNU_USER_TARGET_OS_CPP_BUILTINS.
280         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
281         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
282         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
283         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
284         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
285         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
286         GNU_USER_DYNAMIC_LINKER64): Remove.
287         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
288         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
289         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
290         GNU_USER_DYNAMIC_LINKER.
291         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
292         GNU_USER_TARGET_OS_CPP_BUILTINS.
293         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
294         GNU_USER_TARGET_OS_CPP_BUILTINS.
295         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
296         to GNU_USER_TARGET_OS_CPP_BUILTINS.
297         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
298         GNU_USER_TARGET_OS_CPP_BUILTINS.
299         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
300         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
301         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
302         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
303         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
304         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
305         GNU_USER_DYNAMIC_LINKER.
306         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
307         GNU_USER_TARGET_OS_CPP_BUILTINS.
308         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
309         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
310         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
311         GNU_USER_DYNAMIC_LINKER.
312         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
313         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
314         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
315         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
316         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
317         GNU_USER_DYNAMIC_LINKER.
318         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
319         GNU_USER_DYNAMIC_LINKERN32.
320         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
321         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
322         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
323         GNU_USER_DYNAMIC_LINKER32.
324         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
325         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
326         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
327         GNU_USER_DYNAMIC_LINKER.
328         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
329         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
330         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
331         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
332         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
333         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
334         GNU_USER_DYNAMIC_LINKER32.
335         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
336         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
337         GNU_USER_DYNAMIC_LINKER.
338         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
339         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
340         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
341         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
342         GNU_USER_DYNAMIC_LINKER64.
343         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
344         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
345         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
346         GNU_USER_DYNAMIC_LINKER.
347         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
348         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
349         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
350         GNU_USER_DYNAMIC_LINKER.
351         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
352         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
353         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
354         GNU_USER_DYNAMIC_LINKER32.
355         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
356         GNU_USER_DYNAMIC_LINKER64.
357         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
358         GNU_USER_DYNAMIC_LINKER64.
359         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
360         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
361         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
362         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
363         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
365 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
367         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
368         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
369         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
370         GNU_USER_DYNAMIC_LINKER.
371         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
372         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
373         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
374         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
375         GNU_USER_DYNAMIC_LINKER64.
376         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
377         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
378         GNU_USER_LINK_EMULATION.
379         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
380         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
381         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
382         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
383         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
384         CPP_SPEC, CC1_SPEC): Remove.
385         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
386         (GNU_USER_DYNAMIC_LINKER): Define.
387         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
388         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
389         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
390         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
391         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
392         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
393         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
394         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
395         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
396         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
397         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
398         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
399         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
400         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
401         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
402         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
403         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
404         GNU_USER_DYNAMIC_LINKER.
405         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
406         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
407         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
408         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
409         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
410         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
411         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
412         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
413         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
414         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
416 2011-04-11  Kai Tietz  <ktietz@redhat.com>
418         PR target/9601
419         PR target/11772
420         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
421         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
422         comment.
423         (ix86_is_msabi_thiscall): Removed.
424         (ix86_is_type_thiscall): Likewise.
425         (ix86_get_callcvt): New function.
426         (ix86_comp_type_attributes): Simplify check.
427         (ix86_function_regparm): Use ix86_get_callcvt for calling
428         convention attribute checks.
429         (ix86_return_pops_args): Likewise.
430         (ix86_static_chain): Likewise.
431         (x86_this_parameter): Likewise.
432         (x86_output_mi_thunk): Likewise.
433         (ix86_function_type_abi): Optimize check for types without attributes.
434         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
435         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
436         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
437         by flag-values.
438         (IX86_BASE_CALLCVT): Helper macro.
439         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
440         Use ix86_get_callcvt for calling convention attribute checks and avoid
441         symbol-decoration for stdcall in TARGET_RTD case.
442         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
443         Likewise.
444         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
445         for declaration.
447 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
449         * config/i386/sse.md (VI_128): New mode iterator.
450         (VI12_128): Rename from SSEMODE12.
451         (VI14_128): Rename from SSEMODE14.
452         (VI124_128): New mode iterator.
453         (VI24_128): Rename from SSEMODE248.
454         (VI248_128): Rename from SSEMODE248.
455         (SSEMODE124C8): Remove.
456         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
457         (*sse2_<plusminus_insn><mode>3): Merge with
458         *avx_<plusminus_insn><mode>3.
459         (*mulv8hi3): Merge with *avx_mulv8hi3.
460         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
461         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
462         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
463         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
464         (ashr<mode>3): Merge with *avx_ashr<mode>3.
465         (lshr<mode>3): Merge with *avx_lshr<mode>3.
466         (ashl<mode>3): Merge with *avx_ashl<mode>3.
467         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
468         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
469         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
470         (*<smaxmin:code>v8hi3): Ditto.
471         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
472         (*<smaxmin:code>v16qi3): Ditto.
473         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
474         (*sse2_eq<mode>3): Ditto.
475         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
476         (*sse2_gt<mode>3): Ditto.
477         (vcondv2di): Split out of vcond<mode>.
478         (vconduv2di): Split out of vcondu<mode>.
480 2011-04-11  Richard Guenther  <rguenther@suse.de>
482         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
483         before calling tree_low_cst.
485 2011-04-11  Richard Guenther  <rguenther@suse.de>
487         * stor-layout.c (layout_type): Compute all array index size operations
488         in the original type.
489         (initialize_sizetypes): Add comment.
490         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
492 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
494         * common.opt (Tbss=, Tdata=, Ttext=): New options.
496 2011-04-11  Martin Jambor  <mjambor@suse.cz>
498         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
499         of cgraph_node, handle NULL return value.
500         (cgraph_global_info): Likewise.
501         (cgraph_rtl_info): Likewise.
502         * tree-inline.c (estimate_num_insns): Likewise.
503         * gimplify.c (unshare_body): Likewise.
504         (unvisit_body): Likewise.
505         (gimplify_body): Likewise.
506         * predict.c (optimize_function_for_size_p): Likewise.
507         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
508         (call_may_clobber_ref_p_1): Likewise.
509         * varasm.c (function_section_1): Likewise.
510         (assemble_start_function): Likewise.
512 2011-04-11  Martin Jambor  <mjambor@suse.cz>
514         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
515         of cgraph_node.
516         * final.c (rest_of_clean_state): Likewise.
517         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
518         * passes.c (pass_init_dump_file): Likewise.
519         (execute_all_ipa_transforms): Likewise.
520         (function_called_by_processed_nodes_p): Likewise.
521         * predict.c (maybe_hot_frequency_p): Likewise.
522         (probably_never_executed_bb_p): Likewise.
523         (compute_function_frequency): Likewise.
524         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
525         (unnest_nesting_tree_1): Likewise.
526         (lower_nested_functions): Likewise.
527         * tree-optimize.c (execute_fixup_cfg): Likewise.
528         (tree_rest_of_compilation): Likewise.
529         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
530         * tree-sra.c (ipa_early_sra): Likewise.
531         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
532         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
533         * ipa.c (record_cdtor_fn): Likewise.
534         * ipa-inline.c (cgraph_early_inlining): Likewise.
535         (compute_inline_parameters_for_current): Likewise.
536         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
537         * ipa-pure-const.c (local_pure_const): Likewise.
538         * ipa-split.c (split_function): Likewise.
539         (execute_split_functions): Likewise.
540         * cgraphbuild.c (build_cgraph_edges): Likewise.
541         (rebuild_cgraph_edges): Likewise.
542         (cgraph_rebuild_references): Likewise.
543         (remove_cgraph_callee_edges): Likewise.
544         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
545         (verify_cgraph_node): Likewise.
546         (cgraph_analyze_functions): Likewise.
547         (cgraph_preserve_function_body_p): Likewise.
548         (save_inline_function_body): Likewise.
549         (save_inline_function_body): Likewise.
550         * tree-inline.c (copy_bb): Likewise.
551         (optimize_inline_calls): Likewise.
553 2011-04-11  Martin Jambor  <mjambor@suse.cz>
555         PR tree-optimization/48195
556         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
557         ipa_check_create_edge_args.
558         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
559         ipa_check_create_edge_args.
560         * ipa-inline.c (inline_generate_summary): Do not call
561         ipa_check_create_node_params and ipa_check_create_edge_args.
562         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
563         ipa_check_create_edge_args.
565 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
567         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
568         instead of loop.
569         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
570         * function.c (record_hard_reg_sets): Likewise.
571         * ira.c (compute_regs_asm_clobbered): Likewise.
572         * sched-deps.c (sched_analyze_1): Likewise.
573         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
575 2011-04-09  Xinliang David Li  <davidxl@google.com>
577         PR tree-optimization/PR48484
578         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
579         has_valid_pred lazily
581 2011-04-09  Duncan Sands  <baldrick@free.fr>
583         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
585 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
587         * combine.c (combine_validate_cost): Adjust comments.  Set registered
588         cost of I0 to zero at the end, if any.
590 2011-04-08  Xinliang David Li  <davidxl@google.com>
592         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
593         to insane profile data.
595 2011-04-08  Xinliang David Li  <davidxl@google.com>
597         * final.c (dump_basic_block_info): New function.
598         (final): Dump basic block.
599         (final_scan_insn): Remove old dump.
601 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
603         PR target/47829
604         * config.gcc (i386-*-freebsd): Disable unwind table generation for
605         crtbegin/crtend.
607 2011-04-08  Michael Matz  <matz@suse.de>
609         PR middle-end/48389
610         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
611         functions.
612         (rebuild_jump_labels): Call rebuild_jump_labels_1.
613         * rtl.h (rebuild_jump_labels_chain): Declare.
614         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
615         insns inserted on edges.
617 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
619         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
620         * config/arm/arm-arches.def: New.
621         * config/arm/arm-opts.h: New.
622         * config/arm/genopt.sh: New.
623         * config/arm/arm-tables.opt: New (generated).
624         * config/arm/arm.c (arm_handle_option, arm_target_help,
625         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
626         (all_architectures): Get most table contents from arm-arches.def.
627         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
628         arm_selected_tune here.
629         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
630         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
631         (march=, mcpu=, mtune=): Use Enum and Var.
632         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
633         (arm.o): Update dependencies.
635 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
637         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
638         of header_file.
639         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
640         (write_typed_alloc_defns): Likewise.
641         (main): Calls write_typed_alloc_defns with output_header.
643 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
645         PR inline-asm/48435
646         * ira-color.c (setup_profitable_hard_regs): Add comments.
647         Don't take prohibited hard regs into account.
648         (setup_conflict_profitable_regs): Rename to
649         get_conflict_profitable_regs.
650         (check_hard_reg_p): Check prohibited hard regs.
652 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
654         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
655         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
656         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
658 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
660         PR target/48366
661         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
662         move from floating point to shift amount register .
663         (emit_move_sequence): Remove secondary reload support for floating
664         point to shift amount amount register copies.
665         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
666         amount register copies.
667         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
668         register, return false if mode isn't a scalar integer mode.
669         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
671 2011-04-08  Richard Guenther  <rguenther@suse.de>
673         * gimple.c (gimple_call_flags): Remove kludge.
675 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
677         * sel-sched.c (sel_region_init): Move call to
678         sel_setup_region_sched_flags after setup_current_loop_nest.
680 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
682         PR rtl-optimization/48272
683         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
684         init_insn_reg_pressure_info.  Adjust a caller.
685         * sched-int.h (init_insn_reg_pressure_info): Declare.
686         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
687         when sched-pressure is enabled.
689 2011-04-08  Richard Guenther  <rguenther@suse.de>
691         * gimple.c (gimple_set_modified): Do not queue calls to
692         MODIFIED_NORETURN_CALLS here ...
693         * tree-ssa-operands.c (update_stmt_operands): ... but here.
695 2011-04-08  Richard Guenther  <rguenther@suse.de>
697         PR lto/48467
698         * toplev.c (lang_dependent_init): Do not open asm_out_file
699         in WPA mode, nor perform debug machinery initialization.
700         (finalize): Do not unlink asm_out_file in WPA mode.
702 2011-04-08  Richard Guenther  <rguenther@suse.de>
704         * gimple.h (gimple_call_fntype): New function.
705         (gimple_call_return_type): Use it.
706         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
707         * gimple-low.c (gimple_check_call_args): Likewise.
708         * gimple.c (gimple_call_flags): Likewise.
709         (gimple_call_arg_flags): Likewise.
710         (gimple_call_return_flags): Likewise.
711         * tree-cfg.c (verify_gimple_call): Likewise.
712         (do_warn_unused_result): Likewise.
713         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
714         * value-prof.c (gimple_ic_transform): Fix fndecl check.
716 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
718         PR rtl-optimization/48235
719         * sel-sched.c (code_motion_process_successors): Recompute the last
720         insn in basic block if control flow changed.
721         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
722         Update condition for ilist_remove.
724 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
726         PR rtl-optimization/48302
727         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
728         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
729         it to record added preheader blocks.
730         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
731         on to sel_add_loop_preheaders.
732         (sel_region_init): Move call to setup_current_loop_nest after
733         sel_init_bbs.
735 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
737         PR target/48273
738         * cfgloop.h (loop_has_exit_edges): New helper.
739         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
740         non-clonable.
741         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
742         that have no exit edges.
744 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
746         PR rtl-optimization/48442
747         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
748         all callers.  Adjust assert.
750 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
752         PR tree-optimization/48377
753         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
754         is_packed to true even for types with smaller TYPE_ALIGN than
755         TYPE_SIZE.
757 2011-04-08  Richard Guenther  <rguenther@suse.de>
759         PR bootstrap/48513
760         * doc/tm.texi: Re-generate.
762 2011-04-08  Wei Guozhi  <carrot@google.com>
764         PR target/47855
765         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
766         * config/arm/arm.c (arm_attr_length_push_multi): New function.
767         * config/arm/arm.md (*push_multi): Change the length computation to
768         call a C function.
770 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
772         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
773         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
774         * doc/tm.texi: Regenerate.
775         * system.h (ASM_OUTPUT_BSS): Poison.
776         * varasm.c (asm_output_bss): Remove function.
777         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
779         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
780         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
781         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
782         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
783         Likewise.
784         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
785         Likewise.
786         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
787         Likewise.
788         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
790 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
792         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
793         EnumValue lines.
795 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
797         * config/m68k/m68k.c (m68k_handle_option): Don't handle
798         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
799         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
800         OPT_mcpu32.
801         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
802         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
803         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
804         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
805         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
806         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
807         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
808         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
809         options.  Don't map other m68k options manually.  Don't handle
810         old-style options as canonical.
811         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
812         * doc/install.texi (m68k-*-*): Document binutils version requirement.
814 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
816         * basic-block.h (force_nonfallthru): Move to...
817         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
818         (force_nonfallthru): ...here.
819         * cfghooks.c (force_nonfallthru): New function.
820         * cfgrtl.c (force_nonfallthru): Rename into...
821         (rtl_force_nonfallthru): ...this.
822         (commit_one_edge_insertion): Do not set AUX field.
823         (commit_edge_insertions): Do not discover new basic blocks.
824         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
825         (cfg_layout_rtl_cfg_hooks): Likewise.
826         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
827         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
828         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
830 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
832         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
833         Remove macros.
835 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
837         * config/i386/sse.md: Update copyright year.
838         (avxcvtvecmode): Remove.
839         (sse_movhlps): Merge with *avx_movhlps.
840         (sse_movlhps): Merge with *avx_movlhps.
841         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
842         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
843         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
844         (sse_loadhps): Merge with *avx_loadhps.
845         (sse_storelps): Merge with *avx_storelps.
846         (sse_loadlps): Merge with *avx_loadlps.
847         (sse_movss): Merge with *avx_movss.
848         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
849         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
850         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
851         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
852         (vec_set<mode>_0): Ditto.
853         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
854         (sse4_1_insertps): Merge with *avx_insertps.
855         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
856         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
857         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
858         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
859         (sse2_storehpd): Merge with *avx_storehpd.
860         (sse2_loadhpd): Merge with *avx_loadhpd.
861         (sse2_loadlpd): Merge with *avx_loadlpd.
862         (sse2_movsd): Merge with *avx_movsd.
863         (*vec_concatv2df): Merge with *vec_concatv2df.
865 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
867         PR debug/48343
868         * combine.c (combine_instructions): Add last_combined_insn,
869         update it if insn is after it, pass it to all try_combine calls.
870         (try_combine): Add last_combined_insn parameter, pass it instead of
871         i3 to propagate_for_debug.
873 2011-04-07  Nick Clifton  <nickc@redhat.com>
875         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
876         to handle MDR <-> data register transfers.
877         (movhi_internal): Likewise.
879 2011-04-07  Alan Modra  <amodra@gmail.com>
881         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
882         previous stack info.
884 2011-04-07  Tom de Vries  <tom@codesourcery.com>
886         PR target/43920
887         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
888         flow_find_cross_jump.  Swap variables to implement backward replacement.
889         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
891 2011-04-07  Tom de Vries  <tom@codesourcery.com>
893         PR target/43920
894         * cfgcleanup.c (walk_to_nondebug_insn): New function.
895         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
896         and bb2.
897         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
898         src1 or src2.  Redirect edges to the last basic block.  Update
899         frequency and count on multiple basic blocks in case of fallthru.
901 2011-04-07  Tom de Vries  <tom@codesourcery.com>
903         PR target/43920
904         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
905         function.
906         (old_insns_match_p): Change return type.  Replace return false/true
907         with return dir_none/dir_both.  Use can_replace_by.
908         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
909         direction from dir_p.  Register replacement direction in dir, last_dir
910         and afterlast_dir.  Handle new return type of old_insns_match_p using
911         merge_dir.  Return replacement direction in dir_p.
912         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
913         return type of old_insns_match_p.
914         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
915         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
916         flow_find_cross_jump.
917         * basic-block.h (enum replace_direction): New type.
918         (flow_find_cross_jump): Add parameter to declaration.
920 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
922         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
923         (AVXMODEDCVTPS2DQ): Ditto.
924         (VEC_FLOAT_MODE): Ditto.
925         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
926         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
927         (<any_logic:code><mode>3): Use VF mode iterator.
928         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
929         Use VF mode iterator.
930         (copysign<mode>3): Use VF mode iterator.
931         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
932         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
933         (*<any_logic:code><MODEF:mode>3): Merge with
934         *avx_<any_logic:code><MODEF:mode>3.
935         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
936         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
937         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
938         (avx_cvtdq2ps<avxmodesuffix>): Remove.
939         (sse2_cvtdq2ps): Use %v modifier.
940         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
941         (avx_cvtps2dq<avxmodesuffix>): Remove.
942         (sse2_cvtps2dq): Use %v modifier.
943         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
944         (avx_cvttps2dq<avxmodesuffix>): Remove.
945         (sse2_cvttps2dq): Use %v modifier.
946         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
947         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
948         (sse2_cvtsd2siq): Fix insn template.
949         (sse2_cvtsd2siq_2): Ditto.
950         (sse2_cvttsd2siq): Ditto.
951         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
952         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
954 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
956         * gcov-io.c: Use GCC Runtime Library Exception.
958 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
960         PR debug/48466
961         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
962         as base_reg whatever register reg has been eliminated to, instead
963         of hardcoding STACK_POINTER_REGNUM.
965 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
967         * doc/tm.texi.in: Document C target hooks as separate from general
968         target hooks.
969         * doc/tm.texi: Regenerate.
970         * genhooks.c (struct hook_desc): Add docname field.
971         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
972         docname field.
973         (hook_array): Include c-target.def.
974         (emit_documentation): Use docname field in output.
975         (emit_init_macros): Take docname argument.  Only emit definitions
976         for hooks matching docname.
977         (main): Expect additional arguments in all cases.  Pass argument
978         to emit_init_macros.
979         * target.def: Move initial macro definitions and comments to
980         target-hooks-macros.h.
981         (gcc_targetcm): Move to c-family/c-target.def.
982         * target.h (targetcm): Move declaration to c-family/c-target.h.
983         * targhooks.c (default_handle_c_option): Move to
984         c-family/c-opts.c.
985         * targhooks.h (default_handle_c_option): Move declaration to
986         c-family/c-common.h.
987         * target-hooks-macros.h: New file.
988         * config.gcc (target_has_targetcm): Define and use to add to
989         c_target_objs and cxx_target_objs.
990         * config/default-c.c: New file.
991         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
992         of target.h and target-def.h.
993         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
994         (darwin_objc_construct_string, darwin_cfstring_ref_p,
995         darwin_check_cfstring_format_arg): Make static.
996         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
997         TARGET_STRING_OBJECT_REF_TYPE_P,
998         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
999         * config/darwin-protos.h (darwin_objc_construct_string,
1000         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
1001         declare.
1002         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
1003         TARGET_STRING_OBJECT_REF_TYPE_P,
1004         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
1005         * config/t-darwin (darwin-c.o): Update dependencies.
1006         * system.h (TARGET_HAS_TARGETCM): Poison.
1007         * Makefile.in (TARGET_H): Update.
1008         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
1009         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
1010         (default-c.o): New target.
1011         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
1012         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
1013         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
1014         c-target.def.
1015         (build/genhooks.o): Update dependencies.
1017 2011-04-06  Richard Guenther  <rguenther@suse.de>
1019         * ipa-inline.c (enum inlining_mode): Remove.
1020         (cgraph_flatten): Use some other token.
1021         (cgraph_edge_early_inlinable_p): New function, split out from ...
1022         (cgraph_perform_always_inlining): New function, split out from ...
1023         (cgraph_decide_inlining_incrementally): ... here.
1024         (cgraph_mark_inline_edge): Adjust.
1025         (cgraph_early_inlining): Re-structure.
1026         (pass_early_inline): Require SSA form.
1028 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
1029             Julian Brown  <julian@codesourcery.com>
1030             Mark Shinwell  <shinwell@codesourcery.com>
1032         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
1033         LO_REGS only for Thumb-1.
1034         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
1035         be used in short instructions when optimising for size on Thumb-2.
1037 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1039         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
1040         associated with user returns to be preserved.
1042 2011-04-06  Tristan Gingold  <gingold@adacore.com>
1044         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
1045         symbol_queue_size, DBXOUT_DECR_NESTING,
1046         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
1047         if XCOFF_DEBUGGING_INFO.
1049 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1051         * config/i386/i386.md (attribute isa): New.
1052         (attribute enabled): New.
1053         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
1054         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
1055         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
1056         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
1057         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
1058         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1059         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
1060         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
1062         * config/i386/sse.md (VF): New mode iterator.
1063         (VF1): Ditto.
1064         (VF2): Ditto.
1065         (VF_128): Ditto.
1066         (SSEMODEF4): Remove.
1067         (attribute sse): Handle V8SF and V4DF modes.
1068         (<absneg:code><mode>2): Use VF mode iterator.
1069         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
1070         mode iterator.
1071         (<plusminus_insn><mode>3): Use VF mode iterator.
1072         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1073         Use VF mode iterator.
1074         (<sse>_vm<plusminus_insn><mode>3): Merge with
1075         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
1076         (mul<mode>3): Use VF mode iterator.
1077         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
1078         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
1079         mode iterator.
1080         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
1081         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
1082         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
1083         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
1084         mode iterator.
1085         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
1086         Use VF1 mode iterator.
1087         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
1088         (sqrt<VF2:mode>2): New expander.
1089         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
1090         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
1091         and sqrtv2df2.  Use VF mode iterator.
1092         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
1093         mode iterator.
1094         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
1095         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
1096         Use VF1 mode iterator.
1097         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
1098         (<smaxmin:code><mode>3): Use VF mode iterator.
1099         (*<smaxmin:code><mode>3_finite): Merge with
1100         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
1101         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1102         (<sse>_vm<smaxmin:code><mode>2): Merge with
1103         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
1104         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
1105         mode iterator.
1106         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
1107         mode iterator.
1108         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
1109         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
1110         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
1111         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
1112         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
1113         VF mode iterator.
1114         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
1115         Use VF_128 mode iterator.
1116         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
1117         mode iterator.
1118         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
1119         VF_128 mode iterator.
1120         (vcond<mode>): Use VF mode iterator.
1121         * config/i386/predicates.md (sse_comparison_operator): Merge with
1122         avx_comparison_float_operator.  Do not declare as special_predicate.
1123         * config/i386/i386.c (struct builtin_description): Update for renamed
1124         compare patterns.
1125         (ix86_expand_args_builtin): Ditto.
1126         (ix86_expand_sse_compare_mask): Ditto.
1128 2011-04-06  Richard Guenther  <rguenther@suse.de>
1130         * tree-inline.c (estimate_num_insns): For calls simply account
1131         for all passed arguments and a used return value.
1133 2011-04-06  Richard Guenther  <rguenther@suse.de>
1135         PR tree-optimization/47663
1136         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
1137         call_stmt_time fields.
1138         (cgraph_edge_inlinable_p): Declare.
1139         (cgraph_edge_recursive_p): New inline function.
1140         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
1141         (cgraph_clone_edge): Copy it.
1142         * ipa-inline.c (cgraph_estimate_edge_time): New function.
1143         Account for call stmt time.
1144         (cgraph_estimate_time_after_inlining): Take edge argument.
1145         (cgraph_estimate_edge_growth): Account call stmt size.
1146         (cgraph_estimate_size_after_inlining): Take edge argument.
1147         (cgraph_mark_inline_edge): Adjust.
1148         (cgraph_check_inline_limits): Likewise.
1149         (cgraph_recursive_inlining_p): Remove.
1150         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
1151         (cgraph_decide_recursive_inlining): Take edge argument and
1152         adjust.
1153         (cgraph_decide_inlining_of_small_functions): Do not avoid
1154         diags for recursive inlining here.
1155         (cgraph_flatten): Adjust.
1156         (cgraph_decide_inlining_incrementally): Likewise.
1157         (estimate_function_body_sizes): Remove call cost handling.
1158         (compute_inline_parameters): Initialize caller edge call costs.
1159         (cgraph_estimate_edge_growth): New function.
1160         (cgraph_estimate_growth): Use it.
1161         (cgraph_edge_badness): Likewise.
1162         (cgraph_check_inline_limits): Take an edge argument.
1163         (cgraph_decide_inlining_of_small_functions): Adjust.
1164         (cgraph_decide_inlining): Likewise.
1165         * tree-inline.c (estimate_num_insns): Only account for call
1166         return value if it is used.
1167         (expand_call_inline): Avoid diagnostics on recursive inline
1168         functions here.
1169         * lto-cgraph.c (lto_output_edge): Output edge call costs.
1170         (input_edge): Input edge call costs.
1172 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1174         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
1176 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
1178         * doc/invoke.texi (Spec Files): Fix typo.
1180 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1182         * profile.c (branch_prob): Move declaration of local variable.  Remove
1183         obsolete ??? comment.  Expand the location explicitly instead of using
1184         the LOCATION_FILE and LOCATION_LINE macros.
1186 2011-04-06  Wei Guozhi  <carrot@google.com>
1188         PR target/47855
1189         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
1190         (arm_cond_branch): Likewise.
1191         (arm_cond_branch_reversed): Likewise.
1192         (arm_jump): Likewise.
1193         (push_multi): Likewise.
1194         * config/arm/constraints.md (Py): New constraint.
1196 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1198         PR bootstrap/48471
1199         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
1200         Move these...
1201         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
1202         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
1203         #ifdef DBX_DEBUGGING_INFO.
1205 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
1207         PR bootstrap/48403
1208         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
1209         if old and new states differ.
1211 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
1213         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
1214         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
1215         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1216         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
1217         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
1218         mcfv4e): Use Alias.
1219         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
1220         ColdFire options to -mcpu= options.
1222 2011-04-05  Jeff Law  <law@redhat.com>
1224         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
1225         check if BB is a successor of LOOP->header and return
1226         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
1228 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1230         * cprop.c (struct reg_use): Remove.
1231         (reg_use_table): Make an array of RTX.
1232         (find_used_regs, constprop_register, local_cprop_pass,
1233         bypass_block): Simplify users of reg_use_table.
1234         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
1235         on one of the uses found by find_used_regs.
1237 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1239         PR bootstrap/48469
1240         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
1241         declaration.
1243 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1245         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
1246         as an rtx.
1247         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
1249 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
1251         PR middle-end/48441
1252         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
1254 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1256         * combine.c: Include obstack.h.
1257         (struct insn_link): Define.
1258         (uid_log_links): Adjust type.
1259         (FOR_EACH_LOG_LINK): New macro.
1260         (insn_link_obstack): Declare.
1261         (alloc_insn_link): Define.
1262         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
1263         type of link variables.
1264         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
1265         (try_combine, record_promoted_values, distribute_notes): Likewise.
1266         (distribute_links): Likewise.  Tweak prototype.
1267         (clear_log_links): Delete.
1268         (adjust_for_new_dest): Call alloc_insn_link.
1269         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
1271 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1273         * gcse.c (modify_mem_list): Convert to an array of VECs.
1274         (canon_modify_mem_list, compute_transp): Tweak formatting.
1275         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
1276         (load_killed_in_block_p): Likewise.
1277         (record_last_mem_set_info): Likewise.
1278         (clear_modify_mem_tables): Likewise.
1280 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1282         PR middle-end/48461
1283         * function.c (emit_use_return_register_into_block): Only define if
1284         HAVE_return.
1286 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
1288         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
1290 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
1292         * config/rx/rx-opts.h: New.
1293         * config/rx/rx.c (rx_cpu_type): Remove.
1294         (rx_handle_option): Don't assert that global structures are in
1295         use.  Access variables via opts pointer.  Defer most handling of
1296         OPT_mint_register_.  Use error_at.
1297         (rx_option_override): Handle deferred OPT_mint_register_ here.
1298         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
1299         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
1300         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
1301         (rx_cpu_types): New Enum and EnumValue entries.
1302         (mint-register=): Use Defer and use Var accordingly.
1304 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1306         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
1307         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
1308         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
1309         Move these...
1310         (debug_free_queue, debug_nesting, symbol_queue_index):
1311         ...and these...
1312         * dbxout.c: ...to here.  Make static.
1314 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1316         * gcse.c (modify_pair): Define.  Define a VEC of it.
1317         (canon_modify_mem_list): Convert to an array of VECs.
1318         (free_insn_expr_list_list): Delete.
1319         (clear_modify_mem_tables): Call VEC_free instead.
1320         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
1321         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
1322         (canon_list_insert, compute_transp): Likewise.
1324 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1326         PR target/43920
1327         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
1328         for size.
1330 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1332         PR target/43920
1333         * function.c (emit_use_return_register_into_block): New function.
1334         (thread_prologue_and_epilogue_insns): Use
1335         emit_use_return_register_into_block.
1337 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1339         PR target/43920
1340         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
1341         insn.
1343 2011-04-05  Tom de Vries  <tom@codesourcery.com>
1345         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
1347 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
1349         * config/arm/arm.md (define_constants for unspec): Replace with
1350         define_c_enum.
1351         (define_constants for unspecv): Replace with define_c_enum.
1352         * config/arm/neon.md (define_constants for unspec): Replace with
1353         define_c_enum.
1355 2011-04-04  Richard Henderson  <rth@redhat.com>
1357         PR bootstrap/48400
1358         * dwarf2out.c (output_line_info): Always emit line info from
1359         at least one section.
1360         (dwarf2out_init): Create text_section_line_info here ...
1361         (set_cur_line_info_table): ... not here.
1363 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
1365         PR target/48380
1366         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
1367         not called.
1369         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
1371 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
1373         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
1374         (expr_equiv_p): Remove.
1375         (insert_set_in_table): Look at <dest, src> pair instead of expr.
1376         (hash_scan_set): Update call to insert_set_in_table.
1377         (dump_hash_table): Dump <dest, src> pair.
1378         (lookup_set): Simplify.  Lookup <dest, src> pair.
1379         (compute_transp): Remove, fold heavily simplified code into...
1380         (compute_local_properties): ...here.  Expect COMP and TRANSP
1381         unconditionally.
1382         (find_avail_set): Take set directly from struct expr.
1383         (find_bypass-set): Likewise.
1384         (bypass_block): Likewise.
1385         (cprop_insn): Likewise.  Remove redundant INSN_P test.
1387         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
1388         checks on form of COND from find_implicit_sets to here.
1389         (find_implicit_sets): Cleanup control flow. Split critical edges
1390         if it exposes implicit sets.  Allocate/resize implicit_sets as
1391         necessary.
1392         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
1393         changed something.  Run df_analyze after find_implicit_sets if any
1394         edges were split.  Do not allocate implicit_sets here.
1396         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
1397         (gcse_obstack): Renamed to cprop_obstack.
1398         (GNEW, GNEWVEC, GNEWVAR): Remove.
1399         (gmalloc): Remove.
1400         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
1401         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
1402         (gcse_alloc): Likewise, and rename to cprop_alloc.
1403         (alloc_gcse_men, free_gcse_mem): Remove.
1404         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
1405         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
1406         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
1408         * cprop.c (oprs_not_set_p): Remove.
1409         (mark_set, mark_clobber): Remove.
1410         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
1411         (reg_not_set_p): New function.
1412         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
1413         (cprop_insn): Likewise.
1414         (cprop_jump): Use FOR_EACH_EDGE.
1416 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
1418         PR bootstrap/48403
1419         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
1420         (rank_for_schedule): Use scheduled_insns vector instead of
1421         last_scheduled_insn.
1422         (ok_for_early_queue_removal): Likewise.
1423         (queue_to_ready): Search forward in nonscheduled_insns_begin if
1424         we have a dbg_cnt.
1425         (choose_ready): Likewise.
1426         (commit_schedule): Use VEC_iterate.
1427         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
1428         a dbg_cnt, use it and ensure the first insn is in the ready list.
1429         (haifa_sched_init): Allocate scheduled_insns.
1430         (sched_extend_ready_list): Don't allocate it; reserve space.
1431         (haifa_sched_finish): Free it.
1433 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
1435         * optc-gen.awk: Always remove type from Variable entry before
1436         recording in var_seen.
1438 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
1440         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
1441         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
1442         call to tidy_fallthru_edges.
1444 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
1446         * doc/options.texi (ToLower): Document.
1447         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
1448         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
1449         * opts.h (cl_option): Add cl_tolower field.
1450         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
1451         arguments with lowercase strings.
1452         * config/rx/rx.opt (mcpu=): Add ToLower.
1453         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
1454         argument.
1456 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
1458         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
1460 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
1462         * config/vax/vax.c: Include reload.h.
1464 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
1466         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
1467         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1468         (sparc_preferred_reload_class): New function.
1470 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
1472         PR debug/48401
1473         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
1474         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
1476 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
1478         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
1479         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
1481 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
1483         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
1484         (ASM_OUTPUT_ALIGNED_BSS): Define.
1486 2011-04-03  Michael Matz  <matz@suse.de>
1488         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
1489         and next_slot members.
1490         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
1491         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
1492         (lto_streamer_cache_append): Declare.
1493         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
1494         unsigned index, remove offset parameter, ensure that we append
1495         or update existing entries.
1496         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
1497         parameter, update next_slot for append.
1498         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
1499         parameter.
1500         (lto_streamer_cache_insert_at): Likewise.
1501         (lto_streamer_cache_append): New function.
1502         (lto_streamer_cache_lookup): Use unsigned index.
1503         (lto_streamer_cache_get): Likewise.
1504         (lto_record_common_node): Don't test tree_node_can_be_shared.
1505         (preload_common_node): Adjust call to lto_streamer_cache_insert.
1506         (lto_streamer_cache_delete): Don't free offsets member.
1507         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
1508         (lto_output_string_with_length): Use lto_output_data_stream.
1509         (lto_output_tree_header): Remove ix parameter, don't write it.
1510         (lto_output_builtin_tree): Likewise.
1511         (lto_write_tree): Adjust callers to above, don't track and write
1512         offset, write unsigned index.
1513         (output_unreferenced_globals): Don't emit all global vars.
1514         (write_global_references): Use unsigned indices.
1515         (lto_output_decl_state_refs): Likewise.
1516         (write_symbol): Likewise.
1517         * lto-streamer-in.c (lto_input_chain): Move earlier.
1518         (input_function): Use unsigned index.
1519         (input_alias_pairs): Don't read and then ignore all global vars.
1520         (lto_materialize_tree): Remove ix_p parameter, don't read index,
1521         don't pass it back, use lto_streamer_cache_append.
1522         (lto_register_var_decl_in_symtab): Use unsigned index.
1523         (lto_register_function_decl_in_symtab): Likewise.
1524         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
1525         index.
1526         (lto_get_builtin_tree): Don't read index, use
1527         lto_streamer_cache_append.
1528         (lto_read_tree): Adjust call to lto_materialize_tree.
1530         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
1531         don't use function calls in arguments to MIN.
1533         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
1534         twice.
1536         * gimple.c (gimple_type_leader_entry): Mark deletable.
1538 2011-04-03  Alan Modra  <amodra@gmail.com>
1540         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
1542 2011-04-03  Michael Matz  <matz@suse.de>
1544         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
1545         an integer.
1546         * tree.h (tree_decl_non_common.vindex): Adjust comment.
1548 2011-04-03  Michael Matz  <matz@suse.de>
1550         * cgraphbuild.c (record_reference): Canonicalize constructor values.
1551         * gimple-fold.c (canonicalize_constructor_val): Accept being called
1552         without function context.
1553         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
1554         current_function_decl and cfun.
1556 2011-04-03  Michael Matz  <matz@suse.de>
1558         * tree.c (decl_init_priority_insert): Don't create entry for
1559         default priority.
1560         (decl_fini_priority_insert): Ditto.
1561         (fields_compatible_p, find_compatible_field): Remove.
1562         * tree.h (fields_compatible_p, find_compatible_field): Remove.
1563         * gimple.c (gimple_compare_field_offset): Adjust block comment.
1565 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
1567         * combine.c (try_combine): Remove useless local variable.
1569 2011-04-03  Richard Guenther  <rguenther@suse.de>
1570             Ira Rosen  <ira.rosen@linaro.org>
1572         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
1573         non-variable offsets and compare the remaining bases of the two
1574         accesses instead of looking for exact same data-ref.
1576 2011-04-02  Kai Tietz  <ktietz@redhat.com>
1578         PR target/48416
1579         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
1581         * i386.c (ix86_is_msabi_thiscall): New helper function.
1582         (ix86_is_type_thiscall): New helper function.
1583         (ix86_comp_type_attributes): Handle thiscall for method-functions
1584         special.
1585         (init_cumulative_args): Likewise.
1586         (find_drap_reg): Likewise.
1587         (ix86_static_chain): Likewise.
1588         (x86_this_parameter): Likewise.
1589         (x86_output_mi_thunk): Likewise.
1591 2011-04-01  Olivier Hainque  <hainque@adacore.com>
1592             Nicolas Setton  <setton@adacore.com>
1593             Eric Botcazou  <ebotcazou@adacore.com>
1595         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
1596         (add_gnat_descriptive_type_attribute): New function.
1597         (gen_array_type_die): Call it.
1598         (gen_enumeration_type_die): Likewise.
1599         (gen_struct_or_union_type_die): Likewise.
1600         (modified_type_die): Likewise.
1601         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
1602         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
1603         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
1605 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
1607         PR bootstrap/48148
1608         * dwarf2out.c (resolve_addr): Don't call force_decl_die
1609         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
1611         Revert:
1612         2011-03-17  Richard Guenther  <rguenther@suse.de>
1614         PR bootstrap/48148
1615         * lto-cgraph.c (input_overwrite_node): Clear the abstract
1616         origin for decls in other ltrans units.
1617         (input_varpool_node): Likewise.
1619 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
1621         PR middle-end/48335
1622         * expr.c (expand_assignment): Handle all possibilities
1623         if TO_RTX is CONCAT.
1624         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
1625         (store_split_bit_field): If SUBREG_REG (op0) or
1626         op0 itself has smaller mode than word, return it
1627         for offset 0 and const0_rtx for out-of-bounds stores.
1628         If word is const0_rtx, skip it.
1630 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
1632         * config/h8300/h8300.c (print_operand_address): Rename to...
1633         (h8300_print_operand_address): ...this. Make static. Adjust comments.
1634         Call h8300_print_operand and h8300_print_operand_address instead of
1635         print_operand and print_operand_address. Declare.
1636         (print_operand): Renake to...
1637         (h8300_print_operand): ...this. Make static. Adjust comments.
1638         Call h8300_print_operand instead of print_operand. Declare.
1639         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
1640         (h8300_register_move_cost): Likewise.
1641         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
1642         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
1643         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
1644         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
1645         * config/h8300/h8300-protos.h (print_operand): Delete.
1646         (print_operand_address): Delete.
1648 2011-04-01  Richard Henderson  <rth@redhat.com>
1650         PR 48400
1651         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
1652         in strict mode before dwarf4.  Re-order tests to early out
1653         before switching sections.
1655 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
1657         * config/h8300/constraints.md: New file.
1658         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
1659         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
1660         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
1661         * config/h8300/predicates.md (bit_operand): Likewise.
1662         (incdec_operand): Use satisfies_constraint_M and
1663         satisfies_constraint_O.  Don't use C code block.
1664         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
1665         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
1666         (compute_mov_length): Use satisfies_constraint_G.
1667         (fix_bit_operand): Use satisfies_constraint_U.
1668         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
1669         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
1670         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
1671         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
1672         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
1673         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
1674         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1675         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
1676         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
1677         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
1678         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
1679         (EXTRA_MEMORY_CONSTRAINT): Delete.
1681 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
1682             Michael Meissner  <meissner@linux.vnet.ibm.com>
1684         PR target/48262
1685         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
1686         operands, as per the specifications.
1688         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
1689         (vec_extract_evenv4sf): Ditto.
1690         (vec_extract_evenv8hi): Ditto.
1691         (vec_extract_evenv16qi): Ditto.
1692         (vec_extract_oddv4si): Ditto.
1694 2011-03-31  Mark Wielaard  <mjw@redhat.com>
1696         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
1697         high_pc attribute if the CU has no associated code. Only output
1698         DW_AT_entry_pc for CU if not generating strict dwarf and
1699         dwarf_version < 4.
1701 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
1703         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
1704         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
1705         out of ...
1706         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
1707         * final.c (final_start_function): Call the new function rather
1708         than using a NULL argument for dwarf2out_frame_debug.
1710         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
1711         that contains the prologue.
1713         * haifa-sched.c (queue_insn): New arg REASON.  All callers
1714         changed.  Print it in debugging output.
1716         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
1718         * sched-ebb.c (begin_schedule_ready): Remove second argument.
1719         Split most of the code into...
1720         (begin_move_insn): ... here.  New function.
1721         (ebb_sched_info): Add a pointer to it.
1722         * haifa-sched.c (scheduled_insns): New static variable.
1723         (sched_extend_ready_list): Allocate it.
1724         (schedule_block): Use it to record the order of scheduled insns.
1725         Perform RTL changes to move insns only after all scheduling
1726         decisions have been made.
1727         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
1728         begin_move_insn field.
1729         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1730         * sched-int.h (struct haifa_sched_info): Remove second argument
1731         from begin_schedule_ready hook.  Add new member begin_move_insn.
1732         * sched-rgn.c (begin_schedule_ready): Remove second argument.
1733         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
1735         * haifa-sched.c (prune_ready_list): New function, broken out of
1736         schedule_block.
1737         (schedule_block): Use it.
1739 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1741         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
1743 2011-04-01  Kai Tietz  <ktietz@redhat.com>
1745         * config.gcc (*-*-mingw*): Allow as option the
1746         posix threading model.
1747         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
1748         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
1749         definition.
1750         (CPP_SPEC): Add pthread/no-pthread handling.
1751         (LIB_SPEC): Likewise.
1752         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
1753         (LIB_SPEC): Likewise.
1754         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
1755         flag to pass -pthread option for shared libgcc build.
1756         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
1757         for shared libgcc build.
1758         * config/i386/t-mingw-pthread: New file.
1759         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
1760         New define to enable use of library pthread by default.
1761         * config/i386/mingw.opt (pthread): New driver option.
1762         (no-pthread): New driver option.
1763         * config/i386/cygming.opt: Make sure trailing empty line is retained.
1764         * config/i386/mingw-w64.opt: Likewise.
1766 2011-04-01  Gary Funck <gary@intrepid.com>
1768         * c-decl.c (grokdeclarator): Fix formatting.
1770 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1772         * expr.c (emit_block_move_via_movmem): Use n_generator_args
1773         instead of n_operands.
1774         (set_storage_via_setmem): Likewise.
1775         * optabs.c (maybe_gen_insn): Likewise.
1776         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
1777         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
1778         (mips_expand_builtin_direct): Likewise.
1779         * config/spu/spu.c (expand_builtin_args): Likewise.
1781 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1783         * recog.h (insn_data_d): Add n_generator_args.
1784         * genoutput.c (data): Likewise.
1785         (output_insn_data): Print it.
1786         (max_opno, num_dups): Delete.
1787         (scan_operands): Just fill in "d->operand[...]".
1788         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
1790 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
1792         * gensupport.h (pattern_stats): New structure.
1793         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
1794         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
1795         (max_operand_1, max_operand_vec): Delete.
1796         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
1798 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
1800         * emit-rtl.c (emit_pattern_after_setloc): New function.
1801         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
1802         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
1803         (emit_pattern_after): New function.
1804         (emit_insn_after, emit_jump_insn_after): Call it.
1805         (emit_call_insn_after, emit_debug_insn_after): Likewise.
1806         (emit_pattern_before_setloc): New function.
1807         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
1808         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
1809         Likewise.
1810         (emit_pattern_before): New function.
1811         (emit_insn_before, emit_jump_insn_before): Call it.
1812         (emit_call_insn_before, emit_debug_insn_before): Likewise.
1814 2011-03-31  Richard Henderson  <rth@redhat.com>
1816         * dwarf2out.c (dw_separate_line_info_ref): Remove.
1817         (dw_separate_line_info_entry): Remove.
1818         (enum dw_line_info_opcode): New.
1819         (dw_line_info_entry): Use it.
1820         (dw_line_info_table, dw_line_info_table_p): New.
1821         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
1822         (line_info_table, line_info_label_num): Remove.
1823         (line_info_table_in_use): Remove.
1824         (separate_line_info_table): Remove.
1825         (separate_line_info_table_allocated): Remove.
1826         (separate_line_info_table_in_use): Remove.
1827         (LINE_INFO_TABLE_INCREMENT): Remove.
1828         (line_info_label_num): New.
1829         (cur_line_info_table): New.
1830         (text_section_line_info, cold_text_section_line_info): New.
1831         (separate_line_info): New.
1832         (SEPARATE_LINE_CODE_LABEL): Remove.
1833         (print_dwarf_line_table): Remove.
1834         (debug_dwarf): Don't dump it.
1835         (output_one_line_info_table): New.
1836         (output_line_info): Use it.
1837         (new_line_info_table): New.
1838         (set_cur_line_info_table): New.
1839         (dwarf2out_switch_text_section): Use it.
1840         (dwarf2out_begin_function): Likewise.
1841         (push_dw_line_info_entry): New.
1842         (dwarf2out_source_line): Rewrite for new line info tables.
1843         (dwarf2out_init): Remove dead initailizations.
1845 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
1847         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
1848         various flags.
1849         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
1850         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
1851         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
1852         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
1853         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
1854         * opt-functions.awk (flag_init, switch_bit_fields): New.
1855         (switch_flags): Don't handle flags moved to bit-fields.  Don't
1856         generate CL_MISSING_OK or CL_SAVE.
1857         * optc-gen.awk: Update to generate bit-field output as well as
1858         flags field.
1859         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
1860         bit-field instead of CL_REJECT_DRIVER flag.
1861         * opts-common.c (generate_canonical_option,
1862         decode_cmdline_option): Use bit-fields instead of CL_* flags.
1863         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
1864         instead of CL_REJECT_NEGATIVE flag.
1865         * toplev.c (print_switch_values): Use cl_report bit-field instead
1866         of CL_REPORT flag.
1868 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
1870         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
1871         a zero minimum index only if it is redundant.
1873 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
1875         PR rtl-optimization/48381
1876         * ira-color.c (assign_hard_reg): Use hard reg set intersection
1877         instead of ira_class_hard_reg_index for calculating conflicting
1878         hard registers.
1880 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
1882         * cprop.c: Clean up hash table building.
1883         (reg_avail_info): Remove.
1884         (oprs_available_p): Remove.
1885         (record_last_reg_set_info): Remove.
1886         (record_last_set_info): Remove.
1887         (reg_available_p): New function.
1888         (gcse_constant_p): Do not treat unfolded conditions as constants.
1889         (make_set_regs_unavailable): New function.
1890         (hash_scan_set): Simplify with new reg_available_p.
1891         (compute_hash_table_work): Traverse insns stream only once.
1892         Do not compute reg_avail_info. Traverse insns in reverse order.
1893         Record implicit sets after recording explicit sets from the block.
1895 2011-03-31  Michael Matz  <matz@suse.de>
1897         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
1899 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
1901         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
1902         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
1903         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1904         (h8300_mode_dependent_address_p): New function.
1905         (h8300_get_index): Make static.
1907 2011-03-31  Jeff Law  <law@redhat.com>
1909         * reload1.c (elimination_effects): Fix typo in recent change.
1911         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
1912         typo potentially leading to null pointer dereference.
1914         * caller-save.c (new_saved_hard_reg): Eliminate return value.
1915         (setup_save_areas): Corresponding changes to avoid useless
1916         assignments.
1918         * jump.c (reversed_comparison_code_parts): Avoid successive return
1919         statements when REVERSE_CONDITION is defined.
1921         * expr.c (expand_assignment): Avoid useless assignments.
1922         (expand_expr_real_1): Likewise.
1923         (expand_expr_real_2): Avoid useless statements.
1925         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
1927         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
1929         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
1930         statements.
1932         * stmt.c (expand_expr_stmt): Avoid useless assignment.
1934 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
1936         PR target/47109
1937         * doc/tm.texi.in (TARGET_VERSION): Remove.
1938         * doc/tm.texi: Regenerate.
1939         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
1940         * collect2.c (main): Don't use TARGET_VERSION.
1941         * mips-tdump.c (main): Don't use TARGET_VERSION.
1942         * mips-tfile.c (main): Don't use TARGET_VERSION.
1943         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
1944         * config/rs6000/vxworksae.h: Remove.
1945         * config/alpha/alpha.h (TARGET_VERSION): Remove.
1946         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
1947         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
1948         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
1949         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
1950         * config/arm/arm.h (TARGET_VERSION): Remove.
1951         * config/arm/coff.h (TARGET_VERSION): Remove.
1952         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
1953         * config/arm/elf.h (TARGET_VERSION): Remove.
1954         * config/arm/freebsd.h (TARGET_VERSION): Remove.
1955         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
1956         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
1957         * config/arm/pe.h (TARGET_VERSION): Remove.
1958         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
1959         * config/arm/semi.h (TARGET_VERSION): Remove.
1960         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
1961         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
1962         * config/arm/vxworks.h (TARGET_VERSION): Remove.
1963         * config/avr/avr.h (TARGET_VERSION): Remove.
1964         * config/bfin/bfin.h (TARGET_VERSION): Remove.
1965         * config/fr30/fr30.h (TARGET_VERSION): Remove.
1966         * config/frv/frv.h (TARGET_VERSION): Remove.
1967         * config/h8300/h8300.h (TARGET_VERSION): Remove.
1968         * config/i386/cygwin.h (TARGET_VERSION): Remove.
1969         * config/i386/darwin.h (TARGET_VERSION): Remove.
1970         * config/i386/darwin64.h (TARGET_VERSION): Remove.
1971         * config/i386/djgpp.h (TARGET_VERSION): Remove.
1972         * config/i386/freebsd.h (TARGET_VERSION): Remove.
1973         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
1974         * config/i386/gnu.h (TARGET_VERSION): Remove.
1975         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
1976         * config/i386/i386elf.h (TARGET_VERSION): Remove.
1977         * config/i386/linux.h (TARGET_VERSION): Remove.
1978         * config/i386/linux64.h (TARGET_VERSION): Remove.
1979         * config/i386/lynx.h (TARGET_VERSION): Remove.
1980         * config/i386/mingw32.h (TARGET_VERSION): Remove.
1981         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
1982         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
1983         * config/i386/netware.h (TARGET_VERSION): Remove.
1984         * config/i386/nto.h (TARGET_VERSION): Remove.
1985         * config/i386/openbsd.h (TARGET_VERSION): Remove.
1986         * config/i386/vxworks.h (TARGET_VERSION): Remove.
1987         * config/ia64/elf.h (TARGET_VERSION): Remove.
1988         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
1989         * config/ia64/hpux.h (TARGET_VERSION): Remove.
1990         * config/ia64/linux.h (TARGET_VERSION): Remove.
1991         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
1992         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
1993         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
1994         * config/lm32/lm32.h (TARGET_VERSION): Remove.
1995         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
1996         * config/m32c/m32c.h (TARGET_VERSION): Remove.
1997         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
1998         * config/m32r/m32r.h (TARGET_VERSION): Remove.
1999         * config/m68k/linux.h (TARGET_VERSION): Remove.
2000         * config/m68k/m68k.h (TARGET_VERSION): Remove.
2001         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
2002         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
2003         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
2004         * config/mep/mep.h (TARGET_VERSION): Remove.
2005         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
2006         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2007         * config/mips/iris6.h (MACHINE_TYPE): Remove.
2008         * config/mips/linux.h (TARGET_VERSION): Remove.
2009         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
2010         * config/mips/vxworks.h (TARGET_VERSION): Remove.
2011         * config/mmix/mmix.h (TARGET_VERSION): Remove.
2012         * config/mn10300/linux.h (TARGET_VERSION): Remove.
2013         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
2014         * config/pa/pa.h (TARGET_VERSION): Remove.
2015         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
2016         * config/picochip/picochip.h (TARGET_VERSION): Remove.
2017         * config/rs6000/aix.h (TARGET_VERSION): Remove.
2018         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
2019         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
2020         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
2021         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
2022         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
2023         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
2024         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
2025         * config/rs6000/linux.h (TARGET_VERSION): Remove.
2026         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
2027         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
2028         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
2029         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
2030         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
2031         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
2032         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
2033         * config/s390/linux.h (TARGET_VERSION): Remove.
2034         * config/s390/s390.h (TARGET_VERSION): Remove.
2035         * config/s390/tpf.h (TARGET_VERSION): Remove.
2036         * config/score/score.h (TARGET_VERSION): Remove.
2037         * config/sh/linux.h (TARGET_VERSION): Remove.
2038         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
2039         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
2040         * config/sh/sh.h (TARGET_VERSION): Remove.
2041         * config/sh/sh64.h (TARGET_VERSION): Remove.
2042         * config/sh/superh.h (TARGET_VERSION): Remove.
2043         * config/sh/vxworks.h (TARGET_VERSION): Remove.
2044         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
2045         * config/sparc/linux.h (TARGET_VERSION): Remove.
2046         * config/sparc/linux64.h (TARGET_VERSION): Remove.
2047         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
2048         TARGET_NAME32, TARGET_NAME): Remove.
2049         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
2050         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
2051         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
2052         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
2053         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
2054         * config/spu/spu.h (TARGET_VERSION): Remove.
2055         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
2056         * config/v850/v850.h (TARGET_VERSION): Remove.
2057         * config/vax/linux.h (TARGET_VERSION): Remove.
2058         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
2059         * config/xtensa/elf.h (TARGET_VERSION): Remove.
2060         * config/xtensa/linux.h (TARGET_VERSION): Remove.
2062 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2064         PR target/48142
2065         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
2066         frame-related from frame-unrelated adjustments to the stack pointer.
2068 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
2070         * common.opt (fdebug-types-section): Move earlier.
2071         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
2073 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
2075         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
2076         var.
2078 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
2080         * tree.h (CASE_CHAIN): Define.
2081         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
2082         (gimple_redirect_edge_and_branch): Likewise.
2084 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2086         PR middle-end/48367
2087         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
2088         calculation.
2090 2011-03-30  Jeff Law  <law@redhat.com>
2092         * PR bootstrap/48371
2093         * reload1.c (reload): Fix botch in last change.
2095         * reload.h (struct reload): Fix typo introduced in last change.
2097 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2099         * config/arm/arm.opt (mhard-float, msoft-float): Mark
2100         Undocumented.  Remove help text.
2101         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
2102         -mhard-float.
2104 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2106         * doc/options.texi (NegativeAlias): Document.
2107         (Alias): Mention NegativeAlias.
2108         * opt-functions.awk: Handle NegativeAlias.
2109         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
2110         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
2111         * opts.h (CL_NEGATIVE_ALIAS): Define.
2112         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
2113         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
2114         OPT_mspe_.
2115         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
2116         Alias entries.
2117         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2118         mno-spe and mno-isel instead of mspe=no and -misel=no.
2120 2011-03-29  Mark Wielaard  <mjw@redhat.com>
2122         * common.opt (fdebug-types-section): New flag.
2123         * doc/invoke.texi: Document new -fno-debug-types-section flag.
2124         * dwarf2out.c (use_debug_types): New define.
2125         (struct die_struct): Mark die_id with GTY desc use_debug_types.
2126         (print_die): Guard output of type unit signatures using
2127         use_debug_types.
2128         (build_abbrev_table): Replace assert of dwarf_version >= 4
2129         with assert on use_debug_types.
2130         (size_of_die): Likewise.
2131         (unmark_dies): Likewise.
2132         (value_format): Decide AT_ref_external form on use_debug_types.
2133         (output_die): Replace dwarf_version version check guard with
2134         use_debug_types where appropriate.
2135         (modified_type_die): Likewise.
2136         (gen_reference_type_die): Likewise.
2137         (dwarf2out_start_source_file): Likewise.
2138         (dwarf2out_end_source_file): Likewise.
2139         (prune_unused_types_walk_attribs): Likewise.
2140         (dwarf2out_finish): Likewise.
2142 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2144         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
2146 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2148         PR rtl-optimization/48332
2149         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
2150         mode of input operand N and modeN to its actual mode.
2152 2011-03-30  Jeff Law  <law@redhat.com>
2154         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
2155         define accessor macro.
2156         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
2157         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
2158         (reg_equiv_init): Likewise.
2159         (reg_equivs_size): New variable.
2160         (reg_equiv_init_size): Remove.
2161         (allocate_initial_values): Move prototype to here from....
2162         * integrate.h (allocate_initial_values): Remove prototype.
2163         * integrate.c: Include reload.h.
2164         (allocate_initial_values): Corresponding changes.
2165         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
2166         (fix_reg_equiv_init, no_equiv): Corresponding changes.
2167         (update_equiv_regs): Corresponding changes.
2168         (ira): Corresponding changes.
2169         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
2170         (push_secondary_reload): Corresponding changes.
2171         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
2172         (make_memloc, find_reloads_address): Corresponding changes.
2173         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
2174         (find_reloads_address_1): Corresponding changes.
2175         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
2176         (refers_to_regno_for_reload_p): Corresponding changes.
2177         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
2178         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
2179         * reload1.c: Include ggc.h.
2180         (grow_reg_equivs): New function.
2181         (replace_pseudos_in, reload): Corresponding changes.
2182         (calculate_needs_all_insns, alter_regs): Corresponding changes.
2183         (eliminate_regs_1, elimination_effects): Corresponding changes.
2184         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
2185         (delete_output_reload): Likewise.
2186         * caller-save.c (mark_referenced_regs): Corresponding changes.
2187         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
2188         * frv/predicates.md (frv_load_operand): Corresponding changes.
2189         * microblaze/microblaze.c (double_memory_operand): Corresponding
2190         changes.
2191         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
2192         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
2193         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
2194         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
2195         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
2196         changes.
2197         * pa/pa.c (emit_move_sequence): Corresponding changes.
2198         * vax/vax.c (nonindexed_address_p): Corresponding changes.
2200 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2202         PR target/47551
2203         * config/arm/arm.c (coproc_secondary_reload_class): Handle
2204         structure modes.  Don't check neon_vector_mem_operand for
2205         vector or structure modes.
2207 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
2208             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2210         PR target/43590
2211         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
2212         operand 1 and reshuffle the operands to match.
2213         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
2215 2011-03-30  Christian Schüler  <cschueler@gmx.de>
2217         PR driver/48208
2218         * config/c.opt (F): Added 'Driver' to -F option.
2220         PR driver/48260
2221         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
2222           handler function.
2223         * config/darwin.opt: Added '-arch' option.
2225 2011-03-30  Nick Clifton  <nickc@redhat.com>
2227         * config/rx/rx.md: Add peepholes and patterns to combine
2228         extending loads and simple arithmetic instructions.
2229         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
2230         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
2231         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
2232         modes to use pre-decrement and post-increment addressing.
2233         (rx_is_restricted_memory_address): Add range checking of REG+INT
2234         addresses.
2235         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
2236         (rx_memory_move_cost): Adjust cost of stores.
2237         (rx_adjust_insn_length): New function.
2239 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
2241         PR c/48305
2242         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
2243         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
2244         matching arg00/arg01 types.
2246 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
2248         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
2249         last_location to UNKNOWN_LOCATION.
2251 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2253         PR target/48349
2254         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
2255         FLOAT_SSE_REGS.
2257 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
2258             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2260         PR bootstrap/48337
2261         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
2262         Init(PROCESSOR_V7).
2263         (sparc_cpu): Likewise.
2264         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
2265         PROCESSOR_V7.
2267 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2269         PR target/48336
2270         PR middle-end/48342
2271         PR rtl-optimization/48345
2272         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
2273         hard regs for given mode from profitable regs when doing secondary
2274         allocation.
2276 2011-03-29  Jeff Law  <law@redhat.com>
2278         PR bootstrap/48327
2279         * tree-ssa-threadupdate.c (struct redirection_data): Remove
2280         do_not_duplicate field.
2281         (lookup_redirection_data): Corresponding changes.
2282         (create_duplicates): Always create a template block.
2283         (redirect_edges): Remove code which reused the original block
2284         when it was going to become unreachable code.
2285         (thread_block): Don't set do_not_duplicate field.
2287 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
2289         * lto-opts.c (register_user_option_p, lto_register_user_option):
2290         Make type argument unsigned.
2291         * lto-streamer.h (lto_register_user_option): Make type argument
2292         unsigned.
2293         * opth-gen.awk: Make CL_* macros unsigned.
2294         * opts-common.c (find_opt): Make lang_mask argument unsigned.
2295         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
2296         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
2297         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
2298         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
2299         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
2300         (find_opt): Make lang_mask argument unsigned.
2302 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2304         PR rtl-optimization/48331
2305         PR rtl-optimization/48334
2306         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
2307         for any used algorithm.
2309 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2311         * ira-conflicts.c (build_object_conflicts): Add unused attribute
2312         to parent_max.
2314 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
2316         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
2317         (alpha_option_override): Don't set alpha_sr_alias_set.
2318         (emit_frame_store_1): Use gen_frame_mem rather than calling
2319         set_mem_alias_set.
2320         (alpha_expand_epilogue): Ditto.
2322 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
2324         PR tree-optimization/48290
2325         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
2326         vectorization, check that relevant phis in the basic block after
2327         the inner loop are really inner loop's exit phis.
2329 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
2331         PR debug/48190
2332         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
2333         (cached_dw_loc_list_def): New structure.
2334         (cached_dw_loc_list): New typedef.
2335         (cached_dw_loc_list_table): New variable.
2336         (cached_dw_loc_list_table_hash): New function.
2337         (cached_dw_loc_list_table_eq): Likewise.
2338         (add_location_or_const_value_attribute): Take a bool cache_p.
2339         Cache the list when the parameter is true.
2340         (gen_formal_parameter_die): Update caller.
2341         (gen_variable_die): Likewise.
2342         (dwarf2out_finish): Likewise.
2343         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
2344         while generating debug info for the decl.
2345         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
2346         (dwarf2out_init): Initialize cached_dw_loc_list_table.
2347         (resolve_addr): Cache the result of resolving a chain of
2348         location lists.
2350 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
2352         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
2353         conflict object hard regset nodes have intersecting hard reg sets.
2355         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
2356         after regstat_init_n_sets_and_refs.
2358         * ira.c: Add more comments at the top.
2359         (setup_stack_reg_pressure_class, setup_pressure_classes):
2360         Add comments how we compute the register pressure classes.
2361         (setup_allocno_and_important_classes): Add more comments.
2362         (setup_class_translate_array, reorder_important_classes)
2363         (setup_reg_class_relations): Add comments.
2365         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
2366         start of the file.
2368         * ira-color.c: Add 2011 to the Copyright line.
2369         (assign_hard_reg):  Add more comments.
2370         (improve_allocation): Ditto.
2372         * ira-costs.c: Add 2011 to the Copyright line.
2373         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
2374         comments.
2375         (setup_regno_cost_classes_by_mode): Ditto.
2377         Initial patches from ira-improv branch:
2379         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
2381         * ira-build.c: (ira_create_object): Remove initialization of
2382         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
2383         (ira_create_allocno): Remove initialization of
2384         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
2385         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
2386         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
2387         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
2388         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
2389         Initialize ALLOCNO_ADD_DATA.
2390         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
2391         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
2392         ALLOCNO_REG.
2393         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
2394         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
2396         * ira.c (ira_reallocate): Remove.
2397         (setup_pressure_classes): Call
2398         ira_init_register_move_cost_if_necessary.  Use
2399         ira_register_move_cost instead of ira_get_register_move_cost.
2400         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
2401         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
2403         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
2404         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
2405         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
2406         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
2407         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
2408         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
2409         Fix formatting.
2410         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
2411         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
2412         (struct allocno_color_data): New.
2413         (allocno_color_data_t): New typedef.
2414         (allocno_color_data): New definition.
2415         (ALLOCNO_COLOR_DATA): New macro.
2416         (struct object_color_data): New.
2417         (object_color_data_t): New typedef.
2418         (object_color_data): New definition.
2419         (OBJECT_COLOR_DATA): New macro.
2420         (update_copy_costs, calculate_allocno_spill_cost): Call
2421         ira_init_register_move_cost_if_necessary.  Use
2422         ira_register_move_cost instead of ira_get_register_move_cost.
2423         (move_spill_restore, update_curr_costs): Ditto.
2424         (allocno_spill_priority): Make it inline.
2425         (color_pass): Allocate and free allocno_color_dat and object_color_data.
2426         (struct coalesce_data, coalesce_data_t): New.
2427         (allocno_coalesce_data): New definition.
2428         (ALLOCNO_COALESCE_DATA): New macro.
2429         (merge_allocnos, coalesced_allocno_conflict_p): Use
2430         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
2431         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
2432         (coalesce_allocnos): Ditto.
2433         (setup_coalesced_allocno_costs_and_nums): Ditto.
2434         (collect_spilled_coalesced_allocnos): Ditto.
2435         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
2436         (setup_slot_coalesced_allocno_live_ranges): Ditto.
2437         (coalesce_spill_slots): Ditto.
2438         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
2439         free allocno_coalesce_data.
2441         * ira-conflicts.c: Fix formatting.
2442         (process_regs_for_copy): Call
2443         ira_init_register_move_cost_if_necessary.  Use
2444         ira_register_move_cost instead of ira_get_register_move_cost.
2445         (build_object_conflicts): Optimize.
2447         * ira-costs.c (record_reg_classes): Optimize.  Call
2448         ira_init_register_move_cost_if_necessary.  Use
2449         ira_register_move_cost, ira_may_move_in_cost, and
2450         ira_may_move_out_cost instead of ira_get_register_move_cost and
2451         ira_get_may_move_cost.
2452         (record_address_regs): Ditto.
2453         (scan_one_insn): Optimize.
2454         (find_costs_and_classes): Optimize.
2455         (process_bb_node_for_hard_reg_moves): Call
2456         ira_init_register_move_cost_if_necessary.  Use
2457         ira_register_move_cost instead of ira_get_register_move_cost.
2459         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
2460         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
2461         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
2462         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
2463         definitions.
2464         (ira_initiate_emit_data, ira_finish_emit_data)
2465         (create_new_allocno): New functions.
2466         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
2467         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
2468         Use ira_register_move_cost instead of ira_get_register_move_cost.
2470         * ira-int.h: Fix some comments.
2471         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
2472         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
2473         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
2474         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
2475         add_data.
2476         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
2477         bitfield after mode.  Make hard_regno a short int.  Make
2478         hard_regno short.  Remove first_coalesced_allocno and
2479         next_coalesced_allocno.  Move mem_optimized_dest_p,
2480         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
2481         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
2482         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
2483         temp, colorable_p.  Add new member add_data.
2484         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
2485         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
2486         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
2487         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
2488         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
2489         (ALLOCNO_ADD_DATA): New macro.
2490         (ira_emit_data_t): New typedef.
2491         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
2492         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
2493         from struct ira_allocno.
2494         (ALLOCNO_EMIT_DATA): New macro.
2495         (ira_allocno_emit_data, allocno_emit_reg): New.
2496         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
2497         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
2498         (OBJECT_ADD_DATA): New macro.
2499         (ira_reallocate): Remove.
2500         (ira_initiate_emit_data, ira_finish_emit_data): New.
2501         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
2502         (ira_init_register_move_cost_if_necessary): New.
2503         (ira_object_conflict_iter_next): Merge into
2504         ira_object_conflict_iter_cond.
2505         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
2507         * ira-live.c: (process_single_reg_class_operands): Call
2508         ira_init_register_move_cost_if_necessary.  Use
2509         ira_register_move_cost instead of ira_get_register_move_cost.
2511         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
2513         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
2515         * ira-costs.c: Fix formatting.
2516         (cost_classes, cost_classes_num): Remove.
2517         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
2518         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
2519         (cost_classes_del, cost_classes_htab): New.
2520         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
2521         (initiate_regno_cost_classes, setup_cost_classes): New.
2522         (setup_regno_cost_classes_by_aclass): New.
2523         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
2524         (record_reg_classes): Use regno_cost_classes instead of
2525         cost_classes.  Move checking opposite operand up.
2526         (record_address_regs): Use regno_cost_classes
2527         instead of cost_classes.
2528         (scan_one_insn): Ditto.  Use always general register.
2529         (print_allocno_costs): Use regno_cost_classes instead of
2530         cost_classes.
2531         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
2532         (find_costs_and_classes): Set up cost classes for each registers.
2533         Use also their mode for this.  Use regno_cost_classes instead of
2534         cost_classes.
2535         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
2536         cost_classes.
2537         (free_ira_costs, ira_init_costs): Don't use cost_classes.
2538         (ira_costs, ira_set_pseudo_classes): Call
2539         initiate_regno_cost_classes and finish_regno_cost_classes.
2541         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
2543         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
2545         * target.def (ira_cover_classes): Remove.
2547         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
2549         * doc/tm.texi.in: Ditto.
2551         * ira-conflicts.c: Remove mentioning cover classes from the file.
2552         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
2553         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
2555         * targhooks.c (default_ira_cover_classes): Remove.
2557         * targhooks.h (default_ira_cover_classes): Ditto.
2559         * haifa-sched.c: Remove mentioning cover classes from the file.
2560         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
2561         ira_pressure_classes and ira_pressure_classes_num instead of
2562         ira_reg_class_cover_size and ira_reg_class_cover.  Use
2563         sched_regno_pressure_class instead of sched_regno_cover_class.
2564         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
2565         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2567         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
2568         classes from the file.
2569         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
2570         (struct object_hard_regs, struct object_hard_regs_node): New.
2571         (struct ira_object): New members profitable_hard_regs,
2572         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
2573         (struct ira_allocno): Rename cover_class to aclass.  Rename
2574         cover_class_cost and updated_cover_class_cost to class_cost and
2575         updated_class_cost.  Remove splay_removed_p and
2576         left_conflict_size.  Add new members colorable_p.
2577         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
2578         (ALLOCNO_COLORABLE_P): New macro.
2579         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
2580         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
2581         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
2582         (OBJECT_...): Rename parameter C to O.
2583         (OBJECT_PROFITABLE_HARD_REGS): New macro.
2584         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
2585         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
2586         (struct target_ira_int): New members x_ira_max_memory_move_cost,
2587         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
2588         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
2589         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
2590         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
2591         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
2592         x_ira_reg_class_subunion.
2593         (ira_max_memory_move_cost, ira_max_register_move_cost)
2594         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
2595         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
2596         (ira_important_class_nums, ira_reg_class_superunion): New macros.
2597         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
2598         (ira_reg_class_union): Rename to ira_reg_class_subunion.
2599         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
2600         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
2601         (ira_tune_allocno_costs_and_cover_classes): Rename to
2602         ira_tune_allocno_costs.
2603         (ira_debug_hard_regs_forest): New.
2604         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
2605         (ira_object_conflict_iter_next): Fix comments.
2606         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
2607         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
2608         cover_class to aclass.
2609         (ira_allocate_and_accumulate_costs): Ditto.
2610         (ira_allocate_and_set_or_copy_costs): Ditto.
2612         * opts.c (decode_options): Remove ira_cover_class check.
2614         * ira-color.c: Remove mentioning cover classes from the file.  Use
2615         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
2616         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
2617         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
2618         (splay-tree.h): Remove include.
2619         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
2620         before copy_freq_compare_func.
2621         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
2622         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
2623         New definitions.
2624         (hard_regs_roots, hard_regs_node_vec): Ditto.
2625         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
2626         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
2627         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
2628         (create_new_object_hard_regs_node): Ditto.
2629         (add_new_object_hard_regs_node_to_forest): Ditto.
2630         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
2631         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
2632         Ditto.
2633         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
2634         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
2635         (remove_unused_object_hard_regs_nodes): Ditto.
2636         (enumerate_object_hard_regs_nodes): Ditto.
2637         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
2638         (object_hard_regs_subnode_t): Ditto.
2639         (struct object_hard_regs_subnode): Ditto.
2640         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
2641         (setup_object_hard_regs_subnode_index): Ditto.
2642         (get_object_hard_regs_subnodes_num): Ditto.
2643         (form_object_hard_regs_nodes_forest): Ditto.
2644         (finish_object_hard_regs_nodes_tree): Ditto.
2645         (finish_object_hard_regs_nodes_forest): Ditto.
2646         (allocnos_have_intersected_live_ranges_p): Rename to
2647         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2648         (pseudos_have_intersected_live_ranges_p): Rename to
2649         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
2650         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
2651         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
2652         (update_copy_costs): Remove assert.  Skip cost update if the hard
2653         reg does not belong the class.
2654         (assign_hard_reg): Process only profitable hard regs.
2655         (uncolorable_allocnos_num): Make it scalar.
2656         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
2657         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
2658         and ira_reg_class_max_nregs.
2659         (bucket_allocno_compare_func): Check frequency first.
2660         (sort_bucket): Add compare function as a parameter.
2661         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
2662         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
2663         (push_allocno_to_stack): Rewrite for checking new allocno
2664         colorability.
2665         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
2666         (push_only_colorable): Pass new parameter to sort_bucket.
2667         (push_allocno_to_spill): Remove.
2668         (allocno_spill_priority_compare): Make it inline and rewrite.
2669         (splay_tree_allocate, splay_tree_free): Remove.
2670         (allocno_spill_sort_compare): New function.
2671         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
2672         build and use splay tree.  Choose first allocno in uncolorable
2673         allocno bucket to spill.  Remove setting spill cost.
2674         (all_conflicting_hard_regs): Remove.
2675         (setup_allocno_available_regs_num): Check only profitable hard
2676         regs.  Print info about hard regs nodes.
2677         (setup_allocno_left_conflicts_size): Remove.
2678         (put_allocno_into_bucket): Don't call
2679         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
2680         (improve_allocation): New.
2681         (color_allocnos): Call setup_profitable_hard_regs,
2682         form_object_hard_regs_nodes_forest, improve_allocation,
2683         finish_object_hard_regs_nodes_forest.  Setup spill cost.
2684         (print_loop_title): Use pressure classes.
2685         (color_allocnso): Ditto.
2686         (do_coloring): Remove allocation and freeing splay_tree_node_pool
2687         and allocnos_for_spilling.
2688         (ira_sort_regnos_for_alter_reg): Don't setup members
2689         {first,next}_coalesced_allocno.
2690         (color): Remove allocating and freeing removed_splay_allocno_vec.
2691         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
2692         prohibited_class_mode_regs.
2694         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
2695         formatting.
2696         (update_allocno_pressure_excess_length): Use pressure classes.
2697         (inc_register_pressure, dec_register_pressure): Check for pressure
2698         class.
2699         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
2700         pressure class.  Use ira_reg_class_nregs instead of
2701         ira_reg_class_max_nregs.
2702         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
2703         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
2704         (single_reg_class): Use ira_reg_class_nregs instead of
2705         ira_reg_class_max_nregs.
2706         (process_bb_node_lives): Use pressure classes.
2708         * ira-emit.c: Remove mentioning cover classes from the file.  Use
2709         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2710         (change_loop): Use pressure classes.
2711         (modify_move_list): Call ira_set_allocno_class instead of
2712         ira_set_allocno_cover_class.
2714         * ira-build.c: Remove mentioning cover classes from the file.  Use
2715         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
2716         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
2717         ALLOCNO_UPDATED_CLASS_COST instead of
2718         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
2719         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
2720         (ira_create_allocno): Remove initialization of
2721         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
2722         ALLOCNO_COLORABLE_P.
2723         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
2724         Update conflict regs for the objects.
2725         (create_cap_allocno): Remove assert.  Don't propagate
2726         ALLOCNO_AVAILABLE_REGS_NUM.
2727         (ira_free_allocno_costs): New function.
2728         (finish_allocno): Change a part of code into call of
2729         ira_free_allocno_costs.
2730         (low_pressure_loop_node_p): Use pressure classes.
2731         (object_range_compare_func): Don't compare classes.
2732         (setup_min_max_conflict_allocno_ids): Ditto.
2734         * loop-invariant.c: Remove mentioning cover classes from the file.
2735         Use ira_pressure_classes and ira_pressure_classes_num instead of
2736         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
2737         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
2738         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2739         Use reg_allocno_class instead of reg_cover_class.
2740         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
2741         STACK_REG_COVER_CLASS.
2742         (get_regno_cover_class): Rename to get_regno_pressure_class.
2743         (move_loop_invariants): Initialize and finalize regstat.
2745         * ira.c: Remove mentioning cover classes from the file.  Add
2746         comments about coloring without cover classes.  Use ALLOCNO_CLASS
2747         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
2748         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
2749         setup_class_subset_and_memory_move_costs.
2750         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
2751         (setup_cover_and_important_classes): Rename to
2752         setup_allocno_and_important_classes.
2753         (setup_class_translate_array): New.
2754         (setup_class_translate): Call it for allocno and pressure classes.
2755         (cover_class_order): Rename to allocno_class_order.
2756         (comp_reg_classes_func): Use ira_allocno_class_translate instead
2757         of ira_class_translate.
2758         (reorder_important_classes): Set up ira_important_class_nums.
2759         (setup_reg_class_relations): Set up ira_reg_class_superunion.
2760         (print_class_cover): Rename to print_classes.  Add parameter.
2761         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
2762         Print pressure classes too.
2763         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
2764         setup_reg_subclasses.
2765         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2766         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2767         (setup_prohibited_class_mode_regs): Use
2768         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
2769         (clarify_prohibited_class_mode_regs): New function.
2770         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
2771         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
2772         (ira_init_once): Initialize them.
2773         (free_register_move_costs): Process them.
2774         (ira_init): Move calls of find_reg_classes and
2775         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
2776         Call clarify_prohibited_class_mode_regs.
2777         (ira_no_alloc_reg): Remove.
2778         (too_high_register_pressure_p): Use pressure classes.
2780         * sched-deps.c: Remove mentioning cover classes from the file.
2781         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
2782         ira_pressure_classes and ira_pressure_classes_num instead of
2783         ira_reg_class_cover_size and ira_reg_class_cover.
2784         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
2785         sched_regno_pressure_class instead of sched_regno_cover_class.
2786         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
2787         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
2789         * ira.h: Add 2010 to Copyright.
2790         (ira_no_alloc_reg): Remove external.
2791         (struct target_ira): Rename x_ira_hard_regno_cover_class,
2792         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
2793         x_ira_class_translate to x_ira_hard_regno_allocno_class,
2794         x_ira_allocno_classes_num, x_ira_allocno_classes, and
2795         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
2796         x_ira_pressure_classes, x_ira_pressure_class_translate, and
2797         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
2798         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
2799         x_ira_no_alloc_regs.
2800         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
2801         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
2802         ira_allocno_classes_num and ira_allocno_classes.
2803         (ira_class_translate): Rename to ira_allocno_class_translate.
2804         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
2805         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
2806         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
2807         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
2808         (ira_no_alloc_regs): New.
2810         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
2811         classes from the file.  Use ALLOCNO_CLASS instead of
2812         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
2813         ALLOCNO_COVER_CLASS_COST.
2814         (regno_cover_class): Rename to regno_aclass.
2815         (record_reg_classes): Use ira_reg_class_subunion instead of
2816         ira_reg_class_union.
2817         (record_address_regs): Check overflow.
2818         (scan_one_insn): Ditto.
2819         (print_allocno_costs): Print total mem cost fore regional allocation.
2820         (print_pseudo_costs): Use REG_N_REFS.
2821         (find_costs_and_classes): Use classes intersected with them on the
2822         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
2823         ira_reg_class_union.  Use ira_allocno_class_translate and
2824         regno_aclass instead of ira_class_translate and regno_cover_class.
2825         Modify code for finding regno_aclass.  Setup preferred classes for
2826         the next pass.
2827         (setup_allocno_cover_class_and_costs): Rename to
2828         setup_allocno_class_and_costs.  Use regno_aclass instead of
2829         regno_cover_class.  Use ira_set_allocno_class instead of
2830         ira_set_allocno_cover_class.
2831         (init_costs, finish_costs): Use regno_aclass instead of
2832         regno_cover_class.
2833         (ira_costs): Use setup_allocno_class_and_costs instead of
2834         setup_allocno_cover_class_and_costs.
2835         (ira_tune_allocno_costs_and_cover_classes): Rename to
2836         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
2837         by processing objects.  Use ira_reg_class_max_nregs instead of
2838         ira_reg_class_nregs.
2840         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
2842         * sched-int.h: Remove mentioning cover classes from the file.
2843         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
2845         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
2846         classes from the file.
2847         (struct reg_pref): Rename coverclass into allocnoclass.
2848         (reg_cover_class): Rename to reg_allocno_class.
2850         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
2852         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
2854         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
2856         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
2858         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
2860         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
2862         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
2864         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
2866         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
2868         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
2870         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
2871         (i386_ira_cover_classes): Ditto.
2873         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
2875         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
2877         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
2879         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
2881         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
2883         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
2885         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
2886         (mips_ira_cover_classes): Ditto.
2888         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
2890         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
2892         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
2894         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
2896         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
2898         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
2899         (IRA_COVER_CLASSES_VSX): Ditto.
2901         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
2902         (rs6000_ira_cover_classes): Ditto.
2904         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
2906         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
2908         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
2910         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
2912         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
2914         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
2916         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
2918         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
2920         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
2922         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
2924 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
2926         PR debug/48253
2927         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
2928         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
2929         dw_fde_unlikely_section_end_label, cold_in_std_section,
2930         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
2931         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
2932         fields.
2933         (output_fde): Use dw_fde_second_{begin,end} if second is
2934         true, otherwise dw_fde_{begin,end}.
2935         (output_call_frame_info): Test dw_fde_second_begin != NULL
2936         instead of dw_fde_switched_sections.
2937         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
2938         fields, initialize new fields.  Initialize in_std_section
2939         unconditionally from the first partition.
2940         (dwarf2out_end_epilogue): Don't override dw_fde_end when
2941         dw_fde_second_begin is non-NULL.
2942         (dwarf2out_switch_text_section): Stop initializing removed
2943         dw_fde_struct fields, initialize new fields, initialize
2944         also dw_fde_end here.  Set dw_fde_switch_cfi even when
2945         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
2946         (struct var_loc_list_def): Add last_before_switch field.
2947         (arange_table, arange_table_allocated, arange_table_in_use,
2948         ARANGE_TABLE_INCREMENT, add_arange): Removed.
2949         (size_of_aranges): Count !in_std_section and !second_in_std_section
2950         hunks in fdes, instead of looking at arange_table_in_use.
2951         (output_aranges): Add aranges_length argument, don't call
2952         size_of_aranges here.  Instead of using aranges_table*
2953         emit ranges for fdes when !in_std_section resp.
2954         !second_in_std_section.
2955         (dw_loc_list): Break ranges crossing section switch.
2956         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
2957         use dw_fde_second_end instead of dw_fde_end as end of last range.
2958         (gen_subprogram_die): Don't call add_arange.  Use
2959         dw_fde_{begin,end} for first partition and if switched
2960         section dw_fde_second_{begin,end} for the second.
2961         (var_location_switch_text_section_1,
2962         var_location_switch_text_section): New functions.
2963         (dwarf2out_begin_function): Initialize cold_text_section even
2964         when function_section () isn't text_section.
2965         (prune_unused_types): Don't walk arange_table.
2966         (dwarf2out_finish): Don't needlessly test
2967         flag_reorder_blocks_and_partition when testing cold_text_section_used.
2968         If info_section_emitted, call size_of_aranges and if it indicates
2969         non-empty .debug_aranges, call output_aranges with the computed
2970         size.  Stop using removed dw_fde_struct fields, use
2971         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
2972         for second.
2974         PR debug/48203
2975         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
2976         create ENTRY_VALUE if incoming or address of incoming's MEM
2977         is a hard REG.
2978         * dwarf2out.c (mem_loc_descriptor): Don't emit
2979         DW_OP_GNU_entry_value of DW_OP_fbreg.
2980         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
2981         on ENTRY_VALUE is able to find the canonical parameter VALUE.
2982         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
2983         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
2984         ENTRY_VALUE_EXPs.
2985         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
2986         is a REG_P or MEM_P with REG_P address, compute hash directly
2987         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
2988         (preserve_only_constants): Don't clear VALUES forwaring
2989         ENTRY_VALUE to some other VALUE.
2991 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
2993         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
2994         instead of GEN_INT.
2996 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
2998         * cfgexpand.c (expand_gimple_cond): Always set the source location and
2999         block before expanding the statement.
3000         (expand_gimple_stmt_1): Likewise.  Set them here...
3001         (expand_gimple_stmt): ...and not here.  Tidy.
3002         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
3003         unknown.
3005 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3007         * Makefile.in: New rule for cprop.o.
3008         * gcse.c: Move constant/copy propagation to cprop.c.
3009         (compute_local_properties): Only handle expression tables.
3010         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
3011         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
3012         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
3013         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
3014         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
3015         compute_cprop_data, find_used_regs, try_replace_reg,
3016         find_avail_set, cprop_jump, constprop_register, cprop_insn,
3017         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
3018         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
3019         find_bypass_set, reg_killed_on_edge, bypass_block,
3020         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
3021         execute_rtl_cprop, pass_rtl_cprop): Move to...
3022         * cprop.c: ...here.  New file, constant/copy propagation for RTL
3023         moved from gcse.c to here with minor cleanups in duplicated code.
3025 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
3027         * config/i386/i386.c (flag_opts): Fix a typo in
3028         -mavx256-split-unaligned-store.
3030 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3032         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
3033         LIBCALL_VALUE): Remove macros.
3034         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3035         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3036         (h8300_function_value, h8300_libcall_value,
3037         h8300_function_value_regno_p): New functions.
3039 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
3041         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
3043 2011-03-28  Jeff Law  <law@redhat.com>
3045         * tree-ssa-threadupdate.c (redirect_edges): Call
3046         create_edge_and_update_destination_phis as needed.
3047         (create_edge_and_update_destination_phis): Accept new BB argument.
3048         All callers updated.
3049         (thread_block): Do not update the profile when threading around
3050         intermediate blocks.
3051         (thread_single_edge): Likewise.
3052         (determine_bb_domination_status): If BB is not a successor of the
3053         loop header, return NONDOMINATING.
3054         (register_jump_thread): Note when we register a jump thread around
3055         an intermediate block.
3056         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
3057         (thread_across_edge): Use it.
3059 2011-03-28  Tristan Gingold  <gingold@adacore.com>
3061         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
3062         when for_return is 2.
3064 2011-03-28  Jeff Law  <law@redhat.com>
3066         * var-tracking.c (canonicalize_values_mark): Delete unused
3067         lhs assignment.
3068         (canonicalize_values_star, set_variable_part): Likewise.
3069         (clobber_variable_part, delete_variable_part): Likewise.
3071 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
3073         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
3075 2011-03-28  Martin Jambor  <mjambor@suse.cz>
3077         * tree-inline.c (expand_call_inline): Do not check that destination
3078         node is analyzed.
3079         (optimize_inline_calls): Assert that destination node is analyzed.
3080         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
3081         not call tree_lowering_passes.
3082         * cgraph.h (cgraph_analyze_function): Declare.
3083         * cgraphunit.c (cgraph_analyze_function): Make public.
3085 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
3087         * config/sparc/sparc-opts.h: New.
3088         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
3089         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
3090         (sparc_option_override): Store processor_type enumeration rather
3091         than string in cpu_default.  Remove name and enumeration from
3092         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
3093         without using sparc_select.  Use target_flags_explicit instead of
3094         fpu_option_set.
3095         * config/sparc/sparc.h (enum processor_type): Move to
3096         sparc-opts.h.
3097         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
3098         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
3099         HeaderInclude entry.
3100         (mcpu=, mtune=): Use Var and Enum.
3101         (sparc_processor_type): New Enum and EnumValue entries.
3103 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3104             Iain Sandoe  <iains@gcc.gnu.org>
3106         PR target/48245
3107         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
3109 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
3111         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
3112         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
3113         Insert new statements at it in lieu of STMT.
3114         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
3115         * tree-vect-stmts.c (vectorizable_store): Likewise.
3116         (vectorizable_load): Likewise.
3118 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
3120         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
3121         (divtf3): Ditto.
3122         (multf3): Ditto.
3123         (subtf3): Ditto.
3125 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3127         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
3128         unaligned 256bit load/store.
3129         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
3130         (*avx_movdqu<avxmodesuffix>): Likewise.
3132 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3134         PR target/48288
3135         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
3136         * config/pa/pa.md (iordi3): Use new predicate in expander.
3137         (iorsi3): Likewise.
3139 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
3141         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
3142         FUNCTION_VALUE_REGNO_P): Remove macros.
3143         * config/mips/mips-protos.h (mips_function_value): Remove.
3144         * config/mips/mips.c (mips_function_value): Rename to...
3145         (mips_function_value_1): ... this. Make static.  Handle receiving
3146         the function type in 'fn_decl_or_type' argument.
3147         (mips_function_value, mips_libcall_value,
3148         mips_function_value_regno_p): New function.
3149         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3150         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3152 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3154         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
3155         and -mavx256-split-unaligned-store.
3156         (ix86_option_override_internal): Split 32-byte AVX unaligned
3157         load/store by default.
3158         (ix86_avx256_split_vector_move_misalign): New.
3159         (ix86_expand_vector_move_misalign): Use it.
3161         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
3162         -mavx256-split-unaligned-store.
3164         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
3165         256bit load/store.  Generate unaligned store on misaligned memory
3166         operand.
3167         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
3168         256bit load/store.
3169         (*avx_movdqu<avxmodesuffix>): Likewise.
3171         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
3172         -mavx256-split-unaligned-store.
3174 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3176         PR target/38598
3177         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
3178         Update commentary.
3180 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
3182         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
3183         opno arguments with an expand_operand.  Use create_input_operand.
3184         (mips_prepare_builtin_target): Delete.
3185         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
3186         functions.
3187         (mips_expand_builtin_direct): Use create_output_operand and
3188         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
3189         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
3190         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
3192 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
3194         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
3195         function.
3196         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3198 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
3200         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
3201         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
3202         basic blocks and call commit_edge_insertions directly.
3203         (fixup_abnormal_edges): Move from here to...
3204         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
3205         on the edges and return whether some have actually been inserted.
3206         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
3207         compensation code.
3209 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
3211         PR rtl-optimization/48144
3212         * sel-sched-ir.c (merge_history_vect): Factor out from ...
3213         (merge_expr_data): ... here.
3214         (av_set_intersect): Rename to av_set_code_motion_filter.
3215         Update all callers.  Call merge_history_vect when an expression
3216         is found in both sets.
3217         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
3219 2011-03-26  Alan Modra  <amodra@gmail.com>
3221         * config/rs6000/predicates.md (word_offset_memref_op): Handle
3222         cmodel medium addresses.
3223         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
3224         64-bit gpr loads and stores.
3225         (rs6000_secondary_reload_ppc64): New function.
3226         * config/rs6000/rs6000-protos.h: Declare it.
3227         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
3229 2011-03-26  Alan Modra  <amodra@gmail.com>
3231         PR target/47487
3232         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
3233         GNU Go in traceback table.
3235 2011-03-25  Richard Henderson  <rth@redhat.com>
3237         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
3238         if there are exactly 6 operands.
3239         (set_storage_via_setmem): Similarly.
3241 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3243         * collect2.c (write_c_file_stat): Handle backslash
3244         as right-hand directory separator.
3245         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
3246         checking just for slash.
3247         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
3248         instead of checking for trailing slash.
3249         * gcc.c (record_temp_file): Use filename_cmp instead
3250         of strcmp.
3251         (do_spec_1): Likewise.
3252         (replace_outfile_spec_function): Likewise.
3253         (is_directory): Use filename_ncmp instead of strncmp.
3254         (print_multilib_info): Likewise.
3255         * gcov.c (find_source): Use filename_cmp instead
3256         instead of strcmp.
3257         (make_gcov_file_name): Fix order of slash/backslash
3258         checks.
3259         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
3260         (add_standard_paths): Likewise.
3261         * mips-tfile.c (saber_stop): Handle backslash.
3262         * prefix.c (update_path): Use filename_ncmp instead of
3263         strncmp.
3264         * profile.c (output_location): Use filename_cmp instead
3265         of strcmp.
3266         * read-md.c (handle_toplevel_file): Handle backslash.
3267         * tlink.c (frob_extension):  Likewise.
3268         * tree-cfg.c (same_line_p): Use filename_cmp instead of
3269         strcmp.
3270         * tree-dump.c (dequeue_and_dump): Handle backslash.
3271         * tree.c (get_file_function_name): Likewise.
3272         * gengtype.c (read_input_list): Likewise.
3273         (get_file_realbasename): Likewise.
3274         (get_output_file_with_visibility): Use filename_cmp
3275         instead of strcmp.
3277 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
3279         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
3280         case to VFPv1.
3282 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
3284         * fold-const.c (expr_location_or): New function.
3285         (fold_truth_not_expr): Call it.
3287 2011-03-25  Jeff Law  <law@redhat.com>
3289         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
3290         va_end.
3291         * c-family/c-common.c (def_fn_type): Likewise.
3292         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
3293         * emit-rtl.c (gen_rtvec): Likewise.
3294         * lto/lto-lang.c (def_fn_type): Likewise.
3296 2011-03-25  Richard Guenther  <rguenther@suse.de>
3298         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
3299         also generate copies.
3300         (fini_copy_prop): Handle constant values properly.
3302 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
3304         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
3305         mode size instead of bitsize with DWARF2_ADDR_SIZE.
3306         (hash_loc_operands, compare_loc_operands): Handle
3307         DW_OP_GNU_entry_value.
3309 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3311         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
3312         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
3313         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
3314         comment and use macro TARGET_64BIT_MS_ABI instead.
3315         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
3316         and change default behavior for 32-bit MS_ABI.
3317         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
3318         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
3319         32-bit, too.
3320         (ix86_cfun_abi): Likewise.
3321         (ix86_maybe_switch_abi): Adjust comment.
3322         (init_cumulative_args): Check for bit-ness in MS_ABI case.
3323         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
3324         instead of checking for SYSV_ABI.
3325         (ix86_nsaved_sseregs): Likewise.
3326         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
3327         to 16 bytes.
3328         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
3329         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
3330         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
3331         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
3332         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
3334 2011-03-25  Richard Guenther  <rguenther@suse.de>
3336         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
3337         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
3338         (verify_gimple): Remove.
3339         * tree-cfg.c (verify_gimple_call): Merge verification
3340         from verify_stmts.
3341         (verify_gimple_phi): Merge verification from verify_stmts.
3342         (verify_gimple_label): New function.
3343         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
3344         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
3345         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
3346         (verify_stmts): Rename to verify_gimple_in_cfg.
3347         (verify_gimple_in_cfg): New function.
3348         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
3349         * tree-ssa.c (verify_ssa): Likewise.
3350         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
3352 2011-03-25  Richard Guenther  <rguenther@suse.de>
3354         * passes.c (init_optimization_passes): Add FRE pass after
3355         early SRA.
3357 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
3358             Andrew Stubbs  <ams@codesourcery.com>
3360         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
3361         for Cortex-A8.
3362         (arm_movdi_vfp_cortexa8): New pattern.
3363         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
3364         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
3365         instructions when tuning for Cortex-A8.  Set attribute "arch".
3366         * config/arm/arm.md: Move include arm-tune.md up a bit.
3367         (define_attr "arch"): Add "onlya8" and "nota8" values.
3368         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
3370 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
3372         PR bootstrap/48282
3373         Revert:
3374         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3376         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
3377         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
3378         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
3379         * passes.c (init_optimization_passes): Move
3380         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
3382 2011-03-25  Kai Tietz  <ktietz@redhat.com>
3384         * c-typeck.c (comptypes_internal): Replace target
3385         hook call of comp_type_attributes by version in tree.c file.
3386         * gimple.c (gimple_types_compatible_p_1): Likewise.
3387         * tree-ssa.c (useless_type_conversion_p): Likewise.
3388         * tree.c (build_type_attribute_qual_variant): Likewise.
3389         (attribute_value_equal): New static helper function.
3390         (comp_type_attributes): New function.
3391         (merge_attributes): Use attribute_value_equal for comparison.
3392         (attribute_list_contained): Likewise.
3393         * tree.h (comp_type_attributes): New prototype.
3395 2011-03-25  Richard Guenther  <rguenther@suse.de>
3397         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
3398         of complex types at -O0.
3399         (verify_gimple_assign_binary): Likewise.
3400         (verify_gimple_assign_ternary): Likewise.
3402 2011-03-24  Mark Wielaard  <mjw@redhat.com>
3404         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
3405         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
3407 2011-03-24  Mark Wielaard  <mjw@redhat.com>
3409         PR debug/48041
3410         * dwarf2out.c (output_abbrev_section): Only write table when
3411         abbrev_die_table_in_use > 1.
3413 2011-02-24  Richard Henderson  <rth@redhat.com>
3415         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
3416         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
3417         (alpha_expand_unaligned_load_words): Use extql.
3418         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
3419         (emit_insxl): Handle all modes for consistency.
3421 2011-02-24  Richard Henderson  <rth@redhat.com>
3423         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
3424         (alpha_expand_unaligned_load): Likewise.
3425         (alpha_expand_unaligned_store): Likewise.
3426         (alpha_expand_unaligned_load_words): Likewise.
3427         (alpha_expand_unaligned_store_words): Likewise.
3428         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
3429         (alpha_split_lock_test_and_set_12): Likewise.
3430         (print_operand, alpha_fold_builtin_extxx): Likewise.
3431         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
3432         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
3433         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
3434         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
3435         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
3436         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
3437         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
3438         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
3439         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
3440         (extwl, extll, extql): Similarly.
3441         (inswh, inslh, insqh): Similarly.
3442         (mskbl, mskwl, mskll, mskql): Similarly.
3443         (mskwh, msklh, mskqh): Similarly.
3445 2011-02-24  Richard Henderson  <rth@redhat.com>
3447         * config/alpha/alpha.md (attribute isa): Add er, ner.
3448         (attribute enabled): Handle them.
3449         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
3451 2011-02-24  Richard Henderson  <rth@redhat.com>
3453         * config/alpha/alpha.md (attribute isa): Add vms.
3454         (attribute enabled): Handle it.
3455         (*movsf): Merge *movsf_{nofix,fix,nofp}.
3456         (*movdf): Merge *movdf_{nofix,fix,nofp}.
3457         (*movtf): Rename from *movtf_internal for consistency.
3458         (*movsi): Merge with *movsi_nt_vms.
3459         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
3460         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
3461         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
3462         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
3464 2011-02-24  Richard Henderson  <rth@redhat.com>
3466         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
3467         (extendqisi2, extendhisi2): Likewise.
3468         (extendqidi2): Simplify BWX/non-BWX expansions.
3469         (extendhidi2): Similarly.
3471 2011-02-24  Richard Henderson  <rth@redhat.com>
3473         * config/alpha/alpha.md (attribute isa): New.
3474         (attribute enabled): New.
3475         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
3476         (zero_extendqisi2, zero_extendqidi2): Similarly.
3477         (zero_extendhisi2, zero_extendhidi2): Similarly.
3478         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
3480 2011-02-24  Richard Henderson  <rth@redhat.com>
3482         * config/alpha/predicates.md (input_operand): Revert last change;
3483         update comment to mention 32-bit VMS rather than Windows.
3485 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3487         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
3488         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
3489         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
3490         * passes.c (init_optimization_passes): Move
3491         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
3493 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3495         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
3497 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
3499         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
3500         correctly.
3502 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
3504         PR debug/48204
3505         * simplify-rtx.c (simplify_const_unary_operation): Call
3506         real_convert when changing mode class with FLOAT_EXTEND.
3508 2011-03-24  Nick Clifton  <nickc@redhat.com>
3510         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
3511         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
3512         * config/rx/rx.c (rx_option_override): Set align_jumps,
3513         align_loops and align_labels if not set by the user.
3514         (rx_align_for_label): New function.
3515         (rx_max_skip_for_label): New function.
3516         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
3517         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
3518         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
3519         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
3520         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
3522 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3524         PR rtl-optimization/48263
3525         * optabs.c (expand_binop_directly): Reinstate convert_modes code
3526         and original commutative_p handling.  Use maybe_gen_insn.
3528 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3530         * reload.c (find_reloads_subreg_address): Add address_reloaded
3531         parameter and return true there if the full address has been
3532         reloaded.
3533         (find_reloads_toplev): Pass address_reloaded flag.
3534         (find_reloads_address_1): Don't use address_reloaded parameter.
3536 2011-03-24  Jeff Law  <law@redhat.com>
3538         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
3539         unused variable "ann".
3540         (remove_unused_locals): Likewise.
3542         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
3543         statement.
3545         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
3546         after it is freed.
3548 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3550         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
3551         for invalid symbolic addresses.
3552         (s390_secondary_reload): Don't use s390_check_symref_alignment for
3553         larl operands.
3555 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3557         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
3558         the argument in calls to fold_truth_not_expr.
3560 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3562         * tree.c (record_node_allocation_statistics): New function.
3563         (make_node_stat, copy_node_stat, build_string): Call it.
3564         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
3565         (build1_stat, build_omp_clause): Likewise.
3567 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3569         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
3570         last commit.
3572 2011-03-24  Richard Guenther  <rguenther@suse.de>
3574         PR tree-optimization/48271
3575         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
3576         blocks that still exist.
3578 2011-03-24  Richard Guenther  <rguenther@suse.de>
3580         PR tree-optimization/48270
3581         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
3582         not free datarefs before ddrs.
3584 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
3586         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
3587         from the address built for a reference with variable offset.
3589 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
3591         PR target/48237
3592         * config/i386/i386.md (*movdf_internal_rex64): Do not split
3593         alternatives that can be handled with movq or movabsq insn.
3594         (*movdf_internal): Disable for !TARGET_64BIT.
3595         (*movdf_internal_nointeger): Ditto.
3596         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
3598 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
3600         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
3601         (FUNCTION_ARG_ADVANCE): Likewise.
3602         * tm.texi.in: Change references to them to hook references.
3603         * tm.texi: Regenerate.
3604         * targhooks.c (default_function_arg): Eliminate check for target macro.
3605         (default_function_incoming_arg): Likewise.
3606         (default_function_arg_advance): Likewise.
3607         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
3608         (function_arg_advance): Likewise.
3609         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
3611 2011-03-24  Richard Guenther  <rguenther@suse.de>
3613         PR middle-end/48269
3614         * tree-object-size.c (addr_object_size): Do not double-account
3615         for MEM_REF offsets.
3617 2011-03-24  Diego Novillo  <dnovillo@google.com>
3619         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
3620         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
3621         (lto_input_data_block): Move from lto-opts.c.  Make extern.
3622         Update all users.
3623         (lto_input_string): Rename from input_string.  Make extern.
3624         Update all users.
3625         * lto-streamer-out.c (lto_output_string_with_length): Rename from
3626         output_string_with_length.
3627         Output 0 to indicate a non-NULL string.  Update all callers to
3628         not emit 0.
3629         (lto_output_string): Rename from output_string.  Make extern.
3630         Update all users.
3631         (lto_output_decl_state_streams): Make extern.
3632         (lto_output_decl_state_refs): Make extern.
3633         * lto-streamer.h (lto_input_string): Declare.
3634         (lto_input_data_block): Declare.
3635         (lto_output_string): Declare.
3636         (lto_output_string_with_length): Declare.
3637         (lto_output_decl_state_streams): Declare.
3638         (lto_output_decl_state_refs): Declare.
3640 2011-03-24  Richard Guenther  <rguenther@suse.de>
3642         PR tree-optimization/46562
3643         * tree.c (build_invariant_address): New function.
3644         * tree.h (build_invariant_address): Declare.
3645         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
3646         a renamed function moved ...
3647         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
3648         Take valueization callback parameter.
3649         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
3650         * gimple-fold.h: New file.
3651         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
3652         (ccp_fold, fold_const_aggregate_ref,
3653         fold_ctor_reference, fold_nonarray_ctor_reference,
3654         fold_array_ctor_reference, fold_string_cst_ctor_reference,
3655         get_base_constructor): Move ...
3656         * gimple-fold.c: ... here.
3657         (gimple_fold_stmt_to_constant_1): New function
3658         split out from ccp_fold.  Take a valueization callback parameter.
3659         Valueize all operands.
3660         (gimple_fold_stmt_to_constant): New wrapper function.
3661         (fold_const_aggregate_ref_1): New function split out from
3662         fold_const_aggregate_ref.  Take a valueization callback parameter.
3663         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
3664         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
3665         invariant POINTER_PLUS_EXPRs to invariant form.
3666         (vn_valueize): New function.
3667         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
3668         * tree-vrp.c (vrp_valueize): New function.
3669         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
3670         to fold statements to constants.
3671         * tree-ssa-pre.c (eliminate): Properly guard propagation of
3672         function declarations.
3673         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
3674         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
3676 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
3678         * config/h8300/predicates.md (jump_address_operand): Fix register
3679         mode check.
3681 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
3683         * doc/invoke.texi (max-stores-to-sink): Document.
3684         * params.h (MAX_STORES_TO_SINK): Define.
3685         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
3686         if either vectorization or if-conversion is disabled.
3687         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
3688         tree-vect-data-refs.c vect_equal_offsets.
3689         (dr_equal_offsets_p): New function.
3690         (find_data_references_in_bb): Remove static.
3691         * tree-data-ref.h (find_data_references_in_bb): Declare.
3692         (dr_equal_offsets_p): Likewise.
3693         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
3694         (vect_drs_dependent_in_basic_block): Update calls to
3695         vect_equal_offsets.
3696         (vect_check_interleaving): Likewise.
3697         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
3698         (cond_if_else_store_replacement): Rename to...
3699         (cond_if_else_store_replacement_1): ... this.  Change arguments and
3700         documentation.
3701         (cond_if_else_store_replacement): New function.
3702         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
3703         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
3705 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
3707         PR target/46934
3708         * config/arm/arm.md (casesi): Use the gen_int_mode() function
3709         to subtract lower bound instead of GEN_INT().
3711 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
3713         PR other/48179
3714         PR other/48221
3715         PR other/48234
3716         * doc/extend.texi (Alignment): Move section to match order in TOC.
3717         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
3718         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
3720 2011-03-23  Jeff Law  <law@redhat.com>
3722         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
3723         before removing the edge.
3725         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
3726         it may have been freed by redirect_branch_edge or
3727         redirect_edge_succ_nodup.
3729 2011-03-23  Richard Guenther  <rguenther@suse.de>
3731         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
3732         (check_va_list_escapes): Likewise.
3733         (check_all_va_list_escapes): Likewise.
3735 2011-03-23  Richard Guenther  <rguenther@suse.de>
3737         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
3738         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
3739         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
3740         (alias.o): Likewise.
3741         (ipa-type-escape.o): Remove.
3742         (ipa-struct-reorg.o): Likewise.
3743         (GTFILES): Remove ipa-struct-reorg.c.
3744         * alias.c: Do not include ipa-type-escape.h.
3745         * tree-ssa-alias.c: Likewise.
3746         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
3747         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
3748         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
3749         and ipa-type-escape passes.
3750         * tree-pass.h (pass_ipa_type_escape): Remove.
3751         (pass_ipa_struct_reorg): Likewise.
3752         * ipa-struct-reorg.h: Remove.
3753         * ipa-struct-reorg.c: Likewise.
3754         * ipa-type-escape.h: Likewise.
3755         * ipa-type-escape.c: Likewise.
3756         * doc/invoke.texi (-fipa-struct-reorg): Remove.
3757         (--param struct-reorg-cold-struct-ratio): Likewise.
3758         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3759         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
3760         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
3762 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3764         * config/s390/2084.md: Enable all insn reservations also for z9_ec
3765         cpu attribute value.
3766         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
3767         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
3768         * config/s390/s390.c (processor_flags_table): New constant array.
3769         (s390_handle_arch_option): Remove.
3770         (s390_handle_option): Remove s390_handle_arch_option invocations
3771         and OPT_mwarn_framesize_ handling.
3772         (s390_option_override): Remove s390_handle_arch_option invocation.
3773         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
3774         warnings.
3775         * config/s390/s390.md (cpu attribute): Add z9_ec value.
3776         * config/s390/s390.opt (s390_tune, s390_arch)
3777         (march=): Replace s390_arch_option enum and values with
3778         processor_type.  Set variable name to s390_arch.  Set
3779         initialization value.
3780         (mtune=): Replace s390_arch_option with processor_type.  Set
3781         variable name to s390_tune.  Set initialization value.
3783 2011-03-23  Julian Brown  <julian@codesourcery.com>
3785         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
3786         accesses which are not naturally aligned.
3788 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3790         PR target/47553
3791         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
3793 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
3795         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
3796         parameter from "int" to "enum insn_code".
3797         (expand_operand_type): New enum.
3798         (expand_operand): New structure.
3799         (create_expand_operand): New function.
3800         (create_fixed_operand, create_output_operand): Likewise
3801         (create_input_operand, create_convert_operand_to): Likewise.
3802         (create_convert_operand_from, create_address_operand): Likewise.
3803         (create_integer_operand): Likewise.
3804         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
3805         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
3806         (expand_insn, expand_jump_insn): Likewise.
3807         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
3808         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
3809         (expand_movstr, expand_builtin___clear_cache): Likewise.
3810         (expand_builtin_lock_release): Likewise.
3811         * explow.c (allocate_dynamic_stack_space): Likewise.
3812         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
3813         and use the default handling in that case.
3814         * expmed.c (check_predicate_volatile_ok): Delete.
3815         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
3816         (emit_cstore): Likewise.
3817         * expr.c (emit_block_move_via_movmem): Likewise.
3818         (set_storage_via_setmem, expand_assignment): Likewise.
3819         (emit_storent_insn, try_casesi): Likewise.
3820         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
3821         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
3822         (expand_vec_shift_expr, expand_binop_directly): Likewise.
3823         (expand_twoval_unop, expand_twoval_binop): Likewise.
3824         (expand_unop_direct, emit_indirect_jump): Likewise.
3825         (emit_conditional_move, vector_compare_rtx): Likewise.
3826         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
3827         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
3828         (expand_sync_lock_test_and_set): Likewise.
3829         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
3830         (emit_unop_insn): Likewise.
3831         (expand_copysign_absneg): Change icode to an insn_code.
3832         (create_convert_operand_from_type): New function.
3833         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
3834         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
3835         (expand_insn, expand_jump_insn): Likewise.
3836         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
3837         than const_int_operand for operand 2.
3839 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3841         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
3842         if possible.
3844 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3846         * emit-rtl.c (emit_pattern_before_noloc): New function.
3847         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
3848         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
3849         (emit_pattern_after_noloc): New function.
3850         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
3851         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
3853 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3855         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
3856         (__ffsDI2): Likewise.
3858 2011-03-22  Richard Henderson  <rth@redhat.com>
3860         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
3861         of !TARGET_ABI_OPEN_VMS.
3862         (alpha_trampoline_init, alpha_start_function): Likewise.
3863         (alpha_expand_epilogue, alpha_file_start): Likewise.
3864         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
3865         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
3866         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
3867         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
3868         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
3870 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3872         * config/s390/s390-opts.h: New.
3873         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
3874         s390_arch_flags, s390_warn_framesize, s390_stack_size,
3875         s390_stack_guard): Remove.
3876         (s390_handle_arch_option): Return void.  Take enum
3877         s390_arch_option value instead of string and searching array.
3878         (s390_handle_option): Don't assert that global structures are in
3879         use.  Access variables via opts pointer.  Use error_at.  Don't use
3880         sscanf for -mstack-guard= or -mstack-size=.  Update call to
3881         s390_handle_arch_option.
3882         (s390_option_override): Update call to s390_handle_arch_option.
3883         (s390_emit_prologue): Use %d format for s390_stack_size in
3884         diagnostic.  Use %wd for HOST_WIDE_INT.
3885         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
3886         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
3887         * config/s390/s390.opt (config/s390/s390-opts.h): New
3888         HeaderInclude entry.
3889         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
3890         s390_arch_flags, s390_warn_framesize): New Variable entries.
3891         (s390_arch_option): New Enum and EnumValue entries.
3892         (march=): Use Enum instead of Var.
3893         (mstack-guard=, mstack-size=): Use UInteger and Var.
3894         (mtune=): Use Enum.
3896 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3898         * config/score/score.c (score_handle_option): Don't assert that
3899         global structures are in use.  Access target_flags via opts
3900         pointer.  Use value of -march= option to determine target_flags
3901         settings.
3902         * config/score/score.opt (march=): Use Enum.
3903         (score_arch): New Enum and EnumValue entries.
3905 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3907         * config/mep/mep.c (option_mtiny_specified): Remove.
3908         (mep_option_override): Move register handling for -mivc2 from
3909         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
3910         instead of option_mtiny_specified.
3911         (mep_handle_option): Access target_flags via opts pointer.  Don't
3912         assert that global structures are in use.  Defer part of -mivc2
3913         handling and move it to mep_option_override.
3914         * config/mep/mep.opt (IVC2): New Mask entry.
3915         (mivc2): Use Var and Defer instead of Mask.
3917 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3919         * config/v850/v850-opts.h: New.
3920         * config/v850/v850.c (small_memory): Replace with
3921         small_memory_physical_max array.  Make that array static const.
3922         (v850_handle_memory_option): Take integer value of argument.  Take
3923         gcc_options pointer, option text and location.  Return void.
3924         Update for changes to small memory structures.
3925         (v850_handle_option): Access target_flags via opts pointer.  Don't
3926         assert that global structures are in use.  Update calls to
3927         v850_handle_memory_option.
3928         (v850_encode_data_area): Update references to small memory settings.
3929         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
3930         (enum small_memory_type): Move to v850-opts.h.
3931         * config/v850/v850.opt (config/v850/v850-opts.h): New
3932         HeaderInclude entry.
3933         (small_memory_max): New Variable entry.
3934         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
3935         (mtda, mzda): Likewise.
3937 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3939         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
3940         pointer.  Don't assert that global structures are in use.
3942 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3944         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
3945         via opts pointer.  Don't assert that global structures are in use.
3947 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3949         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
3950         (munix=93): Use Var.
3951         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
3952         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
3953         * config/pa/pa-opts.h: New.
3954         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
3955         (pa_handle_option): Don't assert that global structures are in
3956         use.  Access target_flags via opts pointer.  Don't handle
3957         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
3958         OPT_munix_98 here.
3959         (pa_option_override): Handle deferred OPT_mfixed_range_.
3961 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3963         * config/mn10300/mn10300-opts.h: New.
3964         * config/mn10300/mn10300.c (mn10300_processor,
3965         mn10300_tune_string): Remove.
3966         (mn10300_handle_option): Don't assert that global structures are
3967         in use.  Access mn10300_processor via opts pointer.  Don't handle
3968         OPT_mtune_ here.
3969         * config/mn10300/mn10300.h (enum processor_type): Move to
3970         mn10300-opts.h.
3971         (mn10300_processor): Remove.
3972         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
3973         HeaderInclude entry.
3974         (mn10300_processor): New Variable entry.
3975         (mtune=): Use Var.
3977 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3979         * config/microblaze/microblaze.c: Don't include opts.h.
3980         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
3981         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
3982         (mno-clearbss): Use Var and Warn.
3984 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3986         * config/m32r/m32r-opts.h: New.
3987         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
3988         (m32r_handle_option): Don't assert that global structures are in
3989         use.  Access target_flags and m32r_cache_flush_func via opts
3990         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
3991         OPT_mno_flush_trap here.
3992         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
3993         include of m32r-opts.h.
3994         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
3995         HeaderInclude entry.
3996         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
3997         (mmodel=): Use Enum and Var.
3998         (m32r_model): New Enum and EnumValue entries.
3999         (mno-flush-trap): Use Var.
4000         (msdata=): Use Enum and Var.
4001         (m32r_sdata): New Enum and EnumValue entries.
4003 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4005         * config/m32c/m32c.c: Don't include opts.h.
4006         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
4007         m32c_handle_option): Remove.
4008         (m32c_option_override): Check global_options_set.x_target_memregs
4009         instead of target_memregs_set.
4010         * config/m32c/m32c.h (target_memregs): Remove.
4011         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
4012         variable.
4014 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4016         * config/iq2000/iq2000-opts.h: New.
4017         * config/iq2000/iq2000.c: Don't include opts.h.
4018         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
4019         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
4020         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
4021         HeaderInclude entry.
4022         (iq2000_tune): New Variable entry.
4023         (march=): Add comment.  Use Enum.
4024         (iq2000_arch): New Enum and EnumValue entries.
4025         (mcpu=): Use Enum and Var.
4026         (iq2000_tune): New Enum and EnumValue entries.
4028 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4030         * config/ia64/ia64-opts.h: New.
4031         * config/ia64/ia64.c (ia64_tune): Remove.
4032         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
4033         here.  Use error_at.
4034         (ia64_option_override): Handle deferred OPT_mfixed_range_.
4035         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
4036         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
4037         HeaderInclude entry.
4038         (ia64_tune): New Variable entry.
4039         (mfixed-range=): Use Defer and Var.
4040         (mtune=): Use Enum and Var.
4041         (ia64_tune): New Enum and EnumValue entries.
4043 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4045         * config/frv/frv-opts.h: New.
4046         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
4047         frv-opts.h.
4048         (frv_cpu_type): Remove.
4049         * config/frv/frv.c: Don't include opts.h.
4050         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
4051         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
4052         (frv_cpu_type): New Variable entry.
4053         (frv_cpu): New Enum and EnumValue entries.
4055 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4057         * config/cris/cris.c (cris_handle_option): Access target_flags via
4058         opts pointer.  Don't assert that global structures are in use.
4059         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
4060         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
4062 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4064         * config/bfin/bfin-opts.h: New.
4065         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
4066         bfin_si_revision, bfin_workarounds): Remove.
4067         (bfin_cpus): Make static const.
4068         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
4069         not bfin_lib_id_given.
4070         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
4071         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
4072         pointer. Use error_at.  Don't assert that global structures are in use.
4073         * config/bfin/bfin.h: Include bfin-opts.h.
4074         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
4075         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
4076         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
4077         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
4078         entries.
4080 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4082         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
4083         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
4084         or -msoft-float here.
4085         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
4086         -msoft-float and -mhard-float.
4087         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
4088         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4089         msoft-float.
4090         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
4091         -msoft-float.
4092         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
4093         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
4094         not mhard-float.
4095         (LIBGCC_SPEC): Don't handle -msoft-float.
4096         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
4097         -mhard-float.
4098         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
4099         msoft-float.
4100         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
4101         -mfloat-abi=*, not -msoft-float and -mhard-float.
4102         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
4103         -msoft-float.
4104         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
4105         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
4106         mhard-float and msoft-float.
4107         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
4108         mfloat-abi=soft in comments, not mhard-float and msoft-float.
4109         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4110         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
4111         mhard-float.
4112         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
4113         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
4114         msoft-float.
4115         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
4116         not mhard-float.
4117         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
4118         not msoft-float.
4120 2011-03-22  Richard Henderson  <rth@redhat.com>
4122         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
4123         TARGET_ABI_WINDOWS_NT.
4124         (alpha_output_function_end_prologue): Likewise.
4125         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
4126         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4127         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
4128         (trap, *movsi_nt_vms): Likewise.
4129         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
4130         (*tablejump_osf_nt_internal): Remove.
4131         * config/alpha/predicates.md (input_operand): Only test Pmode.
4133 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4135         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
4136         via opts pointer.  Use error_at.  Don't assert that global
4137         structures are in use.
4139 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4141         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
4142         (ix86_handle_option): Access ix86_isa_flags and
4143         ix86_isa_flags_explicit via opts pointer.  Don't assert that
4144         global structures are in use.
4145         (ix86_function_specific_save, ix86_function_specific_restore):
4146         Update ix86_isa_flags_explicit field name.
4147         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
4148         (ix86_isa_flags_explicit): Rename TargetSave entry to
4149         x_ix86_isa_flags_explicit.
4151 2011-03-22  Richard Henderson  <rth@redhat.com>
4153         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
4154         (alpha_option_override, direct_return): Likewise.
4155         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
4156         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
4157         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
4158         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
4159         (alpha_expand_epilogue, alpha_end_function): Likewise.
4160         (alpha_init_libfuncs): Likewise.
4161         (struct machine_function): Remove unicosmk members.
4162         (print_operand) ['t']: Remove.
4163         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
4164         unicosmk_output_module_name, unicosmk_output_common,
4165         current_section_align, unicosmk_output_text_section_asm_op,
4166         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
4167         unicosmk_section_type_flags, unicosmk_unique_section,
4168         unicosmk_asm_named_section, unicosmk_insert_attributes,
4169         unicosmk_output_align, unicosmk_defer_case_vector,
4170         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
4171         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
4172         unicosmk_output_ssib, unicosmk_add_call_info_word,
4173         unicosmk_extern_head, unicosmk_output_default_externs,
4174         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
4175         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
4176         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
4177         * config/alpha/alpha-protos.h: Update.
4178         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
4179         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
4180         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
4181         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
4182         (*mulsi_se, mulvsi3): Likewise.
4183         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
4184         (*divmodsi_internal, call, call_value, realign): Likewise.
4185         (moddi3, umoddi3): Likewise; remove duplicate expander.
4186         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
4187         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
4188         (*movdi_nofix): Remove r/U alternative.
4189         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
4190         * config/alpha/constraints.md ("U"): Remove.
4191         * config/alpha/predicates.md (call_operand"): Don't test
4192         TARGET_ABI_UNICOSMK.
4194 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4196         * target.def (handle_option): Take gcc_options and
4197         cl_decoded_option pointers and location_t.
4198         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
4199         * doc/tm.texi: Regenerate.
4200         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
4201         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
4202         * lto-opts.c (lto_reissue_options): Generate option structure for
4203         targetm.handle_option call.
4204         * opts.c (target_handle_option): Update call to
4205         targetm.handle_option.  Remove assertions about values now passed
4206         down to hook.
4207         * targhooks.c (default_target_handle_option): New.
4208         * targhooks.h (default_target_handle_option): Declare.
4209         * config/alpha/alpha.c: Include opts.h.
4210         (alpha_handle_option): Update to new hook interface.
4211         * config/arm/arm.c: Include opts.h.
4212         (arm_handle_option): Update to new hook interface.
4213         * config/arm/t-arm (arm.o): Update dependencies.
4214         * config/bfin/bfin.c: Include opts.h.
4215         (bfin_handle_option): Update to new hook interface.
4216         * config/cris/cris.c: Include opts.h.
4217         (cris_handle_option): Update to new hook interface.
4218         * config/frv/frv.c: Include opts.h.
4219         (frv_handle_option): Update to new hook interface.
4220         * config/i386/i386.c: Include opts.h.
4221         (ix86_handle_option): Update to new hook interface.
4222         (ix86_valid_target_attribute_inner_p): Generate option structure
4223         for call to ix86_handle_option.
4224         * config/i386/t-i386 (i386.o): Update dependencies.
4225         * config/ia64/ia64.c: Include opts.h.
4226         (ia64_handle_option): Update to new hook interface.
4227         * config/ia64/t-ia64 (ia64.o): Update dependencies.
4228         * config/iq2000/iq2000.c: Include opts.h.
4229         (iq2000_handle_option): Update to new hook interface.
4230         * config/m32c/m32c.c: Include opts.h.
4231         (m32c_handle_option): Update to new hook interface.
4232         * config/m32r/m32r.c: Include opts.h.
4233         (m32r_handle_option): Update to new hook interface.
4234         * config/m68k/m68k.c: Include opts.h.
4235         (m68k_handle_option): Update to new hook interface.
4236         * config/mep/mep.c: Include opts.h.
4237         (mep_handle_option): Update to new hook interface.
4238         * config/microblaze/microblaze.c: Include opts.h.
4239         (microblaze_handle_option): Update to new hook interface.
4240         * config/mips/mips.c: Include opts.h.
4241         (mips_handle_option): Update to new hook interface.
4242         * config/mn10300/mn10300.c: Include opts.h.
4243         (mn10300_handle_option): Update to new hook interface.
4244         * config/pa/pa.c: Include opts.h.
4245         (pa_handle_option): Update to new hook interface.
4246         * config/pdp11/pdp11.c: Include opts.h.
4247         (pdp11_handle_option): Update to new hook interface.
4248         * config/rs6000/rs6000.c: Include opts.h.
4249         (rs6000_handle_option): Update to new hook interface.
4250         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
4251         * config/rx/rx.c: Include opts.h.
4252         (rx_handle_option): Update to new hook interface.
4253         * config/s390/s390.c: Include opts.h.
4254         (s390_handle_option): Update to new hook interface.
4255         * config/score/score.c: Include opts.h.
4256         (score_handle_option): Update to new hook interface.
4257         * config/sh/sh.c: Include opts.h.
4258         (sh_handle_option): Update to new hook interface.
4259         * config/sparc/sparc.c: Include opts.h.
4260         (sparc_handle_option): Update to new hook interface.
4261         * config/v850/v850.c: Include opts.h.
4262         (v850_handle_option): Update to new hook interface.
4264 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4266         * gcc.c (driver_unknown_option_callback): Only permit and save
4267         unknown -Wno- options.
4268         (driver_wrong_lang_callback): Save options directly instead of via
4269         driver_unknown_option_callback.
4271 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
4273         * combine.c (simplify_set): Try harder to find the best CC mode when
4274         simplifying a nested COMPARE on the RHS.
4276 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
4278         * config/alpha/gnu.h: Remove.
4279         * config/arc: Remove directory.
4280         * config/arm/netbsd.h: Remove.
4281         * config/arm/t-pe: Remove.
4282         * config/crx: Remove directory.
4283         * config/i386/netbsd.h: Remove.
4284         * config/m68hc11: Remove directory.
4285         * config/m68k/uclinux-oldabi.h: Remove.
4286         * config/mcore/mcore-pe.h: Remove.
4287         * config/mcore/t-mcore-pe: Remove.
4288         * config/netbsd-aout.h: Remove.
4289         * config/rs6000/gnu.h: Remove.
4290         * config/sh/sh-symbian.h: Remove.
4291         * config/sh/symbian-base.c: Remove.
4292         * config/sh/symbian-c.c: Remove.
4293         * config/sh/symbian-cxx.c: Remove.
4294         * config/sh/symbian-post.h: Remove.
4295         * config/sh/symbian-pre.h: Remove.
4296         * config/sh/t-symbian: Remove.
4297         * config/svr3.h: Remove.
4298         * config/vax/netbsd.h: Remove.
4299         * config.build: Don't handle i[34567]86-*-pe.
4300         * config.gcc: Remove handling of deprecations for most deprecated
4301         targets.
4302         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
4303         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
4304         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
4305         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
4306         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
4307         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
4308         Remove cases.
4309         * config.host: Don't handle i[34567]86-*-pe.
4310         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
4311         (ASM_SPEC32): Don't handle -mcall-gnu.
4312         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
4313         -mcall-gnu.
4314         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
4315         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
4316         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
4317         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
4318         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
4319         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
4320         conditional on SYMBIAN.
4321         * configure.ac: Don't handle powerpc*-*-gnu*.
4322         * configure: Regenerate.
4323         * doc/extend.texi (interrupt attribute): Don't mention CRX.
4324         * doc/install-old.texi (m6811, m6812): Don't mention.
4325         * doc/install.texi (arc-*-elf*): Don't document multilib option.
4326         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
4327         (m68k-uclinuxoldabi): Don't mention.
4328         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
4329         Remove.
4330         (-mcall-gnu): Remove.
4331         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
4332         families): Remove constraint documentation.
4334 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
4336         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
4337         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
4338         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
4340 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
4342         * config/avr/avr-protos.h (expand_epilogue): Change prototype
4343         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
4344         * config/avr/avr.c (init_cumulative_args)
4345         (avr_function_arg_advance): Use it.
4346         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
4347         sibcall epilogues.
4348         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
4349         (avr_function_ok_for_sibcall): ...this new function.
4350         (avr_lookup_function_attribute1): New static Function.
4351         (avr_naked_function_p, interrupt_function_p)
4352         (signal_function_p, avr_OS_task_function_p)
4353         (avr_OS_main_function_p): Use it.
4354         * config/avr/avr.md ("sibcall", "sibcall_value")
4355         ("sibcall_epilogue"): New expander.
4356         ("*call_insn", "*call_value_insn"): New insn.
4357         ("call_insn", "call_value_insn"): Remove
4358         ("call", "call_value", "epilogue"): Change expander to handle
4359         sibling calls.
4361 2011-03-21  Nick Clifton  <nickc@redhat.com>
4363         * doc/invoke.texi (Overall Options): Move closing brace to end of
4364         options list.
4365         (Optimization Options): Add missing @gol.
4366         (Directory Options): Likewise.
4367         (i386 and x86-64 Options): Likewise.
4368         (RS6000 and PowerPC Options): Likewise.
4369         (i386 and x86-64 Windows Options): Likewise.
4370         (V850 Options): Add text missing from descriptions.
4372 2011-03-22  Richard Henderson  <rth@redhat.com>
4374         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
4375         (avr_incoming_return_addr_rtx): New.
4376         (emit_push_byte): New.
4377         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
4378         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
4379         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
4380         (emit_pop_byte): New.
4381         (expand_epilogue): Use it.  Pop frame pointer by bytes.
4382         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
4383         (INCOMING_RETURN_ADDR_RTX): New.
4384         (INCOMING_FRAME_SP_OFFSET): New.
4385         (ARG_POINTER_CFA_OFFSET): New.
4386         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
4387         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
4388         (pophi): Remove.
4390         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
4392 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4394         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4395         (FUNCTION_ARG_ADVANCE): Likewise.
4396         * tm.texi.in: Change references to them to hook references.
4397         * tm.texi: Regenerate.
4398         * targhooks.c (default_function_arg): Eliminate check for target
4399         macro.
4400         (default_function_incoming_arg): Likewise.
4401         (default_function_arg_advance): Likewise.
4402         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4403         (function_arg_advance): Likewise.
4404         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4406 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
4408         * tree.c (build_call_1): New function.
4409         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
4411 2011-03-22  Richard Guenther  <rguenther@suse.de>
4413         PR tree-optimization/48228
4414         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
4415         for single-arg PHIs.
4417 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
4419         PR rtl-optimization/48143
4420         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
4421         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
4422         sse2_cvtps2pd): Likewise.
4424 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4426         * recog.c (canonicalize_change_group): Use validate_unshare_change.
4428 2011-03-22  Richard Guenther  <rguenther@suse.de>
4430         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
4431         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
4432         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
4433         and REALIGN_LOAD_EXPR.
4434         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
4435         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
4436         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
4437         DOT_PROD_EXPR case ...
4438         (expand_expr_real_2): ... here.
4439         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
4440         and REALIGN_LOAD_EXPR.
4441         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
4442         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
4443         (vect_create_epilog_for_reduction): Likewise.
4444         (vectorizable_reduction): Likewise.
4445         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
4446         * tree-vect-stmts.c (vectorizable_load): Likewise.
4448 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
4450         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
4452 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4454         * config/s390/s390.c (s390_delegitimize_address): Fix offset
4455         handling for PLTOFF/GOTOFF.
4457 2011-03-22  Nick Clifton  <nickc@redhat.com>
4459         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
4460         trailing backslash from the end of the macro definition.
4462 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4464         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
4465         and PLT unspecs.
4467 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
4469         * expr.h (prepare_operand): Move to...
4470         * optabs.h (prepare_operand): ...here and change the insn code
4471         parameter from "int" to "enum insn_code".
4472         (insn_operand_matches): Declare.
4473         * expr.c (init_expr_target): Use insn_operand_matches.
4474         (compress_float_constant): Likewise.
4475         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
4476         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
4477         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
4478         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
4479         Likewise.
4480         (gen_cond_trap): Likewise.
4481         (prepare_operand): Likewise.  Change icode to an insn_code.
4482         (insn_operand_matches): New function.
4483         * reload.c (find_reloads_address_1): Use insn_operand_matches.
4484         * reload1.c (gen_reload): Likewise.
4485         * targhooks.c (default_secondary_reload): Likewise.
4487 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
4489         * config/alpha/alpha.md (unspec): New define_c_enum.
4490         (unspecv): Ditto.
4492 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
4494         PR debug/48214
4495         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
4496         between a call and its CALL_ARG_LOCATION note.
4498 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
4500         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
4502 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
4504         PR c/42544
4505         PR c/48197
4506         * c-common.c (shorten_compare): If primopN is first sign-extended
4507         to opN and then zero-extended to result type, set primopN to opN.
4509 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
4511         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
4512         for barrier handlers.
4514 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4516         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
4517         UNSPEC constants to be in the unspec enumeration, and redefine
4518         all UNSPECV constants to be in the unspecv enumeration, so that
4519         dumps print which unspec/unspec_volatile this is.
4520         * config/rs6000/vector.md (UNSPEC_*): Ditto.
4521         * config/rs6000/paired.md (UNSPEC_*): Ditto.
4522         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
4523         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
4524         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
4526         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
4527         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
4528         UNSPECV_LWSYNC, since these are used as unspec_volatile.
4529         * config/rs6000/sync.md (isync, lwsync): Ditto.
4531 2011-03-21  Richard Guenther  <rguenther@suse.de>
4533         * params.def (lto-min-partition): Fix typo.
4535 2011-03-21  Richard Guenther  <rguenther@suse.de>
4537         PR c/47939
4538         * c-decl.c (grokdeclarator): Drop to the main variant only
4539         for array types.  Drop flag_gen_aux_info check.
4541 2011-03-21  Richard Guenther  <rguenther@suse.de>
4543         PR translation/47911
4544         * params.def (lto-partitions): Fix typo.
4545         (lto-min-partition): Fix wording.
4547 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
4549         * config/rs6000/t-freebsd: Remove duplication from file.
4551 2011-03-21  Richard Guenther  <rguenther@suse.de>
4553         PR middle-end/47661
4554         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
4556 2011-03-21  Richard Guenther  <rguenther@suse.de>
4558         PR lto/48210
4559         * params.def (lto-partitions): Require at least 1 partition.
4561 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4563         * gthr-solaris.h: Remove.
4564         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
4565         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
4566         (LIB_SPEC): Likewise.
4567         * config/sol2.opt (threads): Remove.
4568         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
4569         (sparc*-*-solaris2*): Likewise.
4570         * configure.ac (enable_threads): Enable solaris support.
4571         * configure: Regenerate.
4572         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
4573         * doc/install.texi (Configuration, --enable-threads=lib): Remove
4574         solaris.
4576 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4578         * config.gcc: Obsolete *-*-solaris2.8*.
4579         * doc/install.texi (Specific, *-*-solaris2*): Document it.
4581 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4583         PR bootstrap/48135
4584         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
4585         reference.  Solaris 8 perl works.
4587 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4589         PR bootstrap/48135
4590         * doc/install.texi (Prerequisites): Move jar etc. up.
4591         Explain support library version requirements.
4593 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4595         PR bootstrap/48135
4596         * doc/install.texi (Prerequisites): Move Perl to build
4597         requirements.  Always necessary on Solaris 2 with Sun ld.
4599 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4601         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
4602         binutils 2.21.
4603         (Specific, i?86-*-solaris2.[89]): Likewise.
4604         (Specific, i?86-*-solaris2.10): Likewise.
4605         (Specific, mips-sgi-irix6): Likewise.
4606         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
4607         Update for binutils 2.21.
4609 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4611         * configure.ac (gcc_cv_lto_plugin): Fix typo.
4612         Allow -fuse-linker-plugin for non-default plugin linker.
4613         * configure: Regenerate.
4615 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
4617         PR bootstrap/48167
4618         * gengtype.c (files_rules): Added rule for cp/parser.h.
4620 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
4622         PR target/48213
4623         * config/s390/s390.c (s390_delegitimize_address): Don't call
4624         lowpart_subreg if orig_x has BLKmode.
4626 2011-03-21  Kai Tietz  <ktietz@redhat.com>
4628         PR target/12171
4629         * doc/plugins.texi: Adjust documentation for plugin register_callback.
4630         * tree.h (attribute_spec): Add new member affects_type_identity.
4631         * attribs.c (empty_attribute_table): Adjust attribute_spec
4632         initializers.
4633         * config/alpha/alpha.c: Likewise.
4634         * config/arc/arc.c: Likewise.
4635         * config/arm/arm.c: Likewise.
4636         * config/avr/avr.c: Likewise.
4637         * config/bfin/bfin.c: Likewise.
4638         * config/crx/crx.c: Likewise.
4639         * config/darwin.h: Likewise.
4640         * config/h8300/h8300.c: Likewise.
4641         * config/i386/cygming.h: Likewise.
4642         * config/i386/i386.c: Likewise.
4643         * config/ia64/ia64.c: Likewise.
4644         * config/m32c/m32c.c: Likewise.
4645         * config/m32r/m32r.c: Likewise.
4646         * config/m68hc11/m68hc11.c: Likewise.
4647         * config/m68k/m68k.c: Likewise.
4648         * config/mcore/mcore.c: Likewise.
4649         * config/mep/mep.c: Likewise.
4650         * config/microblaze/microblaze.c: Likewise.
4651         * config/mips/mips.c: Likewise.
4652         * config/rs6000/rs6000.c: Likewise.
4653         * config/rx/rx.c: Likewise.
4654         * config/sh/sh.c: Likewise.
4655         * config/sol2.h: Likewise.
4656         * config/sparc/sparc.c: Likewise.
4657         * config/spu/spu.c: Likewise.
4658         * config/stormy16/stormy16.c: Likewise.
4659         * config/v850/v850.c: Likewise.
4661 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
4663         * simplify-rtx.c (simplify_binary_operation_1): Handle
4664         (xor (and A B) C) case when B and C are both constants.
4666 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
4668         * tree-dfa.c (add_referenced_var): Fix typo in comment.
4670 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
4672         PR bootstrap/48168
4673         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
4675 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
4677         PR rtl-optimization/48156
4678         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
4679         assume df and df_lr are not NULL.
4681 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4683         PR debug/48023
4684         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
4685         between a call and its CALL_ARG_LOCATION note.
4687 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
4689         PR debug/48178
4690         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4691         between a call and its corresponding CALL_ARG_LOCATION note.
4693 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
4695         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
4696         instead of loop. Use HARD_REGISTER_NUM_P predicate.
4697         * haifa-sched.c (setup_ref_regs): Ditto.
4698         * caller-save.c (add_used_regs_1): Ditto.
4699         * dse.c (look_for_hardregs): Ditto.
4700         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
4701         * sched-rgn.c (check_live_1): Ditto.
4703 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4705         * c-decl.c (diagnose_mismatched_decls): Give an error for
4706         redefining a typedef with variably modified type.
4708 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
4710         * c-decl.c (grokfield): Don't allow typedefs for structures or
4711         unions with no tag by default.
4712         * doc/extend.texi (Unnamed Fields): Update.
4714 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
4716         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
4717         Rewrite using indirect functions.
4718         (lwp_slwpcb): Ditto.
4719         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
4720         (avx_vinsertf128<mode>): Ditto.
4722 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4724         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
4725         unspecs.
4727 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4729         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
4730         splitting between a call and its corresponding CALL_ARG_LOCATION note.
4732 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4734         PR rtl-optimization/48170
4735         * gcse.c (hoist_code): Remove bogus asserts.
4737 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
4739         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
4740         computation for prologue/epilogue.
4742 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4744         * Makefile.in (check-consistency): Remove.
4746 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
4748         PR debug/48176
4749         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
4750         arange_table_in_use is 0, but either text_section_used or
4751         cold_text_section_used is true.  Don't call it if
4752         !info_section_emitted.
4754 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
4756         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
4757         FUNCTION_VALUE_REGNO_P): Remove.
4758         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
4759         Remove.
4760         * config/avr/avr.c (avr_ret_register): Make static inline.
4761         (avr_function_value_regno_p): New function.
4762         (avr_libcall_value): Make static. Add 'func' argument.
4763         (avr_function_value): Make static. Rename 'func' argument to
4764         'fn_decl_or_type', forward it to avr_libcall_value. Call
4765         avr_ret_register function instead of RET_REGISTER macro.
4766         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
4768 2011-03-18  Jason Merrill  <jason@redhat.com>
4770         PR c++/23372
4771         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
4773 2011-03-18  Richard Guenther  <rguenther@suse.de>
4775         * doc/install.texi (--enable-gold): Remove.
4776         (--with-plugin-ld): Document.
4777         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
4779 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
4781         PR middle-end/47790
4782         * expr.c (optimize_bitfield_assignment_op): Revamp to work
4783         again after expansion changes.
4785 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
4787         * combine.c (try_combine): Do simplification only call of
4788         subst() on i2 even when i1 is present. Update comments.
4790 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4792         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
4793         and UNSPEC_PCREL_SYMOFF.
4795 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4797         * config/s390/s390.md: Use define_c_enum for the unspec constant
4798         definitions.
4800 2011-03-18  Richard Henderson  <rth@redhat.com>
4801             Jakub Jelinek  <jakub@redhat.com>
4803         PR bootstrap/48161
4804         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
4805         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
4807 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4809         PR middle-end/47725
4810         * combine.c (cant_combine_insn_p): Don't check zero/sign
4811         extended hard registers.
4813 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4815         PR middle-end/47725
4816         * combine.c (cant_combine_insn_p): Check zero/sign extended
4817         hard registers.
4819 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
4821         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4822         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
4823         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
4824         Change return type to bool.
4825         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4827 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4829         PR debug/48163
4830         * var-tracking.c (prepare_call_arguments): If CALL target
4831         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
4832         pc instead of looking it up using cselib_lookup and use
4833         Pmode for it if x has VOIDmode.
4834         * dwarf2out.c (gen_subprogram_die): If also both first and
4835         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
4837         PR debug/48163
4838         * function.c (assign_parms): For data.passed_pointer parms
4839         use MEM of data.entry_parm instead of data.entry_parm itself
4840         as DECL_INCOMING_RTL.
4841         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
4842         also when passed and declared mode is the same, DECL_RTL
4843         is a MEM with pseudo as address and DECL_INCOMING_RTL is
4844         a MEM too.
4846 2011-03-16  Jeff Law  <law@redhat.com>
4848         PR rtl-optimization/37273
4849         * ira-costs.c (scan_one_insn): Detect constants living in memory and
4850         handle them like argument loads from stack slots.  Do not double
4851         count memory for memory constants and argument loads from stack slots.
4853 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4855         PR debug/48160
4856         * var-tracking.c (prepare_call_arguments): Check SUBREG.
4858 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4860         PR target/48171
4861         * config/i386/i386.opt: Add Save to -mavx and -mfma.
4863 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4865         PR bootstrap/48153
4866         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
4867         if dwarf_strict.
4868         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
4869         Clear call_arg_locations and call_arg_loc_last always.
4871         PR middle-end/48152
4872         * var-tracking.c (prepare_call_arguments): If argument needs to be
4873         passed by reference, adjust argtype and mode.
4875 2011-03-17  Richard Guenther  <rguenther@suse.de>
4877         PR middle-end/48134
4878         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
4879         a value make sure to fold the statement.
4881 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
4883         PR target/43872
4884         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
4885         return condition with !cfun->calls_alloca.
4887 2011-03-17  Richard Guenther  <rguenther@suse.de>
4889         PR bootstrap/48148
4890         * lto-cgraph.c (input_overwrite_node): Clear the abstract
4891         origin for decls in other ltrans units.
4892         (input_varpool_node): Likewise.
4894 2011-03-17  Richard Guenther  <rguenther@suse.de>
4896         PR middle-end/48165
4897         * tree-object-size.c (compute_object_offset): Properly return
4898         the offset operand of MEM_REFs as sizetype.
4900 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
4902         PR rtl-optimization/48141
4903         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
4904         * dse.c: Include params.h.
4905         (active_local_stores_len): New variable.
4906         (add_wild_read, dse_step1): Clear it when setting active_local_stores
4907         to NULL.
4908         (record_store, check_mem_read_rtx): Decrease it when removing
4909         from the chain.
4910         (scan_insn): Likewise.  Increase it when adding to chain, if it
4911         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
4912         set active_local_stores to NULL before the addition.
4913         * Makefile.in (dse.o): Depend on $(PARAMS_H).
4915         PR rtl-optimization/48141
4916         * dse.c (record_store): If no positions are needed in an insn
4917         that cannot be deleted, at least unchain it from active_local_stores.
4919 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
4921         PR debug/47510
4922         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
4923         (lookup_type_die_strip_naming_typedef): ... here.
4924         (get_context_die): Use it.
4925         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
4926         the anonymous struct named by the naming typedef.
4928 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
4930         PR target/48154
4931         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
4932         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
4934 2011-03-16  Jeff Law  <law@redhat.com>
4936         * tree-vrp.c (identify_jump_threads): Slightly simplify type
4937         check for operands of conditional.  Allow type to be a pointer.
4939 2011-03-16  Richard Guenther  <rguenther@suse.de>
4941         PR tree-optimization/48149
4942         * fold-const.c (fold_binary_loc): Fold
4943         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
4945 2011-03-16  Richard Guenther  <rguenther@suse.de>
4947         PR tree-optimization/26134
4948         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
4949         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
4950         (non_rewritable_mem_ref_base): Handle complex type component
4951         accesses, constrain offsets for vector and complex extracts
4952         more properly.
4954 2011-03-16  Richard Guenther  <rguenther@suse.de>
4956         PR tree-optimization/48146
4957         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
4958         operands avoiding the need for renaming.
4960 2011-03-16  Richard Guenther  <rguenther@suse.de>
4962         * gimple-fold.c (maybe_fold_reference): Open-code relevant
4963         constant folding.  Move MEM_REF canonicalization first.
4964         Rely on fold_const_aggregate_ref for initializer folding.
4965         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
4967 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
4969         PR middle-end/48136
4970         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
4971         arg0/arg1 or their arguments are always fold converted to matching
4972         types.
4974         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
4975         to nargs.
4977 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4979         PR lto/46944
4980         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
4981         Handle in-tree gold.
4982         (ld_vers): Extract binutils version for gold.
4983         (gcc_cv_ld_hidden): Handle gold here.
4984         (gcc_cv_lto_plugin): Determine level of linker plugin support.
4985         * configure: Regenerate.
4986         * config.in: Regenerate.
4987         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
4988         -fuse-linker-plugin otherwise.
4989         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
4990         (LINK_COMMAND_SPEC): Use it.
4991         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
4993 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
4995         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
4996         * calls.c: Remove debug.h include.
4997         (emit_call_1): Don't call virtual_call_token debug hook.
4998         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
4999         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
5000         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
5001         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
5002         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
5003         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
5004         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
5005         dwarf2out_virtual_call): Remove.
5006         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
5007         copy_call_info and virtual_call hooks.
5008         (dwarf2out_init): Don't initialize vcall_insn_table,
5009         debug_dcall_section and debug_vcall_section.
5010         (prune_unused_types): Don't mark nodes from dcall_table.
5011         (dwarf2out_finish): Don't output dcall or vcall tables.
5012         * final.c (final_scan_insn): Don't call direct_call or
5013         virtual_call debug hooks.
5014         * debug.h (struct gcc_debug_hooks): Remove direct_call,
5015         virtual_call_token, copy_call_info and virtual_call hooks.
5016         (debug_nothing_uid): Remove prototype.
5017         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
5018         copy_call_info and virtual_call hooks.
5019         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5020         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
5021         * debug.c (do_nothing_debug_hooks): Likewise.
5022         (debug_nothing_uid): Remove.
5023         * doc/invoke.texi (-fenable-icf-debug): Remove.
5024         * common.opt (-fenable-icf-debug): Likewise.
5026         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
5027         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
5028         call's MEM.  Handle functions returning aggregate through a hidden
5029         first pointer.  For virtual calls add clobbered pc to call arguments
5030         chain.
5031         * dwarf2out.c (gen_subprogram_die): Emit
5032         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
5033         can't be emitted.
5035         PR debug/45882
5036         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
5037         * rtl.h (ENTRY_VALUE_EXP): Define.
5038         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
5039         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
5040         * print-rtl.c (print_rtx): Likewise.
5041         * gengtype.c (adjust_field_rtx_def): Likewise.
5042         * var-tracking.c (vt_add_function_parameter): Adjust
5043         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
5044         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
5045         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
5046         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
5047         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
5049         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
5050         Call var_location debug hook even on CALL_INSNs.
5051         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
5052         * rtl.def (ENTRY_VALUE): New.
5053         * dwarf2out.c: Include cfglayout.h.
5054         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
5055         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
5056         (struct call_arg_loc_node): New type.
5057         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
5058         tail_call_site_count): New variables.
5059         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
5060         DW_TAG_GNU_call_site_parameter.
5061         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
5062         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
5063         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
5064         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
5065         and DW_AT_GNU_all_source_call_sites.
5066         (mem_loc_descriptor): Handle ENTRY_VALUE.
5067         (add_src_coords_attributes): Don't add enything if
5068         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
5069         (dwarf2out_abstract_function): Save and clear call_arg_location,
5070         call_site_count and tail_call_site_count around dwarf2out_decl call.
5071         (gen_call_site_die): New function.
5072         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
5073         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
5074         (dwarf2out_function_decl): Clear call_arg_locations,
5075         call_arg_loc_last, set call_site_count and tail_call_site_count
5076         to -1 and free block_map.
5077         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
5078         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
5079         followed by any real instructions.
5080         (dwarf2out_begin_function): Set call_site_count and
5081         tail_call_site_count to 0.
5082         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
5083         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
5084         attempt to force a DIE for it and worst case remove the attribute.
5085         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
5086         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
5087         the decl itself.
5088         * var-tracking.c: Include tm_p.h.
5089         (vt_stack_adjustments): For calls call note_register_arguments.
5090         (argument_reg_set): New variable.
5091         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
5092         ensure the VALUE is resolved.
5093         (call_arguments): New variable.
5094         (prepare_call_arguments): New function.
5095         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
5096         (struct expand_loc_callback_data): Add ignore_cur_loc field.
5097         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
5098         always use the best expression.
5099         (vt_expand_loc): Add ignore_cur_loc argument.
5100         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
5101         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
5102         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
5103         note for all calls.
5104         (vt_add_function_parameter): Use cselib_lookup_from_insn.
5105         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
5106         argument.  Don't call cselib_preserve_only_values and
5107         cselib_reset_table.
5108         (note_register_arguments): New function.
5109         (vt_initialize): Compute argument_reg_set.  Call
5110         vt_add_function_parameters before processing basic blocks instead of
5111         afterwards.  For calls call prepare_call_arguments before calling
5112         cselib_process_insn.
5113         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
5114         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
5115         (var-tracking.o): Depend on $(TM_P_H).
5116         * cfglayout.h (insn_scope): New prototype.
5117         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
5118         * cfglayout.c (insn_scope): No longer static.
5119         * insn-notes.def (CALL_ARG_LOCATION): New.
5120         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
5121         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
5122         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
5123         nothing for DECL_EXTERNAL BLOCK_VARS.
5125 2011-03-16  Alan Modra  <amodra@gmail.com>
5127         PR target/45844
5128         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5129         create invalid offset address for vsx splat insn.
5130         * config/rs6000/predicates.md (splat_input_operand): New.
5131         * config/rs6000/vsx.md (vsx_splat_*): Use it.
5133 2011-03-15  Xinliang David Li  <davidxl@google.com>
5135         PR c/47837
5136         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
5137         (normalize_preds): New function.
5138         (is_use_properly_guarded): Normalize def predicates.
5140 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5142         PR target/46788
5143         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
5144         in the output template.
5146 2011-03-15  Richard Guenther  <rguenther@suse.de>
5148         PR middle-end/47650
5149         * tree-pretty-print.c (dump_function_declaration): Properly
5150         dump unprototyped and varargs function types.
5152 2011-03-15  Richard Guenther  <rguenther@suse.de>
5154         PR tree-optimization/13954
5155         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
5156         and friends.
5158 2011-03-15  Richard Guenther  <rguenther@suse.de>
5160         PR tree-optimization/48037
5161         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
5162         selects into BIT_FIELD_REFs.
5163         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
5164         vector select.
5166 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
5168         PR tree-optimization/48129
5169         * builtins.c (fold_builtin_snprintf): Convert to type of
5170         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
5171         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
5173 2011-03-15  Richard Guenther  <rguenther@suse.de>
5175         PR tree-optimization/41490
5176         * tree-ssa-dce.c (propagate_necessity): Handle returns without
5177         value but with VUSE.
5178         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
5179         return statements.
5180         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
5181         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
5182         * tree-tailcall.c (find_tail_calls): Ignore returns.
5184 2011-03-15  Richard Guenther  <rguenther@suse.de>
5186         PR middle-end/48031
5187         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
5188         or variable-indexed array accesses when in gimple form.
5190 2011-03-15  Richard Guenther  <rguenther@suse.de>
5192         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
5194 2011-03-15  Alan Modra  <amodra@gmail.com>
5196         PR target/48032
5197         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
5198         presume symbol_refs without a symbol_ref_decl are suitably
5199         aligned, nor other trees we may see here.  Handle anchor symbols.
5200         (legitimate_constant_pool_address_p): Comment.  Add mode param.
5201         Check cmodel=medium addresses.  Adjust all calls.
5202         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
5203         creating cmodel=medium optimized access to locals.
5204         * config/rs6000/constraints.md (R): Pass QImode to
5205         legitimate_constant_pool_address_p.
5206         * config/rs6000/predicates.md (input_operand): Pass mode to
5207         legitimate_constant_pool_address_p.
5208         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
5209         Update prototype.
5211 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5213         PR target/48053
5214         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
5215         64-bit constants being loaded into registers other than GPRs such
5216         as loading 0 into a VSX register.
5218 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5220         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
5222 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5224         PR middle-end/47917
5225         * builtins.c (fold_builtin_snprintf): New function.
5226         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
5227         (fold_builtin_4): Likewise.
5229         PR middle-end/38878
5230         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
5231         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
5232         and C - X == X also strip nops from +/-/p+ operand.
5233         When optimizing -X == C, fold C to arg0's type.
5235         PR debug/47946
5236         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
5237         emit it as add_AT_int instead of add_AT_unsigned.
5239 2011-03-14  Tom Tromey  <tromey@redhat.com>
5241         * unwind-dw2.c: Include sys/sdt.h if it exists.
5242         (_Unwind_DebugHook): Use STAP_PROBE2.
5243         * config.in, configure: Rebuild.
5244         * configure.ac: Check for sys/sdt.h.
5246 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
5248         * config/i386/i386.md (ROUND_FLOOR): New constant.
5249         (ROUND_CEIL): Ditto.
5250         (ROUND_TRUNC): Ditto.
5251         (ROUND_MXCSR): Ditto.
5252         (ROUND_NO_EXC): Ditto.
5253         (rint<mode>2): Use new defines instead of numerical constants.
5254         (floor<mode>2): Ditto.
5255         (ceil<mode>2): Ditto.
5256         (btrunc<mode>2): Ditto.
5257         * config/i386/i386-builtin-types.def: Define ROUND function type
5258         aliases.
5259         * config/i386/i386.c (enum ix86_builtins): Add
5260         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
5261         (struct builtin_description): Add
5262         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
5263         (ix86_expand_sse_round): New static function.
5264         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
5265         function types.
5266         (ix86_builtin_vectorized_function): Handle
5267         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
5269 2011-03-14  Tom Tromey  <tromey@redhat.com>
5271         * c-parser.c (c_parser_asm_string_literal): Clear
5272         warn_overlength_strings.
5274 2011-03-14  Tom Tromey  <tromey@redhat.com>
5276         * c-parser.c (disable_extension_diagnostics): Save
5277         warn_overlength_strings.
5278         (restore_extension_diagnostics): Restore warn_overlength_strings.
5280 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5282         * BASE-VER: Change to 4.7.0.
5284 2011-03-14  Richard Guenther  <rguenther@suse.de>
5286         PR middle-end/48098
5287         * tree.c (build_vector_from_val): Adjust assert to requirements
5288         and reality.
5290 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
5292         PR bootstrap/48102
5293         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
5295 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
5297         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
5298         terms of target_flags_explicit. Adjust copyright year.
5300         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
5301         * config/rs6000/t-freebsd: New file. Add override for
5302         LIB2FUNCS_EXTRA.
5304 2011-03-13  Chris Demetriou  <cgd@google.com>
5306         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
5307         (-fno-diagnostics-show-option): this, to reflect current default.
5308         (-Werror=): Update text about -fno-diagnostics-show-option.
5310 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
5312         PR target/48053
5313         * config/rs6000/predicates.md (easy_vector_constant_add_self,
5314         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
5315         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
5316         mode is not V2DImode or V2DFmode.
5317         (vspltis_constant): Do not handle V2DImode and V2DFmode.
5318         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
5319         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
5320         registers to 0.
5321         (movdi_internal64): Likewise.
5323 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
5325         PR tree-optimization/47127
5326         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
5327         parameter.
5328         (set_cloog_options): Same.
5329         (scop_to_clast): Same.
5330         (print_clast_stmt): Do not call cloog_state_malloc and
5331         cloog_state_free.
5332         (print_generated_program): Same.
5333         (gloog): Same.
5334         * graphite-clast-to-gimple.h (cloog_state): Declared.
5335         (scop_to_clast): Adjust declaration.
5336         * graphite.c (cloog_state): Defined here.
5337         (graphite_initialize): Call cloog_state_malloc.
5338         (graphite_finalize): Call cloog_state_free.
5340 2011-03-11  Jason Merrill  <jason@redhat.com>
5342         * attribs.c (lookup_attribute_spec): Take const_tree.
5343         * tree.h: Adjust.
5345 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
5347         * config/sparc/sparc.c (sparc_option_override): Use
5348         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
5350 2011-03-11  Richard Guenther  <rguenther@suse.de>
5352         PR tree-optimization/48067
5353         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
5354         multiplication result will be only used once on the target
5355         stmt.
5357 2011-03-11  Richard Guenther  <rguenther@suse.de>
5359         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
5361 2011-03-11  Richard Guenther  <rguenther@suse.de>
5363         PR lto/48073
5364         * tree.c (find_decls_types_r): Do not walk types only reachable
5365         from IDENTIFIER_NODEs.
5367 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
5369         PR middle-end/48044
5370         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
5371         all vnode->force_output nodes as needed.
5373 2011-03-11  Jason Merrill  <jason@redhat.com>
5375         PR c++/48069
5376         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
5377         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
5379 2011-03-11  Martin Jambor  <mjambor@suse.cz>
5381         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
5382         cgraph_node.
5384 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
5386         PR tree-optimization/48063
5387         * ipa-inline.c (cgraph_decide_inlining): Don't try to
5388         inline functions called once if !tree_can_inline_p (node->callers).
5390 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
5392         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
5393         extra_objs.
5394         * config/score/score3.c: Delete.
5395         * config/score/score3.h: Delete.
5396         * config/score/mul-div.S: Delete.
5397         * config/score/sfp-machine.h: Add new file.
5398         * config/score/constraints.md: Add new file.
5399         * config/score/t-score-softfp: Add new file.
5400         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
5401         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
5402         (score7_extra_constraint): Delete.
5403         (score7_option_override): Remove unused code.
5404         * config/score/score.c: Remove score3 and score5 define and code.
5405         * config/score/score.h: Remove score3 and score5 define and code.
5406         * config/score/score.md: Remove score3 template and unusual insn.
5407         * config/score/score.opt: Remove score3 and score5 options.
5409 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5411         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
5412         when _HPUX_SOURCE is defined.
5413         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
5415 2011-03-10  Jason Merrill  <jason@redhat.com>
5417         PR c++/48029
5418         * stor-layout.c (layout_type): Don't set structural equality
5419         on arrays of incomplete type.
5420         * tree.c (type_hash_eq): Handle comparing them properly.
5422 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
5424         PR debug/48043
5425         * config/s390/s390.c (s390_delegitimize_address): Make sure the
5426         result mode matches original rtl mode.
5428 2011-03-10  Nick Clifton  <nickc@redhat.com>
5430         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
5431         (andsi3, andsi3_flags): Fix timings for three operand alternative.
5433 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
5435         PR rtl-optimization/47866
5436         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
5437         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
5438         if target wasn't scalar.
5439         * function.c (assign_stack_temp_for_type): Assert that neither
5440         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
5441         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
5442         macro.
5443         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
5445 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5447         * config/s390/s390-protos.h (s390_label_align): New prototype.
5448         * config/s390/s390.c (s390_label_align): New function.
5449         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
5451 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5453         PR target/47755
5454         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
5455         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
5456         (output_vec_const_move): Ditto.
5458 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
5460         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
5461         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
5462         * config/mips/mips.c (mips_preferred_reload_class): Make static.
5463         Change 'rclass' argument and result type to reg_class_t.
5464         (TARGET_PREFERRED_RELOAD_CLASS): Define.
5466 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
5468         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5469         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
5470         (TARGET_MEMORY_MOVE_COST): Define.
5471         (avr_register_move_cost, avr_memory_move_cost): New Functions.
5473 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
5475         PR debug/47881
5476         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
5477         removed anything.
5479         PR tree-optimization/48022
5480         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
5481         for EQ/NE_EXPR.
5483 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
5485         PR debug/47991
5486         * var-tracking.c (find_use_val): Return NULL for
5487         cui->sets && cui->store_p BLKmode MEMs.
5489 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
5491         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
5492         Remove.
5493         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
5494         xstormy16_print_operand_address): Remove.
5495         * config/stormy16/stormy16.c (xstormy16_print_operand,
5496         xstormy16_print_operand_address): Make static.
5497         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
5499 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
5501         PR target/47862
5502         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
5503         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
5504         before definition.
5506 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
5508         PR bootstrap/48000
5509         * cfgloopmanip.c (fix_bb_placements): Return immediately
5510         if FROM is BASE_LOOP's header.
5512 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
5514         * gimplify.c (gimplify_function_tree): Fix building calls
5515         to __builtin_return_address.
5517 2011-03-07  Alan Modra  <amodra@gmail.com>
5519         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
5520         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
5521         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
5522         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
5523         return_mode args.
5524         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
5525         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
5526         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
5527         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
5528         * config/rs6000/rs6000.c
5529         (rs6000_elf_end_indicate_exec_stack): Rename to..
5530         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
5531         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
5532         (rs6000_file_start): ..here.
5533         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
5534         file scope variables.
5535         (call_ABI_of_interest): New function.
5536         (init_cumulative_args): Set above vars when function return value
5537         is a float, vector, or small struct.
5538         (rs6000_function_arg_advance_1): Likewise for function args.
5539         (rs6000_va_start): Set rs6000_passes_float if variable arg function
5540         references float args.
5542 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
5544         * doc/cfg.texi: Remove "See" before @ref.
5545         * doc/invoke.texi: Likewise.
5547 2011-03-05  Jason Merrill  <jason@redhat.com>
5549         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
5551 2011-03-05  Anthony Green  <green@moxielogic.com>
5553         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
5555 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
5557         PR rtl-optimization/47899
5558         * cfgloopmanip.c (fix_bb_placements): Fix first argument
5559         to flow_loop_nested_p when moving the loop upward.
5561 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
5563         PR target/47719
5564         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
5566 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
5568         PR tree-optimization/47967
5569         * ipa-cp.c (build_const_val): Return NULL instead of creating
5570         VIEW_CONVERT_EXPR for mismatching sizes.
5571         (ipcp_create_replace_map): Return NULL if build_const_val failed.
5572         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
5573         give up on versioning.
5575 2011-03-05  Alan Modra  <amodra@gmail.com>
5577         PR target/47986
5578         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5579         full cmodel medium/large lo_sum + high addresses.
5581 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5583         * config/s390/s390.c (s390_decompose_address): Reject non-literal
5584         pool references in UNSPEC_LTREL_OFFSET.
5586 2011-03-04  Jan Hubicka  <jh@suse.cz>
5588         PR lto/47497
5589         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
5590         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
5591         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
5592         Add node pointers.
5593         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
5594         cgraph_add_thunk): Add node pointers.
5595         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
5596         associated to right node.
5597         (input_node): Update use of cgraph_same_body_alias
5598         and cgraph_add_thunk.
5600 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5602         * config/i386/i386.opt (mprefer-avx128): New flag.
5603         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
5604         modes when the flag -mprefer-avx128 is on.
5606 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
5608         * dwarf2out.c (compare_loc_operands): Fix address handling.
5610 2011-03-04  Alan Modra  <amodra@gmail.com>
5612         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
5614 2011-03-04  Richard Guenther  <rguenther@suse.de>
5616         PR middle-end/47968
5617         * expmed.c (extract_bit_field_1): Prefer vector modes that
5618         vec_extract patterns can handle.
5620 2011-03-04  Richard Guenther  <rguenther@suse.de>
5622         PR middle-end/47975
5623         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
5625 2011-03-04  Richard Henderson  <rth@redhat.com>
5627         * explow.c (emit_stack_save): Remove 'after' parameter.
5628         (emit_stack_restore): Likewise.
5629         * expr.h: Update to match.
5630         * builtins.c, calls.c, stmt.c: Likewise.
5631         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
5632         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
5633         * function.c (expand_function_end): Insert the emit_stack_save
5634         sequence before parm_birth_insn instead of after.
5636 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
5638         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
5639         (ssse3_pmaddubsw128): Ditto.
5640         (ssse3_pmaddubsw): Ditto.
5642 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
5644         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
5646 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
5648         PR c/47963
5649         * gimplify.c (omp_add_variable): Only call omp_notice_variable
5650         on TYPE_SIZE_UNIT if it is a DECL.
5652         PR debug/47283
5653         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
5654         first operand is not is_gimple_mem_ref_addr, try to fold it.
5655         If the operand still isn't is_gimple_mem_ref_addr, clear
5656         MEM_EXPR on op0.
5658 2011-03-03  Richard Guenther  <rguenther@suse.de>
5660         PR middle-end/47283
5661         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
5662         match comment.
5663         (refs_may_alias_p_1): For release branches return true if
5664         we are confused by our input.
5666 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5668         * config/s390/s390.c (s390_function_value): Rename to ...
5669         (s390_function_and_libcall_value): ... this.
5670         (s390_function_value): New function.
5671         (s390_libcall_value): New function.
5672         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
5673         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
5674         target macro definitions.
5675         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
5677 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
5679         * config/i386/freebsd64.h (CC1_SPEC): Define.
5680         * config/i386/linux64.h (CC1_SPEC): Define.
5681         * config/i386/x86-64.h (CC1_SPEC): Don't define.
5683 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
5685         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5686         Remove.
5687         * config/stormy16/stormy16.c: Include reload.h.
5688         (xstormy16_memory_move_cost): New function.
5689         (TARGET_MEMORY_MOVE_COST): Define.
5691 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
5693         PR rtl-optimization/47925
5694         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
5695         with side effects.  Remove the more-specific check for volatile asms.
5697 2011-03-02  Alan Modra  <amodra@gmail.com>
5699         PR target/47935
5700         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
5701         toc relative addresses for valid offsets.
5703 2011-03-01  Richard Guenther  <rguenther@suse.de>
5705         PR tree-optimization/47890
5706         * tree-vect-loop.c (get_initial_def_for_induction): Set
5707         related stmt properly.
5709 2011-03-01  Richard Guenther  <rguenther@suse.de>
5711         PR lto/47924
5712         * lto-streamer.c (lto_record_common_node): Also register
5713         the canonical type.
5715 2011-03-01  Richard Guenther  <rguenther@suse.de>
5717         PR lto/46911
5718         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5719         Do not stream DECL_ABSTRACT_ORIGIN.
5720         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5721         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5722         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5723         Do not stream DECL_ABSTRACT_ORIGIN.
5724         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
5725         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
5727 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
5729         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
5730         FUNCTION_VALUE_REGNO_P): Remove.
5731         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
5732         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
5733         Add 'outgoing' argument.
5734         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
5735         function.
5736         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5737         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5739 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
5741         PR debug/28047
5742         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
5743         (lookup_filename): Likewise.
5744         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
5746 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
5747             Jakub Jelinek  <jakub@redhat.com>
5749         PR middle-end/47893
5750         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
5751         (assign_stack_local_1): Change last argument type to int.
5752         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
5753         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
5754         don't record padding space into frame_space_list nor use those areas.
5755         (assign_stack_local): Adjust caller.
5756         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
5757         of assign_stack_local, pass 0 as last argument.
5758         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
5759         callers.
5761 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
5763         PR debug/47283
5764         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
5765         Use target address_mode and pointer_mode hooks instead of hardcoded
5766         Pmode and ptr_mode.  Handle some simple cases of extending if
5767         POINTERS_EXTEND_UNSIGNED < 0.
5768         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
5769         Call convert_debug_memory_address.
5770         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
5771         convert_debug_memory_address.
5773         PR middle-end/46790
5774         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
5775         * configure: Regenerated.
5776         * config.in: Regenerated.
5777         * varasm.c (default_function_section): Return NULL
5778         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
5780 2011-02-28  Martin Jambor  <mjambor@suse.cz>
5782         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
5783         the description to match the printed values.
5785 2011-02-28  Richard Guenther  <rguenther@suse.de>
5787         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
5788         of the copied scope tree.
5790 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5792         * doc/extend.texi (Function Attributes): Avoid deeply (and
5793         wrongly) nested tables.
5795 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
5797         PR middle-end/47903
5798         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
5799         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
5800         r isn't op0 nor op1.
5802 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5804         * config/avr/avr.md: Remove magic comment for emacs.
5806 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
5808         PR target/45261
5809         * config/avr/avr.c (avr_option_override): Use error on bad options.
5810         (avr_help): New function.
5811         (TARGET_HELP): Define.
5813 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
5815         PR target/42240
5816         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
5817         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
5819 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
5821         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
5822         (ARM Options): Ditto.
5823         (i386 and x86-64 Options): Ditto.
5824         (RX Options): Ditto.
5825         (SPARC Options): Ditto.
5827 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
5829         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
5830         FreeBSD 6 and later.  Generally use cpu generic.
5832 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
5834         * doc/cpp.texi: Update copyright years.
5836 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
5838         PR target/46898
5839         * config/lm32/lm32.md (ashrsi3): Added needed variable.
5841 2011-02-25  Jon Beniston  <jon@beniston.com>
5843         PR target/46898
5844         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
5845         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
5846         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
5847         (lm32_block_move_inline): Add type cast to remove warning.
5848         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
5849         (gen_int_relational): Move declarations to start of function.
5851 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5853         PR tree-optimization/45470
5854         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
5855         can throw internally only.
5856         * tree-vect-stmts.c (vectorizable_call): Likewise.
5858 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
5860         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
5861         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5862         * config/stormy16/stormy16-protos.h
5863         (xstormy16_preferred_reload_class): Remove.
5864         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
5865         static. Change 'rclass' argument and return type to reg_class_t.
5866         (TARGET_PREFERRED_RELOAD_CLASS,
5867         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5869 2011-02-24  Richard Guenther  <rguenther@suse.de>
5871         * lto-streamer-in.c (input_bb): Do not find referenced vars
5872         in debug statements.
5874 2011-02-23  Jason Merrill  <jason@redhat.com>
5876         * common.opt (fabi-version): Document v5 and v6.
5878 2011-02-23  Richard Guenther  <rguenther@suse.de>
5880         PR tree-optimization/47849
5881         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
5883 2011-02-23  Jie Zhang  <jie@codesourcery.com>
5885         * opts-common.c (decode_cmdline_option): Print empty string
5886         argument as "" in decoded->orig_option_with_args_text.
5887         * gcc.c (execute): Print empty string argument as ""
5888         in the verbose output.
5889         (do_spec_1): Keep empty string argument.
5891 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
5893         * config.gcc: Declare score-* and crx-* obsolete.
5895 2011-02-23  Jie Zhang  <jie@codesourcery.com>
5897         PR rtl-optimization/47763
5898         * web.c (web_main): Ignore naked clobber when replacing register.
5900 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
5902         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5903         Remove.
5905 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5907         PR doc/47848
5908         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
5910 2011-02-22  Mike Stump  <mikestump@comcast.net>
5912         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
5913         assembler.
5914         * configure: Regenerate.
5916 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
5918         PR rtl-optimization/46002
5919         * ira-color.c (update_copy_costs): Change class intersection
5920         test to reg_class_contents[] test of 'hard_regno'.
5922 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
5924         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
5925         than Driver option.
5926         * config/hpux11.opt (mt): Likewise.
5927         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
5928         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
5929         * config/vax/elf.opt (mno-asm-pic): Likewise.
5930         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
5932 2011-02-21  Mike Stump  <mikestump@comcast.net>
5934         PR target/47822
5935         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
5936         tree so we can get save the type.
5937         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
5938         for CFString instead of trying to use past the end of the builtins.
5939         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
5940         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
5941         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
5942         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
5943         Rename to darwin_builtin_cfstring.
5944         (darwin_init_cfstring_builtins): Return the built type.
5946 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
5948         PR target/47840
5949         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
5950         (_mm256_insert_epi64): Use _mm_insert_epi64.
5952 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
5954         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5955         * config/stormy16/stormy16-protos.h
5956         (xstormy16_mode_dependent_address_p): Remove.
5957         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
5958         Make static. Change return type to bool. Change argument type to
5959         const_rtx. Remove dead code.
5960         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5962 2011-02-21  Richard Guenther  <rguenther@suse.de>
5964         PR lto/47820
5965         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5966         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
5967         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
5968         TUs context.
5969         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5970         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
5972 2011-02-20  Richard Guenther  <rguenther@suse.de>
5974         PR lto/47822
5975         * tree.c (free_lang_data_in_decl): Clean builtins from
5976         the TU decl BLOCK_VARS.
5978 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
5980         PR debug/47620
5981         PR debug/47630
5982         * haifa-sched.c (fix_tick_ready): Skip tick computation
5983         for debug insns.
5985 2011-02-19  Richard Guenther  <rguenther@suse.de>
5987         PR lto/47647
5988         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
5989         Remove lazy BLOCK_VARS streaming.
5990         (lto_input_ts_block_tree_pointers): Likewise.
5991         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
5993 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
5995         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
5997 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
5999         * config/i386/biarch32.h, config/i386/mach.h,
6000         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
6002 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
6004         PR target/47800
6005         * config/i386/i386.md (peephole2 for shift and plus): Use
6006         operands[1] original mode in the first insn.
6008 2011-02-18  Mike Stump  <mikestump@comcast.net>
6010         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
6012 2011-02-18  Jan Hubicka  <jh@suse.cz>
6014         PR middle-end/47788
6015         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
6016         to zero when the function is not inlinable at all.
6018 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6020         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
6021         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6022         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
6023         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
6024         * config/pa/t-pa64: Likewise.
6025         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
6027 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6029         PR driver/47787
6030         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
6032 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6034         PR target/47792
6035         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
6037 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
6039         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6040         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
6041         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
6042         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6043         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
6044         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
6045         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
6046         m32r_load_postinc_p, m32r_store_preinc_predec_p,
6047         m32r_legitimate_address_p): New functions.
6048         * config/m32r/constraints.md (constraint "S"): Don't use
6049         STORE_PREINC_PREDEC_P.
6050         (constraint "U"): Don't use LOAD_POSTINC_P.
6052 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
6054         PR rtl-optimization/46178
6055         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
6056         compute ira_hard_regno_cover_class[].
6058 2011-02-18  Richard Guenther  <rguenther@suse.de>
6060         PR lto/47798
6061         * lto-streamer.h (lto_global_var_decls): Declare.
6062         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
6063         statics for global var processing.
6065 2011-02-18  Richard Guenther  <rguenther@suse.de>
6067         PR tree-optimization/47737
6068         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
6069         edge dominance check.
6071 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
6073         PR debug/47780
6074         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
6075         avoid invalid rtx sharing.
6077 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
6079         * doc/cpp.texi (Obsolete Features): Add background on the
6080         origin of assertions.
6082 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
6084         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
6085         objc_abi == 2.
6086         * config/darwin.c (output_objc_section_asm_op): Added support for
6087         ABI v1 and v2.
6088         (is_objc_metadata): New.
6089         (darwin_objc2_section): New.
6090         (darwin_objc1_section): New.
6091         (machopic_select_section): Added support for ABI v1 and v2.
6092         (darwin_emit_objc_zeroed): New.
6093         (darwin_output_aligned_bss): Detect objc metadata and treat it
6094         appropriately.
6095         (darwin_asm_output_aligned_decl_common): Same.
6096         (darwin_asm_output_aligned_decl_local): Same.
6097         * config/darwin-sections.def: Updated for ABI v1 and v2.
6098         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
6099         compiling Objective-C code for the NeXT runtime, default to using
6100         ABI version 0 for 32-bit, and version 2 for 64-bit.
6102 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6104         * common.opt (optimize_fast): New Variable.
6105         * opts.c (default_options_optimization): Use opts->x_optimize_fast
6106         instead of local variable ofast.
6108 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
6110         * doc/invoke.texi (fobjc-abi-version): Documented.
6111         (fobjc-nilcheck): Documented.
6112         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
6113         version.
6115 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6117         PR driver/47390
6118         * common.opt (export-dynamic): New Driver option.
6119         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
6121 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6123         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
6125 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
6126             Jan Hubicka  <jh@suse.cz>
6128         PR debug/47106
6129         PR debug/47402
6130         * cfgexpand.c (account_used_vars_for_block): Remove.
6131         (estimated_stack_frame_size): Use referenced vars.
6132         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
6133         that were referenced in the original function.  Test src_fn
6134         rather than cfun.  Drop redundant get_var_ann.
6135         (setup_one_parameter): Drop redundant get_var_ann.
6136         (declare_return_variable): Likewise.
6137         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
6138         (copy_arguments_for_versioning): Drop redundant get_var_ann.
6139         * ipa-inline.c (compute_inline_parameters): Do not compute
6140         disregard_inline_limits here.
6141         (compute_inlinable_for_current, pass_inlinable): New.
6142         (pass_inline_parameters): Require PROP_referenced_vars.
6143         * cgraphunit.c (cgraph_process_new_functions): Don't run
6144         compute_inline_parameters explicitly unless function is in SSA form.
6145         (cgraph_analyze_function): Set .disregard_inline_limits.
6146         * tree-sra.c (convert_callers): Compute inliner parameters
6147         only for functions already in SSA form.
6149 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6151         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
6152         -mlittle-endian-data.
6154 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
6156         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
6157         -mno-fpu, not -fpu and -no-fpu.
6158         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
6159         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
6161 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
6163         PR target/43653
6164         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
6165         input reload with PLUS RTX.
6167 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6169         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
6170         of InverseVar(MDMX).
6172 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6174         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
6175         --m4-340.
6177 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6179         * config/mn10300/mn10300.opt (mno-crt0): New.
6181 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6183         * config/m68k/uclinux.opt (static-libc): New Driver option.
6185 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6187         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
6189 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
6191         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
6192         %{muser-extend-enabled}.
6194 2011-02-16  Richard Guenther  <rguenther@suse.de>
6196         PR tree-optimization/47738
6197         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
6198         the TODO from tree_predictive_commoning.
6200 2011-02-15  Jeff Law  <law@redhat.com>
6202         Revert
6203         2011-01-25  Jeff Law  <law@redhat.com>
6205         PR rtl-optimization/37273
6206         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6207         handle them like argument loads from stack slots.  Do not double
6208         count memory for memory constants and argument loads from stack slots.
6210 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6212         PR middle-end/47725
6213         * combine.c (cant_combine_insn_p): Revert the last change.
6215 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6217         PR target/47755
6218         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
6219         mode for vector constants.  Remove code that checks for TImode.
6221 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6223         PR debug/47106
6224         PR debug/47402
6225         * cgraph.h (compute_inline_parameters): Return void.
6226         * ipa-inline.c (compute_inline_parameters): Adjust.
6228 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6230         PR debug/47106
6231         PR debug/47402
6232         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
6233         rather than decl.
6234         * cfgexpand.c (estimated_stack_frame_size): Likewise.
6235         * ipa-inline.c (compute_inline_parameters): Adjust.
6237 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6239         PR debug/47106
6240         PR debug/47402
6241         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
6242         Adjust all users.  Pass FN to...
6243         * tree-flow-inline.h (first_referenced_var): ... this.  Add
6244         fn argument.
6245         * ipa-struct-reorg.c: Adjust.
6246         * tree-dfa.c: Adjust.
6247         * tree-into-ssa.c: Adjust.
6248         * tree-sra.c: Adjust.
6249         * tree-ssa-alias.c: Adjust.
6250         * tree-ssa-live.c: Adjust.
6251         * tree-ssa.c: Adjust.
6252         * tree-ssanames.c: Adjust.
6253         * tree-tailcall.c: Adjust.
6255 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
6257         PR debug/47106
6258         PR debug/47402
6259         * tree-flow.h (referenced_var_lookup): Add fn parameter.
6260         Adjust all callers.
6261         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
6262         * tree-flow-inline.h: Adjust.
6263         * gimple-pretty-print.c: Adjust.
6264         * tree-into-ssa.c: Adjust.
6265         * tree-ssa.c: Adjust.
6266         * cfgexpand.c: Adjust.
6268 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6270         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
6271         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6272         (EXTRA_CONSTRAINT): Delete.
6273         * config/iq2000/constraints.md: New file.
6274         * config/iq2000/iq2000.md: Include it.
6275         (define_insn ""): Delete.
6276         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
6277         unsupported constraint letters from patterns.
6278         (call_value, call_value_internal1): Likewise.
6279         (call_value_multiple_internal1): Likewise.
6281 2011-02-15  Nick Clifton  <nickc@redhat.com>
6283         * config/mn10300/mn10300.c: Include tm-constrs.h.
6284         (struct liw_data): New data structure describing an LIW candidate
6285         instruction.
6286         (extract_bundle): Use struct liw_data.  Allow small integer
6287         operands for some instructions.
6288         (check_liw_constraints): Use struct liw_data.  Remove swapped
6289         parameter.  Add comments describing the checks.  Fix bug when
6290         assigning the source of liw1 to the source of liw2.
6291         (liw_candidate): Delete.  Code moved into extract_bundle.
6292         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
6293         before swapping.
6294         * config/mn10300/predicates.md (liw_operand): New predicate.
6295         Allows registers and small integer constants.
6296         * config/mn10300/constraints.md (O): New constraint.  Accetps
6297         integers in the range -8 to +7 inclusive.
6298         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
6299         for moving a small integer into a register.  Give this alternative
6300         LIW attributes.
6301         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
6302         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
6303         using the J,K,L and M constraints,
6304         (liw): Remove SI mode on second operands to allow for HI and QI
6305         mode values.
6306         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
6307         instruction.
6309 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6311         PR middle-end/47725
6312         * combine.c (cant_combine_insn_p): Check zero/sign extended
6313         hard registers.
6315 2011-02-15  Richard Guenther  <rguenther@suse.de>
6317         PR tree-optimization/47743
6318         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
6319         for a non-type-compatible VN lookup bail out.
6321 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6323         * config/fr30/constraints.md: New file.
6324         * config/fr30/fr30.md: Include it.
6325         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
6326         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6327         (EXTRA_CONSTRAINT): Delete.
6329 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
6331         * config/frv/constraints.md: New file.
6332         * config/frv/predicates.md: Include it.
6333         * config/frv/frv.c (reg_class_from_letter): Delete.
6334         (frv_option_override): Don't initialize it.
6335         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
6336         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
6337         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
6338         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
6339         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
6340         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6341         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
6342         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
6343         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
6344         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
6345         (REG_CLASS_FROM_CONSTRAINT): Delete.
6347 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
6349         PR middle-end/47581
6350         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
6351         if frame size is 0 in a leaf function.
6353 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6355         PR pch/14940
6356         * config/alpha/host-osf.c: New file.
6357         * config/alpha/x-osf: New file.
6358         * config.host (alpha*-dec-osf*): Use it.
6360 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
6362         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6363         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
6364         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
6365         (rx_mode_dependent_address_p): ...this. Make static. Change argument
6366         type to const_rtx.
6367         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6369 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6371         * config/stormy16/constraints.md: New file.
6372         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
6373         Use satisfies_constraint_Q and satisfies_constraint_R.
6374         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
6375         Delete.
6376         (xstormy16_legitiamte_address_p): Declare.
6377         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
6378         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6379         (EXTRA_CONSTRAINT): Delete.
6380         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6381         Un-staticize.
6382         (xstormy16_extra_constraint_p): Delete.
6384 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
6386         PR tree-optimization/46494
6387         * loop-unroll.c (split_edge_and_insert): Adjust comment.
6388         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
6389         (pass_rtl_loop_done): Add TODO_verify_flow.
6390         * fwprop.c (pass_rtl_fwprop): Likewise.
6391         * modulo-sched.c (pass_sms): Likewise.
6392         * tree-ssa-dom.c (pass_dominator): Likewise.
6393         * tree-ssa-loop-ch.c (pass_ch): Likewise.
6394         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
6395         (pass_tree_loop_done): Likewise.
6396         * tree-ssa-pre.c (execute_pre): Likewise.
6397         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6398         * tree-ssa-sink.c (pass_sink_code): Likewise.
6399         * tree-vrp.c (pass_vrp): Likewise.
6401 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6403         * config/v850/constraints.md: New file.
6404         * config/v850/v850.md: Include it.
6405         * config/v850/predicates.md (reg_or_0_operand): Use
6406         satisfies_constraint_G.
6407         (special_symbolref_operand): Use satisfies_constraint_K.
6408         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
6409         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
6410         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
6411         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
6412         (EXTRA_CONSTRAINT): Delete.
6413         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
6414         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
6415         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
6417 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
6419         PR target/47696
6420         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
6421         description.
6423 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
6425         * config/mcore/constraints.md: New file.
6426         * config/mcore/mcore.md: Include it.
6427         * config/mcore/mcore.c (reg_class_from_letter): Delete.
6428         * config/mcore/mcore.h (reg_class_from_letter): Delete.
6429         (REG_CLASS_FROM_LETTER): Delete.
6430         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
6431         insn_const_int_ok_for_constraint.
6432         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
6433         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
6434         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6435         (EXTRA_CONSTRAINT): Delete.
6437 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6439         PR ada/41929
6440         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
6441         (IS_SIGHANDLER): Define.
6442         (sparc64_is_sighandler): New function, split off from
6443         sparc64_fallback_frame_state.
6444         (sparc_is_sighandler): New function, split off from
6445         sparc_fallback_frame_state.
6446         (sparc64_fallback_frame_state): Merge with ...
6447         (sparc_fallback_frame_state): ... this into ...
6448         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
6449         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
6450         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
6451         stack instead of hardcoded offsets.
6453 2011-02-14  Andriy Gapon  <avg@freebsd.org>
6455         PR target/45808
6456         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
6458 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6460         * configure: Regenerate.
6462 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
6464         PR driver/45731
6465         * gcc.c (asm_options): Correct spec matching --target-help.
6467 2011-02-12  Martin Jambor  <mjambor@suse.cz>
6469         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
6470         to gimple call error.
6472 2011-02-12  Mike Stump  <mikestump@comcast.net>
6474         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
6475         comments in backslash regions.
6477 2011-02-12  Mike Stump  <mikestump@comcast.net>
6478             Jakub Jelinek  <jakub@redhat.com>
6479             Iain Sandoe  <iains@gcc.gnu.org>
6481         PR target/47324
6482         * dwarf2out.c (output_cfa_loc): When required, apply the
6483         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
6484         (output_loc_sequence): Likewise.
6485         (output_loc_operands_raw): Likewise.
6486         (output_loc_sequence_raw): Likewise.
6487         (output_cfa_loc): Likewise.
6488         (output_loc_list): Suppress register number adjustment when
6489         calling output_loc_sequence()
6490         (output_die): Likewise.
6492 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
6494         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6495         Remove macros.
6496         * config/xtensa/xtensa.c (xtensa_register_move_cost,
6497         xtensa_memory_move_cost): New functions.
6498         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
6500 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
6502         PR lto/47225
6503         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
6504         in the current directory.
6505         * configure: Rebuilt.
6507 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
6509         * config/darwin.c (darwin_override_options): Add a hunk missed
6510         from the commit of r168571.  Trim comment line lengths and
6511         correct indents of the preceding block.
6513 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
6515         * gcc.c (driver_handle_option): Concatenate the argument to -F with
6516         the switch.
6518 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
6520         * common.opt (nostartfiles): New Driver option.
6522 2011-02-11  Xinliang David Li  <davidxl@google.com>
6524         PR tree-optimization/47707
6525         * tree-chrec.c (convert_affine_scev): Keep type precision.
6527 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
6529         PR tree-optimization/47420
6530         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
6532 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
6534         PR rtl-optimization/47614
6535         * rtl.h (check_for_inc_dec): Declare.
6536         * dse.c (check_for_inc_dec): Externalize...
6537         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
6538         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
6540 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
6542         PR driver/47678
6543         * gcc.c (main): Do not compile inputs if there were errors in
6544         option handling.
6545         * opts-common.c (read_cmdline_option): Check for wrong language
6546         after other error checks.
6548 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
6550         * cgraph.c: Fix comment typos.
6551         * cgraph.h: Likewise.
6552         * cgraphunit.c: Likewise.
6553         * ipa-cp.c: Likewise.
6554         * ipa-inline.c: Likewise.
6555         * ipa-prop.c: Likewise.
6556         * ipa-pure-const.c: Likewise.
6557         * ipa-ref.c: Likewise.
6558         * ipa-reference.c: Likewise.
6560 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
6562         PR debug/47684
6563         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
6565 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6567         PR testsuite/47400
6568         * doc/sourcebuild.texi (Require Support): Document
6569         dg-require-ascii-locale.
6571 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
6573         * doc/lto.texi (Write summary): Fix missing parentheses.
6575 2011-02-10  DJ Delorie  <dj@redhat.com>
6577         * config/m32c/m32c.c (m32c_option_override): Disable
6578         -fcombine-stack-adjustments until flag value tracking and compare
6579         optimization can be rewritten.
6581 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
6583         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
6584         PROCESSOR_POWER7.
6585         (PROCESSOR_DEFAULT64): Likewise.
6587 2011-02-10  Richard Henderson  <rth@redhat.com>
6589         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
6590         change from 2011-02-03.
6591         * config/rx/rx.c (flags_from_code): Likewise.
6592         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
6593         is valid, n/pz otherwise.
6594         (rx_select_cc_mode): Return CCmode if Y is not zero.
6596 2011-02-10  Richard Guenther  <rguenther@suse.de>
6598         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
6600 2011-02-10  Richard Guenther  <rguenther@suse.de>
6602         PR tree-optimization/47677
6603         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
6605 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
6607         PR target/47665
6608         * combine.c (make_compound_operation): Only change shifts into
6609         multiplication for SCALAR_INT_MODE_P.
6611 2011-02-10  Jie Zhang  <jie@codesourcery.com>
6613         PR testsuite/47622
6614         Revert
6615         2011-02-05  Jie Zhang  <jie@codesourcery.com>
6616         PR debug/42631
6617         * web.c (entry_register): Don't clobber the number of the
6618         first uninitialized reference in used[].
6620 2011-02-09  Richard Guenther  <rguenther@suse.de>
6622         PR tree-optimization/47664
6623         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
6624         all edges again.
6626 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
6628         PR target/46481
6629         PR target/47032
6630         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
6631         PROCESSOR_POWER7.
6632         (PROCESSOR_DEFAULT64): Same.
6633         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
6635 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6637         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
6639 2011-02-09  Martin Jambor  <mjambor@suse.cz>
6641         PR middle-end/45505
6642         * tree-sra.c (struct access): New flags grp_scalar_read and
6643         grp_scalar_write.  Changed description of assignment read and write
6644         flags.
6645         (dump_access): Dump new flags, reorder all of them.
6646         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
6647         to detect multiple scalar reads.
6648         (analyze_access_subtree): Use the new scalar read write flags instead
6649         of the old flags.  Adjusted comments.
6651 2011-02-08  DJ Delorie  <dj@redhat.com>
6653         PR target/47548
6654         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
6655         patterns.
6657 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6659         * config/m68k/uclinux.opt: New.
6660         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
6662 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6664         * config/cris/elf.opt (sim): New Driver option.
6666 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6668         * config/xtensa/elf.opt: New.
6669         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
6671 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6673         * config/vax/elf.opt: New.
6674         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
6676 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6678         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
6680 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6682         * config/gnu-user.opt: New.
6683         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
6684         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
6685         *-*-uclinux*): Use gnu-user.opt.
6687 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
6689         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
6690         * config/i386/gnu.h (CPP_SPEC): Likewise.
6692 2011-02-08  Ian Lance Taylor  <iant@google.com>
6694         * common.opt (fcx-limited-range): Add SetByCombined flag.
6695         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
6696         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
6697         (fassociative-math, freciprocal-math): Likewise.
6698         (funsafe-math-optimizations): Likewise.
6699         * opth-gen.awk: Handle SetByCombined.
6700         * optc-gen.awk: Likewise.
6701         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
6702         (set_unsafe_math_optimizations_flags): Likewise.
6703         * doc/options.texi (Option properties): Document SetByCombined.
6705 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
6707         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
6708         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
6709         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
6710         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
6711         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
6713 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
6715         PR tree-optimization/46834
6716         PR tree-optimization/46994
6717         PR tree-optimization/46995
6718         * graphite-sese-to-poly.c (used_outside_reduction): New.
6719         (detect_commutative_reduction): Call used_outside_reduction.
6720         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
6721         translate_scalar_reduction_to_array only when at least one
6722         loop-phi/close-phi tuple has been detected.
6724 2011-02-08  Richard Guenther  <rguenther@suse.de>
6726         PR middle-end/47639
6727         * tree-vect-generic.c (expand_vector_operations_1): Update
6728         stmts here ...
6729         (expand_vector_operations): ... not here.  Cleanup EH info
6730         and the CFG if required.
6732 2011-02-08  Richard Guenther  <rguenther@suse.de>
6734         PR tree-optimization/47641
6735         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
6736         require type compatibility.
6738 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6740         * gimple-low.c (lower_function_body): Don't remove the location of
6741         the return statement here.
6742         (lower_gimple_return): Do it here instead but only if the return
6743         statement is actually used twice.
6745 2011-02-08  Richard Guenther  <rguenther@suse.de>
6747         PR tree-optimization/47632
6748         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
6749         unused up_to_stmt parameter, return whether cfg-cleanup is
6750         necessary, remove EH info properly.
6751         (forward_propagate_into_gimple_cond): Adjust caller.
6752         (forward_propagate_into_cond): Likewise.
6753         (forward_propagate_comparison): Likewise.
6754         (tree_ssa_forward_propagate_single_use_vars): Make
6755         forward_propagate_comparison case similar to the two others.
6757 2011-02-08  Nick Clifton  <nickc@redhat.com>
6759         * config/mn10300/mn10300.opt (mliw): New command line option.
6760         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
6761         (liw_bundling): New automaton.
6762         (liw): New attribute.
6763         (liw_op): New attribute.
6764         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
6765         (movsi_internal): Add LIW attributes.
6766         (andsi3): Likewise.
6767         (iorsi3): Likewise.
6768         (xorsi3): Likewise.
6769         (addsi3): Separate register and immediate alternatives.
6770         Add LIW attributes.
6771         (subsi3): Likewise.
6772         (cmpsi): Likewise.
6773         (aslsi3): Likewise.
6774         (lshrsi3): Likewise.
6775         (ashrsi3): Likewise.
6776         (liw): New pattern.
6777         * config/mn10300/mn10300.c (liw_op_names): New
6778         (mn10300_print_operand): Handle 'W' operand descriptor.
6779         (extract_bundle): New function.
6780         (check_liw_constraints): New function.
6781         (liw_candidate): New function.
6782         (mn10300_bundle_liw): New function.
6783         (mn10300_reorg): New function.
6784         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6785         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
6786         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
6787         __LIW__ or __NO_LIW__.
6788         * doc/invoke.texi: Describe the -mliw command line option.
6790 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6792         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
6793         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6794         pthread_mutex_unlock): Remove.
6795         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
6796         * config/pa/t-pa64: Likewise.
6797         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
6798         shared libc if not linking against libpthread.
6799         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6801 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
6803         PR target/47558
6804         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
6805         on 10.6 and later to ensure that we always use the unwinder from
6806         the system.  Only add -no_compact_unwind when tarteting darwin
6807         10.6 or later.
6809 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
6811         PR target/46997
6812         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
6813         (vec_interleave_lowv2sf): Ditto.
6814         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
6815         (vec_extract_oddv2sf): Ditto.
6817 2011-02-07  Mike Stump  <mikestump@comcast.net>
6819         PR target/42333
6820         Add __ieee_divdc3 entry point.
6821         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
6822         entry point.
6823         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
6824         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
6825         * config/darwin.c (darwin_rename_builtins): Add.
6826         * config/darwin-protos.h (darwin_rename_builtins): Add.
6828 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
6830         PR target/47636
6831         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
6832         for the condition.
6834 2011-02-07  Mike Stump  <mikestump@comcast.net>
6836         * config/darwin.opt (mmacosx-version-min): Update default OS version.
6838 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
6840         PR target/47534
6841         * config/avr/libgcc.S (exit): Move .endfunc
6843 2011-02-07  Richard Guenther  <rguenther@suse.de>
6845         PR tree-optimization/47615
6846         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
6847         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
6848         (run_scc_vn): Initialize it.
6849         (visit_reference_op_load): Use it.
6850         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
6852 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6854         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
6855         DImode trapping arithmetic libfuncs.
6857 2011-02-07  Richard Guenther  <rguenther@suse.de>
6859         PR tree-optimization/47621
6860         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
6861         two duplicates ...
6862         (execute_update_addresses_taken): ... here.  Make it more
6863         conservative in what we accept.
6865 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
6867         * config/sparc/freebsd.h (ASM_SPEC): Define.
6868         * config/sparc/vxworks.h (ASM_SPEC): Define.
6870 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
6872         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
6874 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
6876         * doc/invoke.texi: Remove reference to compiler internals from
6877         user documentation.
6879         * reg-notes.def: Remove REG_VALUE_PROFILE.
6880         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
6882 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
6884         PR middle-end/47610
6885         * varasm.c (default_section_type_flags): If decl is NULL,
6886         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
6888 2011-02-05  Jie Zhang  <jie@codesourcery.com>
6890         PR debug/42631
6891         * web.c (entry_register): Don't clobber the number of the
6892         first uninitialized reference in used[].
6894 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
6896         PR tree-optimization/46194
6897         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
6898         (build_classic_dist_vector_1): Do not represent classic distance
6899         vectors when the access functions are variating in different loops.
6901 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6903         * config/mips/iris6.opt: New.
6904         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
6906 2011-02-04  Richard Henderson  <rth@redhat.com>
6907             Steve Ellcey  <sje@cup.hp.com>
6909         PR target/46997
6910         * config/ia64/predicates.md (mux1_brcst_element): New.
6911         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
6912         * config/ia64/ia64.c (ia64_unpack_assemble): New.
6913         (ia64_unpack_sign): New.
6914         (ia64_expand_unpack): Rewrite using new routines.
6915         (ia64_expand_widen_sum): Ditto.
6916         (ia64_expand_dot_prod_v8qi): Ditto.
6917         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
6918         routines, add endian check.
6919         (pmpy2_even): Rename from pmpy2_r, add endian check.
6920         (pmpy2_odd): Rename from pmpy2_l, add endian check.
6921         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
6922         (vec_widen_smult_hi_v4hi): Ditto.
6923         (vec_widen_umult_lo_v4hi): Ditto.
6924         (vec_widen_umult_hi_v4hi): Ditto.
6925         (mulv2si3): Change endian checks.
6926         (sdot_prodv4hi): Rewrite with new calls.
6927         (udot_prodv4hi): New.
6928         (vec_pack_ssat_v4hi): Add endian check.
6929         (vec_pack_usat_v4hi): Ditto.
6930         (vec_pack_ssat_v2si): Ditto.
6931         (max1_even): Rename from max1_r, add endian check.
6932         (max1_odd): Rename from max1_l, add endian check.
6933         (*mux1_rev): Format change.
6934         (*mux1_mix): Ditto.
6935         (*mux1_shuf): Ditto.
6936         (*mux1_alt): Ditto.
6937         (*mux1_brcst_v8qi): Use new predicate.
6938         (vec_extract_evenv8qi): Remove endian check.
6939         (vec_extract_oddv8qi): Ditto.
6940         (vec_interleave_lowv4hi): Format change.
6941         (vec_interleave_highv4hi): Ditto.
6942         (mix2_even): Rename from mix2_r, add endian check.
6943         (mix2_odd): Rename from mux2_l, add endian check.
6944         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
6945         (vec_extract_evenodd_helper): Format change.
6946         (vec_extract_evenv4hi): Remove endian check.
6947         (vec_extract_oddv4hi): Remove endian check.
6948         (vec_interleave_lowv2si): Format change.
6949         (vec_interleave_highv2si): Format change.
6950         (vec_initv2si): Remove endian check.
6951         (vecinit_v2si): Add endian check.
6952         (reduc_splus_v2sf): Add endian check.
6953         (reduc_smax_v2sf): Ditto.
6954         (reduc_smin_v2sf): Ditto.
6955         (vec_initv2sf): Remove endian check.
6956         (fpack): Add endian check.
6957         (fswap): Add endian check.
6958         (vec_interleave_highv2sf): Add endian check.
6959         (vec_interleave_lowv2sf): Add endian check.
6960         (fmix_lr): Add endian check.
6961         (vec_setv2sf): Format change.
6962         (*vec_extractv2sf_0_be): Use shift to extract operand.
6963         (*vec_extractv2sf_1_be): New.
6964         (vec_pack_trunc_v4hi): Add endian check.
6965         (vec_pack_trunc_v2si): Format change.
6967 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
6969         PR inline-asm/23200
6970         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
6971         do bb, locus and block comparison and disallow loads if it is not set.
6972         (stmt_is_replaceable_p): New function.
6973         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
6974         callers.
6975         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
6976         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
6977         SSA_NAME_DEF_STMT.
6978         * tree-flow.h (stmt_is_replaceable_p): New prototype.
6980 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6982         * config/rs6000/xilinx.opt: New.
6983         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
6985 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
6987         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
6989 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
6991         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
6992         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
6993         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
6994         secondary_reload_info, xtensa_secondary_reload): Remove.
6995         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
6996         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6997         (xtensa_preferred_reload_class): Make static. Change return and
6998         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
6999         Use CONST_DOUBLE_P predicate.
7000         (xtensa_preferred_output_reload_class): New function.
7001         (xtensa_secondary_reload): Make static.
7003 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
7005         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
7006         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
7007         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
7009 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7011         PR middle-end/31490
7012         * output.h (SECTION_RELRO): Define.
7013         (SECTION_MACH_DEP): Adjust.
7014         (get_variable_section): New prototype.
7015         * varpool.c (varpool_finalize_named_section_flags): New function.
7016         (varpool_assemble_pending_decls): Call it.
7017         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
7018         * cgraphunit.c (cgraph_output_in_order): Call
7019         varpool_finalize_named_section_flags.
7020         * varasm.c (get_section): Allow section flags conflicts between
7021         relro and read-only sections if the section hasn't been declared yet.
7022         Set SECTION_OVERRIDE after diagnosing section type conflict.
7023         (get_variable_section): No longer static.
7024         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
7025         readonly sections that need relocations.
7026         (decl_readonly_section_1): New function.
7027         (decl_readonly_section): Use it.
7029         Revert:
7030         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
7031                     Steve Ellcey  <sje@cup.hp.com>
7033         PR middle-end/31490
7034         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
7035         if section attribute used.
7037 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7039         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
7040         * config/darwin.c (SECTION_NO_ANCHOR): Define.
7041         (darwin_init_sections): Remove assertion.
7043 2011-02-03  Nick Clifton  <nickc@redhat.com>
7045         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
7046         lt and ge.
7047         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
7048         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
7049         instead of "n" and "pz".
7050         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
7051         CC_FLAG_S.
7053 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
7055         PR target/47312
7056         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
7057         fma, expand FMA_EXPR as fma{,f,l} call.
7059         PR lto/47274
7060         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
7061         copy them into a unsigned char variable and pass address of it to
7062         lto_output_data_stream.
7064         PR target/47564
7065         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
7066         around backend_init_target and lang_dependent_init_target calls.
7067         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
7068         (verify_cgraph_node): Don't call set_cfun here.  Use
7069         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
7070         Set error_found for incorrectly represented calls to thunks.
7072 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7074         PR debug/43092
7075         PR rtl-optimization/43494
7076         * rtl.h (for_each_inc_dec_fn): New type.
7077         (for_each_inc_dec): Declare.
7078         * rtlanal.c (struct for_each_inc_dec_ops): New type.
7079         (for_each_inc_dec_find_inc_dec): New fn.
7080         (for_each_inc_dec_find_mem): New fn.
7081         (for_each_inc_dec): New fn.
7082         * dse.c (struct insn_size): Remove.
7083         (replace_inc_dec, replace_inc_dec_mem): Remove.
7084         (emit_inc_dec_insn_before): New fn.
7085         (check_for_inc_dec): Use it, along with for_each_inc_dec.
7086         (canon_address): Pass mem modes to cselib_lookup.
7087         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
7088         (cselib_lookup_from_insn): Likewise.
7089         (cselib_subst_to_values): Likewise.
7090         * cselib.c (find_slot_memmode): New var.
7091         (cselib_find_slot): New fn.  Use it instead of
7092         htab_find_slot_with_hash everywhere.
7093         (entry_and_rtx_equal_p): Use find_slot_memmode.
7094         (autoinc_split): New fn.
7095         (rtx_equal_for_cselib_p): Rename and implement in terms of...
7096         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
7097         Deal with autoinc.  Special-case recursion into MEMs.
7098         (cselib_hash_rtx): Likewise.
7099         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
7100         address and MEM modes.
7101         (cselib_subst_to_values): Add memmode, pass it on.
7102         Deal with autoinc.
7103         (cselib_lookup): Add memmode argument, pass it on.
7104         (cselib_lookup_from_insn): Add memmode.
7105         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
7106         (struct cselib_record_autoinc_data): New.
7107         (cselib_record_autoinc_cb): New fn.
7108         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
7109         mode to cselib_lookup.  Reset autoinced REGs here instead of...
7110         (cselib_process_insn): ... here.
7111         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
7112         to cselib_lookup.
7113         (add_uses): Likewise, also to cselib_subst_to_values.
7114         (add_stores): Likewise.
7115         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
7116         cselib_subst_to_values.
7117         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
7118         * gcse.c (do_local_cprop): Adjusted.
7119         * postreload.c (reload_cse_simplify_set): Adjusted.
7120         (reload_cse_simplify_operands): Adjusted.
7121         * sel-sched-dump (debug_mem_addr_value): Pass mode.
7123 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
7125         PR tree-optimization/45122
7126         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
7127         unsafe assumptions when there's more than one loop exit.
7129 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7131         PR target/47272
7132         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
7133         Document using vector double with the load/store builtins, and
7134         that the load/store builtins always use Altivec instructions.
7136         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
7137         to use altivec memory instructions, even on VSX.
7138         (vector_altivec_store_<mode>): Ditto.
7140         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
7141         function.
7143         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7144         V2DF, V2DI support to load/store overloaded builtins.
7146         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
7147         altivec load/store builtins for V2DF/V2DI types.
7149         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7150         set avoid indexed addresses on power6 if -maltivec.
7151         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
7152         vector_altivec_load/vector_altivec_store builtins.
7153         (altivec_expand_st_builtin): Ditto.
7154         (altivec_expand_builtin): Add VSX memory builtins.
7155         (rs6000_init_builtins): Add V2DI types to internal types.
7156         (altivec_init_builtins): Add support for V2DF/V2DI altivec
7157         load/store builtins.
7158         (rs6000_address_for_altivec): Insure memory address is appropriate
7159         for Altivec.
7161         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
7162         vec_vsx_ld and vec_vsx_st.
7163         (vsx_store_<mode>): Ditto.
7165         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
7166         variables to hold long long types for VSX vector memory builtins.
7167         (RS6000_BTI_unsigned_long_long): Ditto.
7168         (long_long_integer_type_internal_node): Ditti.
7169         (long_long_unsigned_type_internal_node): Ditti.
7171         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
7172         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
7173         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
7175         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
7176         short cuts.
7177         (vec_vsx_st): Ditto.
7179 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7181         * config/pa/pa-hpux10.opt: New.
7182         * config/hpux11.opt (pthread): New Driver option.
7183         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
7184         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
7186 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7188         * config/ia64/vms.opt: New.
7189         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
7191 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7193         PR target/47580
7194         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
7195         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
7196         generator functions.
7197         (vsx_floatuns<VSi><mode>2): Ditto.
7198         (vsx_fix_trunc<mode><VSi>2): Ditto.
7199         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
7201 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
7203         * config/i386/djgpp.opt (posix): New Driver option.
7205 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7207         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
7208         Move to the unsupported targets list.
7210 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
7212         PR rtl-optimization/47525
7213         * df-scan.c: Update copyright years.
7214         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
7215         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
7217 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7219         * config/i386/sysv4.h (TARGET_VERSION): Remove.
7220         (SUBTARGET_RETURN_IN_MEMORY): Remove.
7221         (ASM_OUTPUT_ASCII): Remove.
7222         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
7224 2011-02-02  Jeff Law  <law@redhat.com>
7226         PR middle-end/47543
7227         * reload.c (find_reloads_address): Handle reg+d address where both
7228         components are invalid by reloading the entire address.
7230 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
7231             Richard Guenther  <rguenther@suse.de>
7233         PR tree-optimization/40979
7234         PR bootstrap/47044
7235         * passes.c (init_optimization_passes): After LIM call copy_prop
7236         and DCE to clean up.
7237         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
7239 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
7241         PR tree-optimization/47576
7242         PR tree-optimization/47555
7243         * doc/invoke.texi (scev-max-expr-complexity): Documented.
7244         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
7245         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
7246         * tree-scalar-evolution.c (follow_ssa_edge): Use
7247         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
7249 2011-02-02  Richard Guenther  <rguenther@suse.de>
7251         PR tree-optimization/47566
7252         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
7254 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
7256         PR debug/47106
7257         PR debug/47402
7258         * tree-inline.c (declare_return_variable): Remove unused caller
7259         variable.
7261         PR debug/47106
7262         PR debug/47402
7263         * tree-flow-inline.h (clear_is_used, is_used_p): New.
7264         * cfgexpand.c (account_used_vars_for_block): Use them.
7265         * tree-nrv.c (tree_nrv): Likewise.
7266         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
7267         (dump_scope_block): Likewise.
7268         (remove_unused_locals): Likewise.
7270         PR debug/47106
7271         PR debug/47402
7272         * tree-inline.c (declare_return_variable): Add result decl to
7273         local decls only once.
7274         * gimple-low.c (record_vars_into): Mark newly-created variables
7275         as referenced.
7277 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
7279         PR debug/47498
7280         PR debug/47501
7281         PR debug/45136
7282         PR debug/45130
7283         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7284         debug insns.
7285         (no_real_insns_p, schedule_block, set_priorities): Drop special
7286         treatment of boundary debug insns.
7287         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7288         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
7289         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7290         (BOUNDARY_DEBUG_INSN_P): Likewise.
7291         (SCHEDULE_DEBUG_INSN_P): Likewise.
7292         * sched-rgn.c (init_ready_list): Drop special treatment of
7293         boundary debug insns.
7294         * final.c (rest_of_clean_state): Clear notes' BB.
7296 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7298         * config/openbsd.opt (assert=): New Driver option.
7300 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7302         * config/i386/nto.opt: New.
7303         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
7305 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7307         * config/i386/netware.opt: New.
7308         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
7310 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7312         * config/interix.opt (posix): New Driver option.
7314 2011-02-01  DJ Delorie  <dj@redhat.com>
7316         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
7318         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
7319         class for A0/A1.
7321 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
7323         PR tree-optimization/47561
7324         * toplev.c (process_options): Print the Graphite flags.  Add
7325         flag_loop_flatten to the list of options requiring Graphite.
7327 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7329         * config/i386/cygming.opt (posix): New Driver option.
7331 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7333         * config/arm/vxworks.opt: New.
7334         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
7336 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
7338         * config/alpha/elf.opt: New.
7339         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
7340         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
7342 2011-02-01  Richard Guenther  <rguenther@suse.de>
7344         PR tree-optimization/47559
7345         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
7346         store-motion on references that can throw.
7348 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
7350         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
7351         * tree-pass.h (TDF_CSELIB): New macro.
7352         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
7353         cselib_lookup): Check for it rather than for TDF_DETAILS.
7355 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
7357         PR driver/47547
7358         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
7359         is HOST_BIT_BUCKET.
7361         * opts.c (finish_options): Don't add x_aux_base_name if it is
7362         HOST_BIT_BUCKET.
7364 2011-02-01  Richard Guenther  <rguenther@suse.de>
7366         PR tree-optimization/47555
7367         Revert
7368         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
7370         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
7372 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
7374         PR gcc/46692
7375         * config/lm32/t-lm32: Add multilib for all CPU options.
7377 2011-02-01  Richard Guenther  <rguenther@suse.de>
7379         PR tree-optimization/47541
7380         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7381         sure to have a field at offset zero.
7383 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7385         * config/arc/arc.opt (EB, EL): New Driver options.
7387 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7389         * config/alpha/osf5.opt: New.
7390         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
7392 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
7394         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
7396 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
7398         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
7399         -floop-interchange.
7400         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
7401         is an alias of -floop-interchange and that it requires the
7402         Graphite infrastructure.
7403         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
7404         flag_loop_interchange based on the value of flag_tree_loop_linear.
7406 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
7407             Richard Guenther  <rguenther@suse.de>
7409         PR tree-optimization/47538
7410         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
7411         type instead of r1type, except for comparisons.  For right
7412         shifts and comparisons punt if there are mismatches in
7413         sizetype vs. non-sizetype types.
7415 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7417         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7418         avx_runtime.
7420 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7422         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
7423         version number.
7424         * configure: Regenerate.
7426 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7428         * configure.ac (gcc_cv_ld_static_option): Define.
7429         (gcc_cv_ld_dynamic_option): Define.
7430         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
7431         instead.
7432         (HAVE_LD_STATIC_DYNAMIC): Update message.
7433         (LD_STATIC_OPTION): Define.
7434         (LD_DYNAMIC_OPTION): Define.
7435         * configure: Regenerate.
7436         * config.in: Regenerate.
7437         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
7438         HAVE_LD_STATIC_DYNAMIC]: Use them.
7440 2011-01-31  Nick Clifton  <nickc@redhat.com>
7442         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
7443         registers inside interrupt handlers if the handler is not a leaf
7444         function.
7446 2011-01-31  Nick Clifton  <nickc@redhat.com>
7448         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
7449         reg_renumber returning an INVALID_REGNUM.
7451 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
7453         PR libgcj/44341
7454         * doc/install.texi: Document host options discarded when cross
7455         configuring target libraries.
7457 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
7459         Reverted:
7460         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
7461         PR debug/45136
7462         PR debug/45130
7463         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7464         debug insns.
7465         (no_real_insns_p, schedule_block, set_priorities): Drop special
7466         treatment of boundary debug insns.
7467         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7468         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
7469         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7470         (BOUNDARY_DEBUG_INSN_P): Likewise.
7471         (SCHEDULE_DEBUG_INSN_P): Likewise.
7472         * sched-rgn.c (init_ready_list): Drop special treatment of
7473         boundary debug insns.
7474         * final.c (rest_of_clean-state): Clear notes' BB.
7476 2011-01-31  Alan Modra  <amodra@gmail.com>
7478         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
7479         toc relative expressions as we do in print_operand_address.
7481 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
7483         * doc/extend.texi: Follow spelling conventions.
7484         * doc/invoke.texi: Fix a typo.
7486 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
7488         * config/hpux11.opt: New.
7489         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
7490         ia64*-*-hpux*): Use hpux11.opt.
7492 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
7494         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
7495         to tmake_file.
7497 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7499         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
7500         support sites.
7502 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7504         * doc/install.texi (Binaries): Remove outdated reference for
7505         Motorola 68HC11/68HC12 downloads.
7507 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7509         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
7510         Drepper's paper.
7512 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
7514         PR bootstrap/47147
7515         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
7516         used by NetBSD.
7518 2011-01-28  Ahmad Sharif  <asharif@google.com>
7520         * value-prof.c (check_counter): Corrected error message.
7522 2011-01-29  Jie Zhang  <jie@codesourcery.com>
7524         * config/arm/arm.c (arm_legitimize_reload_address): New.
7525         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
7526         arm_legitimize_reload_address.
7527         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
7529 2011-01-28  Ian Lance Taylor  <iant@google.com>
7531         * godump.c (go_define): Ignore macros whose definitions include
7532         two adjacent operands.
7534 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
7536         PR target/42894
7537         * varasm.c (force_const_mem): Store copy of x in desc->constant
7538         instead of x itself.
7539         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
7540         itself into REG_EQUAL note.
7542 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
7544         * config/freebsd.opt (posix, rdynamic): New Driver options.
7546 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7548         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
7549         -Bstatic/-Bdynamic.
7550         * configure: Regenerate.
7552 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
7554         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
7555         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
7557 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
7559         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
7560         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
7561         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7562         (s390_preferred_reload_class): Make static. Change return and
7563         'rclass' argument type to reg_class_t.
7565 2011-01-27  Jan Hubicka  <jh@suse.cz>
7567         PR middle-end/46949
7568         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
7569         (process_function_and_variable_attributes): Check defined weakrefs.
7571 2011-01-27  Martin Jambor  <mjambor@suse.cz>
7573         PR tree-optimization/47228
7574         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
7575         build_ref_for_offset.
7577 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7579         * config/spu/spu-elf.h (ASM_SPEC): Remove.
7581 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
7583         PR rtl-optimization/46856
7584         * postreload.c (reload_combine_recognize_const_pattern): Do not
7585         separate cc0 setter and user on cc0 targets.
7587 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
7589         PR c/43082
7590         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
7591         passed a VOID_TYPE expression, immediately emit an error and
7592         return error_mark_node.
7594 2011-01-26  Jeff Law  <law@redhat.com>
7596         PR rtl-optimization/47464
7597         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
7598         rather than may_trap_p as needed.
7600 2011-01-26  DJ Delorie  <dj@redhat.com>
7602         PR rtl-optimization/46878
7603         * combine.c (insn_a_feeds_b): Check for the implicit cc0
7604         setter/user dependency as well.
7606 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7608         PR rtl-optimization/44469
7609         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
7610         after removing trivially dead basic blocks.
7612 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7614         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
7615         * config/frv/frv.h (LINK_SPEC): Likewise.
7616         * config/i386/netware.h (LINK_SPEC): Likewise.
7617         * config/m68k/linux.h (ASM_SPEC): Likewise.
7618         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
7619         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7620         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7621         * config/sparc/linux.h (ASM_SPEC): Likewise.
7622         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7623         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7625 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7627         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
7628         * config/frv/frv.h (ASM_SPEC): Likewise.
7629         * config/m68k/linux.h (ASM_SPEC): Likewise.
7630         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
7631         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
7632         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7633         * config/sparc/linux.h (ASM_SPEC): Likewise.
7634         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7635         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7637 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7639         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
7640         * config/frv/frv.h (LINK_SPEC): Likewise.
7641         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
7643 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
7645         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
7646         * config/frv/frv.h (ASM_SPEC): Likewise.
7647         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
7648         * config/m68k/linux.h (ASM_SPEC): Likewise.
7649         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
7650         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
7651         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7652         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
7653         * config/sparc/linux.h (ASM_SPEC): Likewise.
7654         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7655         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7656         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
7658 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
7660         PR target/46997
7661         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
7662         (*mux2): Ditto.
7663         (vec_extract_evenodd_help): Ditto.
7664         (vec_extract_evenv4hi): Ditto.
7665         (vec_extract_oddv4hi): Ditto.
7666         (vec_interleave_lowv2si): Ditto.
7667         (vec_interleave_highv2si): Ditto.
7668         (vec_extract_evenv2si): Ditto.
7669         (vec_extract_oddv2si: Ditto.
7670         (vec_pack_trunc_v2si): Ditto.
7672 2011-01-22  Jan Hubicka  <jh@suse.cz>
7674         PR target/47237
7675         * cgraph.h (cgraph_local_info): New field can_change_signature.
7676         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
7677         signature can change.
7678         (ipcp_estimate_growth): Call sequence simplify only if calle signature
7679         can change.
7680         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
7681         (cgraph_function_versioning): We can not change signature of functions
7682         that don't allow that.
7683         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
7684         (lto_input_node): Likewise.
7685         * ipa-inline.c (compute_inline_parameters): Compute
7686         local.can_change_signature.
7687         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
7688         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
7689         functions that can not change signature.
7690         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
7691         init_cumulative_args): Do not use local calling conventions
7692         for functions that can not change signature.
7694 2011-01-22  Jan Hubicka  <jh@suse.cz>
7696         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
7698 2011-01-26  Richard Guenther  <rguenther@suse.de>
7700         PR tree-optimization/47190
7701         * cgraphunit.c (process_common_attributes): New function.
7702         (process_function_and_variable_attributes): Use it.
7704 2011-01-26  Richard Guenther  <rguenther@suse.de>
7706         PR lto/47423
7707         * cgraphbuild.c (record_eh_tables): Record reference to personality
7708         function.
7710 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
7712         PR debug/45454
7713         * sel-sched.c (moveup_expr): Don't let debug insns prevent
7714         non-debug insns from moving up.
7716 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7718         PR target/40125
7719         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
7720         t-dlldir{,-x} fragment for build and add it to tmake_file.
7721         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
7722         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
7723         * config/i386/t-dlldir: New file.
7724         (SHLIB_DLLDIR): Define.
7725         * config/i386/t-dlldir-x: New file.
7726         (SHLIB_DLLDIR): Define.
7727         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
7728         (SHLIB_INSTALL): Use it.
7730 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
7732         PR target/47246
7733         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
7734         lower bound of the allowed Thumb-2 coprocessor load/store
7735         index range to -256. Add explaining comment.
7737 2011-01-25  Ian Lance Taylor  <iant@google.com>
7739         * godump.c (go_define): Improve lexing of macro expansion to only
7740         accept expressions which match Go spec.
7742 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
7744         PR c++/43601
7745         * tree.c (handle_dll_attribute): Handle it.
7746         * doc/extend.texi (@item dllexport): Mention it.
7747         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
7749 2011-01-25  Ian Lance Taylor  <iant@google.com>
7751         PR tree-optimization/26854
7752         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
7753         (decl_jump_unsafe): Move higher in file, with no other change.
7754         (bind): Set has_jump_unsafe_decl if appropriate.
7755         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
7756         (check_earlier_gotos): Likewise.
7757         (c_check_switch_jump_warnings): Likewise.
7759 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
7761         * doc/invoke.texi (Warning Options): Add missing hyphen.
7762         (-fprofile-dir): Minor grammatical fixes.
7763         (-fbranch-probabilities): Likewise.
7765 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
7767         PR debug/45136
7768         PR debug/45130
7769         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
7770         debug insns.
7771         (no_real_insns_p, schedule_block, set_priorities): Drop special
7772         treatment of boundary debug insns.
7773         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7774         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
7775         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
7776         (BOUNDARY_DEBUG_INSN_P): Likewise.
7777         (SCHEDULE_DEBUG_INSN_P): Likewise.
7778         * sched-rgn.c (init_ready_list): Drop special treatment of
7779         boundary debug insns.
7780         * final.c (rest_of_clean-state): Clear notes' BB.
7782 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7784         * Makefile.in (LAMBDA_H): Removed.
7785         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
7786         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
7787         lambda-trans.o, and tree-loop-linear.o.
7788         (lto-symtab.o): Remove dependence on LAMBDA_H.
7789         (tree-loop-linear.o): Remove rule.
7790         (lambda-mat.o): Same.
7791         (lambda-trans.o): Same.
7792         (lambda-code.o): Same.
7793         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
7794         (tree-vect-slp.o): Same.
7795         * hwint.h (gcd): Moved here.
7796         (least_common_multiple): Same.
7797         * lambda-code.c: Removed.
7798         * lambda-mat.c: Removed.
7799         * lambda-trans.c: Removed.
7800         * lambda.h: Removed.
7801         * tree-loop-linear.c: Removed.
7802         * lto-symtab.c: Do not include lambda.h.
7803         * omega.c (gcd): Removed.
7804         * passes.c (init_optimization_passes): Remove pass_linear_transform.
7805         * tree-data-ref.c (print_lambda_vector): Moved here.
7806         (lambda_vector_copy): Same.
7807         (lambda_matrix_copy): Same.
7808         (lambda_matrix_id): Same.
7809         (lambda_vector_first_nz): Same.
7810         (lambda_matrix_row_add): Same.
7811         (lambda_matrix_row_exchange): Same.
7812         (lambda_vector_mult_const): Same.
7813         (lambda_vector_negate): Same.
7814         (lambda_matrix_row_negate): Same.
7815         (lambda_vector_equal): Same.
7816         (lambda_matrix_right_hermite): Same.
7817         * tree-data-ref.h: Do not include lambda.h.
7818         (lambda_vector): Moved here.
7819         (lambda_matrix): Same.
7820         (dependence_level): Same.
7821         (lambda_transform_legal_p): Removed declaration.
7822         (lambda_collect_parameters): Same.
7823         (lambda_compute_access_matrices): Same.
7824         (lambda_vector_gcd): Same.
7825         (lambda_vector_new): Same.
7826         (lambda_vector_clear): Same.
7827         (lambda_vector_lexico_pos): Same.
7828         (lambda_vector_zerop): Same.
7829         (lambda_matrix_new): Same.
7830         * tree-flow.h (least_common_multiple): Removed declaration.
7831         * tree-parloops.c (lambda_trans_matrix): Moved here.
7832         (LTM_MATRIX): Same.
7833         (LTM_ROWSIZE): Same.
7834         (LTM_COLSIZE): Same.
7835         (LTM_DENOMINATOR): Same.
7836         (lambda_trans_matrix_new): Same.
7837         (lambda_matrix_vector_mult): Same.
7838         (lambda_transform_legal_p): Same.
7839         * tree-pass.h (pass_linear_transform): Removed declaration.
7840         * tree-ssa-loop.c (tree_linear_transform): Removed.
7841         (gate_tree_linear_transform): Removed.
7842         (pass_linear_transform): Removed.
7843         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
7844         flag_loop_interchange.
7846 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7848         PR tree-optimization/47265
7849         PR tree-optimization/47443
7850         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
7851         if name still has some uses.
7853 2011-01-25  Martin Jambor  <mjambor@suse.cz>
7855         PR tree-optimization/47382
7856         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
7857         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
7859 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
7861         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
7862         sjlj_except_unwind_info.
7864 2011-01-25  Richard Guenther  <rguenther@suse.de>
7866         PR tree-optimization/47426
7867         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
7868         visible functions results escape.
7870 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7872         PR target/45701
7873         * config/arm/arm.c (any_sibcall_uses_r3): New function.
7874         (arm_get_frame_offsets): Use it.
7876 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7877             Jakub Jelinek  <jakub@redhat.com>
7879         PR tree-optimization/47271
7880         * tree-if-conv.c (bb_postdominates_preds): New.
7881         (if_convertible_bb_p): Call bb_postdominates_preds.
7882         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
7883         (predicate_scalar_phi): Call bb_postdominates_preds.
7885 2011-01-25  Nick Clifton  <nickc@redhat.com>
7887         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
7888         * config/rx/rx.c (rx_function_value): Likewise.
7889         (rx_promote_function_mode): Likewise.
7890         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
7891         in order to make it legitimate.
7892         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
7893         make sure that the first operand is the same as the result register.
7894         (addsi3_unspec): Delete.
7895         (subdi3): Do not accept immediate operands.
7896         (subdi3_internal): Likewise.
7898 2011-01-25  Jeff Law  <law@redhat.com>
7900         PR rtl-optimization/37273
7901         * ira-costs.c (scan_one_insn): Detect constants living in memory and
7902         handle them like argument loads from stack slots.  Do not double
7903         count memory for memory constants and argument loads from stack slots.
7905 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
7907         PR tree-optimization/47427
7908         PR tree-optimization/47428
7909         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
7910         coalesce if the new root var would be TREE_READONLY.
7912 2011-01-25  Richard Guenther  <rguenther@suse.de>
7914         PR middle-end/47414
7915         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
7916         correct type for TBAA.
7918 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7920         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
7921         (close_phi_written_to_memory): Call for_each_index with
7922         dr_indices_valid_in_loop.
7924 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7926         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
7927         when it is initialized.
7929 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7931         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
7932         call to graphite_find_data_references_in_stmt.
7933         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
7934         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
7935         call to graphite_find_data_references_in_stmt.
7936         (analyze_drs_in_stmts): Same.
7937         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
7938         in which the scalar analysis of indices is performed.
7939         (create_data_ref): Same.  Update call to dr_analyze_indices.
7940         (find_data_references_in_stmt): Update call to create_data_ref.
7941         (graphite_find_data_references_in_stmt): Same.
7942         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
7943         declaration.
7944         (create_data_ref): Same.
7945         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
7946         call to create_data_ref.
7948 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7950         * graphite-sese-to-poly.c (build_poly_scop): Move
7951         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
7953 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7955         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
7956         VAR_DECL, PARM_DECL, and RESULT_DECL.
7958 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7960         * graphite-dependences.c (reduction_dr_1): Allow several reductions
7961         in a reduction PBB.
7962         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
7963         that have already been marked as PBB_IS_REDUCTION.
7965 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7967         * graphite-scop-detection.c (same_close_phi_node): New.
7968         (remove_duplicate_close_phi): New.
7969         (make_close_phi_nodes_unique): New.
7970         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
7972 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7974         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
7975         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
7976         of both data references to be the same.
7978 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7980         * graphite-dependences.c (build_lexicographical_constraint): Remove
7981         the gdim parameter.
7982         (build_lexicographical_constraint): Adjust call to
7983         ppl_powerset_is_empty.
7984         (dependence_polyhedron): Same.
7985         (graphite_legal_transform_dr): Same.
7986         (graphite_carried_dependence_level_k): Same.
7987         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
7988         parameter.
7989         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
7991 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
7993         * graphite-sese-to-poly.c
7994         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
7995         (close_phi_written_to_memory): New.
7996         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
7997         and unshare_expr.
7999 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8001         * doc/install.texi: Update the expected version number of PPL to 0.11.
8002         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
8003         #if PPL_VERSION_MINOR < 11.
8005 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8007         * graphite-dependences.c: Include graphite-cloog-util.h.
8008         (new_poly_ddr): Inlined into dependence_polyhedron.
8009         (free_poly_ddr): Moved close by new_poly_ddr.
8010         (dependence_polyhedron_1): Renamed dependence_polyhedron.
8011         Early return NULL when ppl_powerset_is_empty returns true.
8012         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
8013         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
8014         (graphite_legal_transform_dr): Call new_poly_ddr.
8015         (graphite_carried_dependence_level_k): Same.
8016         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
8017         (dot_transformed_deps_stmt_1): Removed.
8018         (dot_deps_stmt_1): Call dot_deps_stmt_2.
8019         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
8020         (dot_deps_1): Call dot_deps_2.
8021         * Makefile.in (graphite-dependences.o): Add missing dependence on
8022         graphite-cloog-util.h.
8024 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8026         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
8027         (build_lexicographical_constraint): Same.
8028         (dependence_polyhedron_1): Same.
8029         (graphite_legal_transform_dr): Same.
8030         (graphite_carried_dependence_level_k): Same.
8031         * graphite-ppl.c (ppl_powerset_is_empty): New.
8032         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
8033         * tree-data-ref.c (dump_data_reference): Print the basic block index.
8035 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8037         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
8038         the "a followed by b" relation and document it.
8040 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8042         * graphite-dependences.c (build_lexicographical_constraint): Stop the
8043         iteration when the bag of constraints is empty.
8045 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8047         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
8049 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8051         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
8052         nest and two loop depths as parameters.
8053         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
8054         lst_perfect_nestify.
8056 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8058         * graphite-dependences.c (print_pddr): Call
8059         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
8061 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
8063         * graphite-ppl.c (debug_gmp_value): New.
8064         * graphite-ppl.h (debug_gmp_value): Declared.
8066 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
8068         * doc/install.texi: Document availability of cloog-0.16.
8070 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
8072         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
8073         invalid postdominance info.
8075 2011-01-24  Jan Hubicka  <jh@suse.cz>
8077         PR c/21659
8078         * doc/extend.texi (weak pragma): Drop claim that it must
8079         appear before definition.
8080         * varasm.c (merge_weak, declare_weak): Only sanity check
8081         that DECL is not output at a time it is declared weak.
8083 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
8085         * machmode.def: Fixed comments.
8087 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
8089         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
8091 2011-01-24  Paul Koning  <ni1d@arrl.net>
8093         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
8094         WORDS_BIG_ENDIAN.
8096 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8098         PR target/46519
8099         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
8100         (block_info): Add scanned and prev.
8101         (move_or_delete_vzeroupper_2): Return if the basic block
8102         has been scanned and the upper 128bit state is unchanged
8103         from the last scan.
8104         (move_or_delete_vzeroupper_1): Return true if the exit
8105         state is changed.
8106         (move_or_delete_vzeroupper): Visit basic blocks using the
8107         work-list based algorithm based on vt_find_locations in
8108         var-tracking.c.
8110         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
8112 2011-01-24  Nick Clifton  <nickc@redhat.com>
8114         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
8115         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
8116         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
8117         then define __v850e1__.
8118         * doc/invoke.texi: Document -mv850es.
8120 2011-01-24  Richard Henderson  <rth@redhat.com>
8122         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
8123         compound unordered comparisons.
8124         * config/rx/rx.c (rx_split_fp_compare): Remove.
8125         * config/rx/rx-protos.h: Update.
8126         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
8127         (cbranchsf4): Don't call rx_split_fp_compare.
8128         (*cbranchsf4): Use rx_split_cbranch.
8129         (*cmpsf): Don't accept "i" constraint.
8130         (*conditional_branch): Only valid after reload.
8131         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
8133 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
8135         PR target/47385
8136         * config/rs6000/altivec.md (vector constant splitters): Add
8137         support for creating vector single precision constants if -mvsx is
8138         used and we would create the constant using Altivec primitives.
8140 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
8141             Richard Sandiford  <rdsandiford@googlemail.com>
8143         PR rtl-optimization/47166
8144         * reload1.c (emit_reload_insns): Disable the spill_reg_store
8145         mechanism for PRE_MODIFY and POST_MODIFY.
8146         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
8147         reloadreg.
8149 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
8151         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
8153 2011-01-22  Jan Hubicka  <jh@suse.cz>
8155         PR lto/47333
8156         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
8158 2011-01-22  Jan Hubicka  <jh@suse.cz>
8160         PR tree-optimization/43884
8161         PR lto/44334
8162         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
8163         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
8165 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
8167         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8168         * config/s390/s390.c (s390_register_move_cost,
8169         s390_memory_move_cost): New.
8170         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8172 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8174         PR middle-end/47401
8175         * except.c (sjlj_assign_call_site_values): Move setting the
8176         crtl->uses_eh_lsda flag to ...
8177         (sjlj_mark_call_sites): ... here.
8178         (sjlj_emit_function_enter): Support NULL dispatch label.
8179         (sjlj_build_landing_pads): In a function with no landing pads
8180         that still has must-not-throw regions, generate code to register
8181         a personality function with empty LSDA.
8183 2011-01-21  Richard Henderson  <rth@redhat.com>
8185         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
8187         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
8189         * compare-elim.c: New file.
8190         * Makefile.in (OBJS-common): Add it.
8191         (compare-elim.o): New.
8192         * common.opt (fcompare-elim): New.
8193         * opts.c (default_options_table): Add OPT_fcompare_elim.
8194         * tree-pass.h (pass_compare_elim_after_reload): New.
8195         * passes.c (init_optimization_passes): Add it.
8196         * recog.h: Protect against re-inclusion.
8197         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
8198         * doc/invoke.texi (-fcompare-elim): Document it.
8199         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
8200         * doc/tm.texi: Rebuild.
8202 2011-01-22  Nick Clifton  <nickc@redhat.com>
8204         * config/rx/rx.md (cstoresf4): Pass comparison operator to
8205         rx_split_fp_compare.
8207 2011-01-22  Nick Clifton  <nickc@redhat.com>
8209         * config/rx/rx.md (UNSPEC_CONST): New.
8210         (deallocate_and_return): Wrap the amount popped off the stack in
8211         an UNSPEC_CONST in order to stop it being rejected by
8212         -mmax-constant-size.
8213         (pop_and_return): Add a "(return)" rtx.
8214         (call): Drop the immediate operand.
8215         (call_internal): Likewise.
8216         (call_value): Likewise.
8217         (call_value_internal): Likewise.
8218         (sibcall_internal): Likewise.
8219         (sibcall_value_internal): Likewise.
8220         (sibcall): Likewise.  Generate an explicit call using
8221         sibcall_internal.
8222         (sibcall_value): Likewise.
8223         (mov<>): FAIL if a constant operand is not legitimate.
8224         (addsi3_unpsec): New pattern.
8226         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
8227         (ok_for_max_constant): New function.
8228         (gen_safe_add): New function.
8229         (rx_expand_prologue): Use gen_safe_add.
8230         (rx_expand_epilogue): Likewise.
8231         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
8232         UNSPEC CONSTs.
8234 2011-01-21  Jeff Law  <law@redhat.com>
8236         PR tree-optimization/47053
8237         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
8238         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
8239         statements are deleted.
8240         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
8241         is nonempty, then purge dead edges and cleanup the CFG.
8243 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8245         PR debug/47402
8246         Temporarily revert:
8247         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8248         PR debug/47106
8249         * tree-dfa.c (create_var_ann): Mark variable as used.
8251 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8253         PR middle-end/45566
8254         * except.c (convert_to_eh_region_ranges): Emit queued no-region
8255         notes from other section in hot/cold partitioning even if
8256         last_action is -3.  Increment call_site_base.
8258         PR rtl-optimization/47366
8259         * fwprop.c (forward_propagate_into): Return bool.  If
8260         any changes are made, -fnon-call-exceptions is used and
8261         REG_EH_REGION note is present, call purge_dead_edges
8262         and return true if it purged anything.
8263         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
8264         any EH edges were purged.
8266 2011-01-21  Jeff Law  <law@redhat.com>
8268         PR rtl-optimization/41619
8269         * caller-save.c (setup_save_areas): Break out code to determine
8270         which hard regs are live across calls by examining the reload chains
8271         so that it is always used.
8272         Eliminate code which checked REG_N_CALLS_CROSSED.
8274 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8276         PR tree-optimization/47355
8277         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
8278         NOP has non-debug uses beyond PHIs in new_bb.
8280 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
8282         PR debug/47106
8283         * cfgexpand.c (account_used_vars_for_block): Only account vars
8284         that are annotated as used.
8285         (estimated_stack_frame_size): Don't set TREE_USED.
8286         * tree-dfa.c (create_var_ann): Mark variable as used.
8288 2011-01-21  Richard Guenther  <rguenther@suse.de>
8290         PR middle-end/47395
8291         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
8293 2011-01-21  Richard Guenther  <rguenther@suse.de>
8295         PR tree-optimization/47365
8296         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
8297         (vn_reference_lookup_pieces): Adjust.
8298         (vn_reference_lookup): Likewise.
8299         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
8300         (vn_reference_lookup_3): Only look through kills if in
8301         VN_WALKREWRITE mode.
8302         (vn_reference_lookup_pieces): Adjust.
8303         (vn_reference_lookup): Likewise.
8304         (visit_reference_op_load): Likewise.
8305         (visit_reference_op_store): Likewise.
8306         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
8307         (compute_avail): Likewise.
8308         (eliminate): Likewise.
8310 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
8312         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
8313         DECL_IGNORED_P non-reg vars if they are used.
8315         PR tree-optimization/47391
8316         * varpool.c (const_value_known_p): Return false if
8317         decl is volatile.
8319 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
8321         PR bootstrap/47215
8322         * config/i386/i386.c (ix86_local_alignment): Handle
8323         case for va_list_type_node is nil.
8324         (ix86_canonical_va_list_type): Likewise.
8326 2011-01-21  Alan Modra  <amodra@gmail.com>
8328         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
8329         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
8331 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8333         * config/arm/arm.md (define_attr type): Rename f_load
8334         and f_store to f_fpa_load and f_fpa_store. Update.
8335         (write_conflict): Deal with rename fallout.
8336         (*push_fp_multi): Likewise.
8337         * config/arm/fpa.md (f_load): Use f_fpa_load.
8338         (f_store): Use f_fpa_store.
8339         (*movsf_fpa): Likewise.
8340         (*movdf_fpa): Likewise.
8341         (*movxf_fpa): Likewise.
8342         (*thumb2_movsf_fpa): Likewise.
8343         (*thumb2_movdf_fpa): Likewise.
8344         (*thumb2_movxf_fpa): Likewise.
8345         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
8346         f_loadd and f_stored.
8347         (*thumb2_movdi_vfp): Likewise.
8348         (*thumb2_movsf_vfp): Fix attribute to f_loads.
8349         (*thumb2_movsi_vfp): Likewise.
8350         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
8351         Use f_loads instead of f_load.
8352         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
8354 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
8356         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8357         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
8358         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8359         (xtensa_mode_dependent_address_p): New function.
8360         (constantpool_address_p): Make static. Change return type to bool.
8361         Change argument type to const_rtx. Use CONST_INT_P predicate.
8363 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
8365         PR debug/46583
8366         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
8368 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
8370         PR debug/47283
8371         * cfgexpand.c (expand_debug_expr): Instead of generating
8372         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
8373         etc. handling.
8375 2011-01-20  Richard Guenther  <rguenther@suse.de>
8377         PR middle-end/47370
8378         * tree-inline.c (remap_gimple_op_r): Recurse manually for
8379         the pointer operand of MEM_REFs.
8381 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
8383         PR tree-optimization/46130
8384         * ipa-split.c (consider_split): If return_bb contains non-virtual
8385         PHIs other than for retval or if split_function would not adjust it,
8386         refuse to split.
8388 2011-01-20  Richard Guenther  <rguenther@suse.de>
8390         PR tree-optimization/47167
8391         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
8392         Revert previous change, only avoid enumeral type changes.
8394 2011-01-19  Mike Stump  <mikestump@comcast.net>
8396         * doc/tm.texi.in (BRANCH_COST): Englishify.
8397         * doc/tm.texi (BRANCH_COST): Likewise.
8399 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
8401         PR c++/47291
8402         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
8403         (gen_scheduled_generic_parms_dies): New functions.
8404         (gen_struct_or_union_type_die): Schedule template parameters DIEs
8405         generation for the end of CU compilation.
8406         (dwarf2out_finish): Generate template parameters DIEs here.
8408 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8410         PR debug/46240
8411         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
8412         debug bind stmt on merge edges.
8414 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8416         PR debug/47079
8417         PR debug/46724
8418         * function.c (instantiate_expr): Instantiate incoming rtl of
8419         implicit arguments, and recurse on VALUE_EXPRs.
8420         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
8421         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
8423 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
8425         * c-parser.c (c_parser_for_statement): Initialize
8426         collection_expression.
8428 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8430         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
8432 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8434         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
8435         (LINK_SHLIB_SPEC): Don't use %(link_path).
8436         (SUBTARGET_EXTRA_SPECS): Remove link_path.
8438 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8440         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
8441         (NO_SHARED_LIB_SUPPORT): Remove.
8442         (LINK_SHLIB_SPEC): Remove one conditional definition.
8444 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
8446         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
8447         %{call_shared}.
8448         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
8449         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
8450         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
8451         %{call_shared} and conditionals on these options not being passed.
8452         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
8453         %{call_shared}.
8455 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
8457         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
8458         simplify.
8460         * ipa-split.c: Spelling fixes.
8462 2011-01-19  Richard Henderson  <rth@redhat.com>
8464         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
8465         (*mulsi3): Likewise.
8467         * longlong.h [__mn10300__] (count_leading_zeros): New.
8468         [__mn10300__] (umul_ppmm, smul_ppmm): New.
8469         [__mn10300__] (add_ssaaaa, subddmmss): New.
8470         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
8471         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
8473 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8475         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
8477 2011-01-19  Richard Henderson  <rth@redhat.com>
8479         * config/mn10300/mn10300.md (addsi3_flags): New.
8480         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
8481         (subsi3_flags, subc_internal, subdi3): New.
8482         (subdi3_internal, *subdi3_degenerate): New.
8483         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
8485         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
8486         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
8487         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
8488         * config/mn10300/mn10300-protos.h: Update.
8489         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
8490         (return_ret): Likewise.  Rename from return_internal_regs.
8491         (return_internal): Remove.
8493         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
8494         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
8495         (mn10300_legitimate_constant_p): Likewise.
8496         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
8497         (mn10300_frame_size): New.
8498         (mn10300_expand_prologue): Use it.
8499         (mn10300_expand_epilogue): Likewise.
8500         (mn10300_initial_offset): Likewise.
8501         * config/mn10300/mn10300-protos.h: Update.
8502         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
8503         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
8504         (prologue, epilogue, return_internal): Tidy output code.
8505         (mn10300_store_multiple_operation, return): Likewise.
8506         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
8507         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
8508         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
8509         (load_pic, am33_load_pic): New.
8510         (mn10300_load_pic0, mn10300_load_pic1): New.
8512         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
8513         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
8514         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
8515         (cc_flags_for_mode, cc_flags_for_code): New.
8516         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
8517         overflow flag is not valid.  Validate that the flags we need
8518         for the comparison are valid.
8519         (mn10300_output_cmp): Remove.
8520         (mn10300_output_add): New.
8521         (mn10300_select_cc_mode): Use cc_flags_for_code.
8522         (mn10300_split_cbranch): New.
8523         (mn10300_match_ccmode): New.
8524         (mn10300_split_and_operand_count): New.
8525         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
8526         to the function.
8527         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
8528         (addsi3): ... here.  Use mn10300_output_add.
8529         (*addsi3_flags): New.
8530         (*am33_subsi3, *mn10300_subsi3): Merge...
8531         (subsi3): ... here.  Use attribute isa.
8532         (*subsi3_flags): New.
8533         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
8534         when possible.
8535         (*am33_andsi3, *mn10300_andsi3): Merge...
8536         (andsi3): ... here.
8537         (*andsi3_flags): New.
8538         (andsi3 splitters): New.
8539         (*am33_iorsi3, *mn10300_iorsi3): Merge...
8540         (iorsi3): ... here.
8541         (*iorsi3_flags): New.
8542         (*am33_xorsi3, *mn10300_xorsi3): Merge...
8543         (xorsi3): ... here.
8544         (*xorsi3_flags): New.
8545         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
8546         (one_cmplsi2): ... here.
8547         (*one_cmplsi2_flags): New.
8548         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
8549         instead of "dax" in constraints.  Use mn10300_split_cbranch.
8550         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
8551         use matching constraints to eliminate a self-comparison.
8552         (*integer_conditional_branch): Rename from integer_conditional_branch.
8553         Use int_mode_flags to match CC_REG.
8554         (*cbranchsi4_btst, *btstsi): New.
8555         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
8556         mn10300_split_cbranch.
8557         (*am33_cmpsf): Rename from am33_cmpsf.
8558         (*float_conditional_branch): Rename from float_conditional_branch.
8559         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
8560         (zero_extendqisi2): ... here.
8561         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
8562         (zero_extendhisi2): ... here.
8563         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
8564         (extendqisi2): ... here.
8565         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
8566         (extendhisi2): ... here.
8567         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
8568         (ashlsi3): ... here.
8569         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
8570         (lshrsi3): ... here.
8571         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
8572         (ashrsi3): ... here.
8573         (consecutive add peephole): Remove.
8574         * config/mn10300/predicates.md (label_ref_operand): New.
8575         (int_mode_flags): New.
8576         (CCZN_comparison_operator): New.
8578         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
8579         (throughput_42_latency_43): New reservation.
8580         (mulsidi3, umulsidi3): New expanders.
8581         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
8582         the MDR register to allocation; separately allocate the low and
8583         high parts of the DImode result.
8584         (umulsidi3_internal): Similarly.
8585         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
8586         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
8587         (udivsi3, umodsi3): Remove.
8588         (udivmodsi4, divmodsi4): New expanders.
8589         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
8590         (*divmodsi4): Simiarly.
8591         (ext_internal): New.
8593         * config/mn10300/constraints.md ("z"): New constraint.
8594         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
8595         (FIXED_REGISTERS): Don't fix MDR.
8596         (CALL_USED_REGSITERS): Reformat nicely.
8597         (REG_ALLOC_ORDER): Add MDR.
8598         (enum regclass): Add MDR_REGS.
8599         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
8600         (IRA_COVER_CLASSES): Add MDR_REGS.
8601         (REGNO_REG_CLASS): Handle MDR_REG.
8602         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
8603         (mn10300_register_move_cost): Likewise.
8604         * config/mn10300/mn10300.md (MDR_REG): New.
8605         (*movsi_internal): Handle moves to/from MDR_REGS.
8607         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
8608         POST_MODIFY.
8609         (mn10300_secondary_reload): Tidy combination reload classes.
8610         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
8611         addresses for AM33.  Allow symbolic offsets for reg+imm.
8612         (mn10300_regno_in_class_p): New.
8613         (mn10300_legitimize_reload_address): New.
8614         * config/mn10300/mn10300.h (enum reg_class): Remove
8615         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
8616         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
8617         SP_OR_GENERAL_REGS.
8618         (REG_CLASS_NAMES): Update to match.
8619         (REG_CLASS_CONTENTS): Likewise.
8620         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
8621         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
8622         (REGNO_IN_RANGE_P): Remove.
8623         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
8624         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
8625         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
8626         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
8627         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
8628         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
8629         (REGNO_GENERAL_P): New.
8630         (HAVE_POST_MODIFY_DISP): New.
8631         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
8632         (LEGITIMIZE_RELOAD_ADDRESS): New.
8633         * config/mn10300/mn10300-protos.h: Update.
8635         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
8636         DATA_REGS for AM33 stack-pointer destination.
8637         (mn10300_preferred_output_reload_class): Likewise.
8638         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
8639         into a form appropriate for ...
8640         (TARGET_SECONDARY_RELOAD): New.
8641         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
8642         * config/mn10300/mn10300-protos.h: Update.
8643         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
8644         reload_insi; use the "A" constraint for the scratch; handle AM33
8645         moves of sp to non-address registers.
8647         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
8648         (*movqi_internal): ... here.
8649         (*am33_movhi, *mn10300_movhi): Merge into...
8650         (*movhi_internal): ... here.
8651         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
8652         as the source/destination of moves from/to SP.
8653         (movsf): Only allow for AM33-2.
8654         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
8655         any integer constant constraint.  Only allow for AM33-2.  Tidy
8656         all of the alternative outputs.
8657         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
8658         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
8659         for MN103.
8660         (udivsi3, umodsi3): New patterns for MN103 only.
8662 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
8664         * doc/tm.texi.in: Spell out that a lack of register class unions
8665         can lead to ICEs.
8666         * doc/tm.texi: Regenerate.
8668 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
8670         PR rtl-optimization/47337
8671         * dce.c (check_argument_store): New function.
8672         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
8674         PR tree-optimization/47290
8675         * tree-eh.c (infinite_empty_loop_p): New function.
8676         (cleanup_empty_eh): Use it.
8678 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
8680         PR target/46997
8681         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
8682         (a64_expand_widen_sum): Ditto.
8683         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
8684         (vec_extract_evenodd_help): Ditto.
8685         (vec_extract_evenv4hi): Ditto.
8686         (vec_extract_oddv4hi): Ditto.
8687         (vec_extract_evenv2si): Ditto.
8688         (vec_extract_oddv2si): Ditto.
8689         (vec_extract_evenv2sf): Ditto.
8690         (vec_extract_oddv2sf): Ditto.
8691         (vec_pack_trunc_v4hi: Ditto.
8692         (vec_pack_trunc_v2si): Ditto.
8693         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
8694         (vec_interleave_highv8qi): Ditto.
8695         (mix1_r): Ditto.
8696         (vec_extract_oddv8qi): Ditto.
8697         (vec_interleave_lowv4hi): Ditto.
8698         (vec_interleave_highv4hi): Ditto.
8699         (vec_interleave_lowv2si): Ditto.
8700         (vec_interleave_highv2si): Ditto.
8702 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8704         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
8705         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
8706         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
8707         (pa_c_mode_for_suffix): New.
8708         (TARGET_EXPAND_BUILTIN): Define.
8709         (TARGET_C_MODE_FOR_SUFFIX): Define.
8710         (pa_builtins): Define.
8711         (pa_init_builtins): Register __float128 type and init new support
8712         builtins.
8713         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
8714         * config/pa/quadlib.c (_U_Qfcopysign): New.
8716 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
8718         PR middle-end/46894
8719         * explow.c (allocate_dynamic_stack_space): Do not assume more than
8720         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
8721         are defined.
8723 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8725         PR tree-optimization/47179
8726         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
8727         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
8729 2011-01-18  Richard Guenther  <rguenther@suse.de>
8731         PR rtl-optimization/47216
8732         * emit-rtl.c: Include tree-flow.h.
8733         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
8734         of replicating it with different semantics.
8735         * Makefile.in (emit-rtl.o): Adjust.
8737 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8739         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
8740         (cortex_a9_dp): Handle neon types correctly.
8742 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
8744         PR rtl-optimization/47299
8745         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
8746         subtarget.  Use normal multiplication if both operands are constants.
8747         * expmed.c (expand_widening_mult): Don't try to optimize constant
8748         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
8749         before using it.
8751 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8753         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
8754         spacing after 'e.g.', typos, comma, hyphenation.
8756 2011-01-17  Richard Henderson  <rth@redhat.com>
8758         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
8759         (rx_restricted_mem_operand): New.
8760         (rx_shift_operand): Use register_operand.
8761         (rx_source_operand, rx_compare_operand): Likewise.
8762         * config/rx/rx.md (addsi3_flags): New expander.
8763         (adddi3): Rewrite as expander.
8764         (adc_internal, *adc_flags, adddi3_internal): New patterns.
8765         (subsi3_flags): New expander.
8766         (subdi3): Rewrite as expander.
8767         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
8769         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
8770         (rx_init_builtins): Remove sat builtin.
8771         (rx_expand_builtin): Likewise.
8772         * config/rx/rx.md (ssaddsi3): New.
8773         (*sat): Rename from sat.  Represent the CC_REG input.
8775         * config/rx/predicates.md (rshift_operator): New.
8776         * config/rx/rx.c (rx_expand_insv): Remove.
8777         * config/rx/rx-protos.h: Update.
8778         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
8779         operand to the canonical position.
8780         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
8781         (*bitclr, *bitclr_in_memory): Similarly.
8782         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
8783         (insv): Retain the zero_extract in the expansion.
8785         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
8786         (bswaphi2, bitinvert, revw): Likewise.
8788         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
8789         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
8790         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
8791         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
8792         (bitset, bitset_in_memory): Likewise.
8793         (bitinvert, bitinvert_in_memory): Likewise.
8794         (bitclr, bitclr_in_memory): Likewise.
8795         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
8796         (rx_strend, rx_cmpstrn): Likewise.
8797         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
8798         (bitop peep2 patterns): Remove.
8800         * config/rx/rx.c (rx_match_ccmode): New.
8801         * config/rx/rx-protos.h: Update.
8802         * config/rx/rx.md (abssi2): Clobber, don't set flags.
8803         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
8804         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
8805         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
8806         (fix_truncsfsi2, floatsisf2): Likewise.
8807         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
8808         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
8809         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
8810         (*subsi3_flags, *xorsi3_flags): New.
8812         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
8814         * config/rx/rx.c (rx_print_operand): Remove workaround for
8815         unsplit comparison operations.
8817         * config/rx/rx.md (movsicc): Split after reload.
8818         (*movsicc): Merge *movsieq and *movsine via match_operator.
8819         (*stcc): New pattern.
8821         * config/rx/rx.c (rx_float_compare_mode): Remove.
8822         * config/rx/rx.h (rx_float_compare_mode): Remove.
8823         * config/rx/rx.md (cstoresi4): Split after reload.
8824         (*sccc): New pattern.
8826         * config/rx/predicates.md (label_ref_operand): New.
8827         (rx_z_comparison_operator): New.
8828         (rx_zs_comparison_operator): New.
8829         (rx_fp_comparison_operator): New.
8830         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
8831         Validate that the flags are set properly for the comparison.
8832         (rx_gen_cond_branch_template): Remove.
8833         (rx_cc_modes_compatible): Remove.
8834         (mode_from_flags): New.
8835         (flags_from_code): Rename from flags_needed_for_conditional.
8836         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
8837         (rx_select_cc_mode): Likewise.
8838         (rx_split_fp_compare): New.
8839         (rx_split_cbranch): New.
8840         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
8841         (*cbranchsi4): Use match_operator and rx_split_cbranch.
8842         (*cbranchsf4): Similarly.
8843         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
8844         match_operator and rx_split_cbranch.
8845         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
8846         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
8847         (*cmpsi): Rename from cmpsi.
8848         (*tstsi): Rename from tstsi.
8849         (*cmpsf): Rename from cmpsf; use CC_Fmode.
8850         (*conditional_branch): Rename from conditional_branch.
8851         (*reveresed_conditional_branch): Remove.
8852         (b<code>): Remove expander.
8853         * config/rx/rx-protos.h: Update.
8855         * config/rx/rx.c (rx_compare_redundant): Remove.
8856         * config/rx/rx.md (cmpsi): Don't use it.
8857         * config/rx/rx-protos.h: Update.
8859         * config/rx/rx-modes.def (CC_F): New mode.
8860         * config/rx/rx.c (rx_select_cc_mode): New.
8861         * config/rx/rx.h (SELECT_CC_MODE): Use it.
8862         * config/rx/rx-protos.h: Update.
8864 2011-01-17  Richard Henderson  <rth@redhat.com>
8866         * except.c (dump_eh_tree): Fix stray ; after for statement.
8868 2011-01-17  Richard Guenther  <rguenther@suse.de>
8870         PR tree-optimization/47313
8871         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
8872         handling before copying the body.  Properly deal with
8873         by-reference result in SSA form.
8875 2011-01-17  Ian Lance Taylor  <iant@google.com>
8877         PR target/47219
8878         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
8879         (struct_value_alias_set): Don't define.
8880         (sparc_option_override): Don't set sparc_sr_alias_set and
8881         struct_value_alias_set.
8882         (save_or_restore_regs): Use gen_frame_mem rather than calling
8883         set_mem_alias_set.
8884         (sparc_struct_value_rtx): Likewise.
8886 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
8888         PR target/47318
8889         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
8890         (_mm_maskstore_pd): Likewise.
8891         (_mm_maskload_ps): Likewise.
8892         (_mm_maskstore_ps): Likewise.
8893         (_mm256_maskload_pd): Change mask to __m256i.
8894         (_mm256_maskstore_pd): Likewise.
8895         (_mm256_maskload_ps): Likewise.
8896         (_mm256_maskstore_ps): Likewise.
8898         * config/i386/i386-builtin-types.def: Updated.
8899         (ix86_expand_special_args_builtin): Likewise.
8901         * config/i386/i386.c (bdesc_special_args): Update
8902         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
8903         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
8904         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
8905         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
8907         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
8908         Use <avxpermvecmode> on mask register.
8909         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
8911 2011-01-17  Olivier Hainque  <hainque@adacore.com>
8912             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
8913             Eric Botcazou  <ebotcazou@adacore.com>
8915         PR target/46655
8916         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
8917         if <= USHRT_MAX in 32-bit mode.
8919 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8921         * doc/install.texi (Configuration, Specific): Wrap long
8922         lines in examples.  Allow line wrapping in long options
8923         and URLs where beneficial for PDF output.
8925 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
8927         * config/mips/mips.c (mips_classify_symbol): Don't return
8928         SYMBOL_PC_RELATIVE for nonlocal labels.
8930 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
8932         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
8934 2011-01-15  Jan Hubicka  <jh@suse.cz>
8936         PR tree-optimization/47276
8937         * ipa.c (function_and_variable_visibility): Do not try to mark alias
8938         declarations as needed.
8940 2011-01-15  Martin Jambor  <mjambor@suse.cz>
8942         * common.opt (fdevirtualize): New flag.
8943         * doc/invoke.texi (Option Summary): Document it.
8944         * opts.c (default_options_table): Add devirtualize flag.
8945         * ipa-prop.c (detect_type_change): Return immediately if
8946         devirtualize flag is not set.
8947         (detect_type_change_ssa): Likewise.
8948         (compute_known_type_jump_func): Likewise.
8949         (ipa_analyze_virtual_call_uses): Likewise.
8951 2011-01-14  Martin Jambor  <mjambor@suse.cz>
8953         PR tree-optimization/45934
8954         PR tree-optimization/46302
8955         * ipa-prop.c (type_change_info): New type.
8956         (stmt_may_be_vtbl_ptr_store): New function.
8957         (check_stmt_for_type_change): Likewise.
8958         (detect_type_change): Likewise.
8959         (detect_type_change_ssa): Likewise.
8960         (compute_complex_assign_jump_func): Check for dynamic type change.
8961         (compute_complex_ancestor_jump_func): Likewise.
8962         (compute_known_type_jump_func): Likewise.
8963         (compute_scalar_jump_functions): Likewise.
8964         (ipa_analyze_virtual_call_uses): Likewise.
8965         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
8967 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8969         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
8970         * config/i386/i386.opt (msse5): New Alias.
8972 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8974         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
8975         * config/sparc/linux64.h (CC1_SPEC): Likewise.
8976         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8977         * config/sparc/sparc.h (CC1_SPEC): Likewise.
8979 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8981         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
8982         -mcpu options.
8983         * config/sparc/linux64.h (CC1_SPEC): Likewise.
8984         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8985         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
8986         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
8987         Likewise.
8988         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
8990 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
8992         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
8994 2011-01-14  Mike Stump  <mikestump@comcast.net>
8996         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
8997         * config/fr30/fr30.md: Likweise
8998         (movsi_push): Likewise.
8999         (movsi_pop): Likewise.
9000         (enter_func): Likewise.
9001         * config/moxie/moxie.md (movsi_push): Likewise.
9002         (movsi_pop): Likewise.
9004 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9006         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
9007         %{no_archive} %{exact_version}.
9008         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
9009         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
9010         %{no_archive} %{exact_version}.
9011         * config/mips/openbsd.h (LINK_SPEC): Likewise.
9012         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
9013         * config/mips/vxworks.h: Likewise.
9015 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9017         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
9019 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9021         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
9022         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
9024 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9026         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
9027         -nodefaultlib.
9029 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9031         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
9032         for mcpu not cpu.
9033         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
9034         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
9035         not cpu.
9036         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
9037         Don't handle -shlib.
9039 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9041         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
9042         (CC1_SPEC): Don't handle -profile.
9044 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9046         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
9047         * config/mips/mips.h (CC1_SPEC): Likewise.
9049 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9051         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
9052         * config/mips/mips.h (CC1_SPEC): Likewise.
9054 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9056         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
9057         * config/m32r/linux.h (LINK_SPEC): Likewise.
9058         * config/mips/linux.h (LINK_SPEC): Likewise.
9059         * config/mips/linux64.h (LINK_SPEC): Likewise.
9060         * config/sparc/linux.h (LINK_SPEC): Likewise.
9061         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9062         LINK_SPEC): Likewise.
9063         * config/xtensa/linux.h (LINK_SPEC): Likewise.
9065 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9067         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
9068         %{version:-v}.
9069         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
9071 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9073         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
9074         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
9076 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
9078         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
9080 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9082         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
9083         supports -Bstatic/-Bdynamic.
9084         * configure: Regenerate.
9086 2011-01-14  Jan Hubicka  <jh@suse.cz>
9087             Jack Howarth  <howarth@bromo.med.uc.edu>
9089         PR target/46037
9090         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
9091         when checking debug_info_level. Test write_symbols instead of
9092         debug_hooks->var_location when setting flag_var_tracking_uninit.
9094 2011-01-14  Richard Guenther  <rguenther@suse.de>
9096         PR tree-optimization/47179
9097         * target.def (ref_may_alias_errno): New target hook.
9098         * targhooks.h (default_ref_may_alias_errno): Declare.
9099         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
9100         (default_ref_may_alias_errno): New function.
9101         * target.h (struct ao_ref_s): Declare.
9102         * tree-ssa-alias.c: Include target.h.
9103         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
9104         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
9105         (targhooks.o): Likewise.
9106         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
9107         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
9109 2011-01-14  Richard Guenther  <rguenther@suse.de>
9111         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
9113 2011-01-14  Richard Guenther  <rguenther@suse.de>
9115         PR tree-optimization/47280
9116         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
9117         return CFG changes.
9118         (tree_ssa_forward_propagate_single_use_vars): Deal with
9119         CFG changes from associate_plusminus.
9121 2011-01-14  Richard Guenther  <rguenther@suse.de>
9123         PR middle-end/47281
9124         Revert
9125         2011-01-11  Richard Guenther  <rguenther@suse.de>
9127         PR tree-optimization/46076
9128         * tree-ssa.c (useless_type_conversion_p): Conversions from
9129         unprototyped to empty argument list function types are useless.
9131 2011-01-14  Richard Guenther  <rguenther@suse.de>
9133         PR tree-optimization/47286
9134         * tree-ssa-structalias.c (new_var_info): Register variables are global.
9136 2011-01-14  Martin Jambor  <mjambor@suse.cz>
9138         PR middle-end/46823
9139         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
9141 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
9143         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
9144         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9145         * config/xtensa/xtensa.c (xtensa_libcall_value,
9146         xtensa_function_value_regno_p): New functions.
9147         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9149 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
9151         PR c++/47213
9152         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
9153         PE specific hook.
9154         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
9155         New function prototype.
9156         * config/i386/winnt.c (i386_pe_assemble_visibility):
9157         Warn only if attribute was specified by user.
9159 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9161         PR target/47251
9162         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
9163         floating point.
9164         (floatunsdidf2_fcfidu): Ditto.
9166 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9168         * config/s390/s390.c (print_operand_address): Replace 'error' with
9169         'output_operand_lossage'.
9170         (print_operand): Likewise.
9172 2011-01-13  Jeff Law  <law@redhat.com>
9174         PR rtl-optimization/39077
9175         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
9176         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
9177         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
9178         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
9179         * gcse.c (prune_insertions_deletions): New function.
9180         (compute_pre_data): Use it.
9182 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
9184         PR debug/PR46973
9185         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
9186         static function.
9187         (prune_unused_types_mark): Use it.
9189 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
9191         PR rtl-optimization/45352
9192         * sel-sched.c: Update copyright years.
9193         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
9194         in the advancing loop when we have issued issue_rate insns.
9196 2011-01-12  Richard Henderson  <rth@redhat.com>
9198         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
9199         (TARGET_MD_ASM_CLOBBERS): New.
9201         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
9202         (TARGET_DELEGITIMIZE_ADDRESS): New.
9204         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
9205         (clzsi2, *bsch): New patterns.
9207         * config/mn10300/mn10300.md (INT): New mode iterator.
9208         (*mov<INT>_clr): New pattern, and peep2 to generate it.
9210         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
9211         flag_split_wide_types.
9213         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
9214         (mn10300_trampoline_init): Rewrite without a template, an immediate
9215         load and a direct branch.
9216         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
9218 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
9220         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9221         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
9222         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
9223         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9225 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
9227         PR debug/47209
9228         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
9229         of type.
9231 2011-01-12  Jan Hubicka  <jh@suse.cz>
9233         PR driver/47244
9234         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
9235         (PLUGIN_COND_CLOSE): New macro.
9236         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
9238 2011-01-12  Richard Guenther  <rguenther@suse.de>
9240         PR lto/47259
9241         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
9242         register variables in a MEM_REF.
9244 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
9246         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
9247         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
9248         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
9249         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
9250         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
9251         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
9252         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
9253         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
9254         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
9255         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
9256         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
9257         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
9258         * config/gnu-user.h: New.  Copied from linux.h.
9259         (LINUX_TARGET_STARTFILE_SPEC): Rename to
9260         GNU_USER_TARGET_STARTFILE_SPEC.
9261         (LINUX_TARGET_ENDFILE_SPEC): Rename to
9262         GNU_USER_TARGET_ENDFILE_SPEC.
9263         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
9264         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
9265         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
9266         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
9267         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
9268         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9269         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
9270         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
9271         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
9272         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
9273         * config/arm/linux-eabi.h (CC1_SPEC): Use
9274         GNU_USER_TARGET_CC1_SPEC.
9275         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
9276         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
9277         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
9278         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
9279         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
9280         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
9281         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
9282         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
9284 2011-01-12  Richard Guenther  <rguenther@suse.de>
9286         PR other/46946
9287         * doc/invoke.texi (ffast-math): Document it is turned on
9288         with -Ofast.
9290 2011-01-12  Jan Hubicka  <jh@suse.cz>
9292         PR tree-optimization/47233
9293         * opts.c (common_handle_option): Disable ipa-reference with profile
9294         feedback.
9296 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9298         * c-parser.c (c_parser_objc_at_property_declaration): Improved
9299         error message.
9301 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
9303         * c-parser.c (c_lex_one_token): Updated and reindented some
9304         comments.  No changes in code.
9306 2011-01-11  Ian Lance Taylor  <iant@google.com>
9308         * godump.c (go_output_var): Don't output the variable if there is
9309         already a type with the same name.
9311 2011-01-11  Ian Lance Taylor  <iant@google.com>
9313         * godump.c (go_format_type): Don't generate float80.
9315 2011-01-11  Richard Henderson  <rth@redhat.com>
9317         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
9318         declaration.  Rewrite for both speed and size.
9319         (mn10300_address_cost_1): Remove.
9320         (mn10300_register_move_cost): New.
9321         (mn10300_memory_move_cost): New.
9322         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
9323         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
9324         extensions, shifts, BSWAP, CLZ.
9325         (mn10300_wide_const_load_uses_clr): Remove.
9326         (TARGET_REGISTER_MOVE_COST): New.
9327         (TARGET_MEMORY_MOVE_COST): New.
9328         * config/mn10300/mn10300-protos.h: Update.
9329         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
9331         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
9332         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
9333         * config/mn10300/mn10300-protos.h: Update.
9334         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
9335         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
9336         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
9337         (*test_int_bitfield, *test_byte_bitfield): Remove.
9338         (*bit_test, *subreg_bit_test): Remove.
9339         * config/mn10300/predicates.md (const_8bit_operand): Remove.
9341         * config/mn10300/constraints.md ("c"): Rename from "A".
9342         ("A", "D"): New constraint letters.
9343         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
9344         (fmssf4, fnmasf4, fnmssf4): Likewise.
9346         * config/mn10300/mn10300.md (isa): New attribute.
9347         (enabled): New attribute.
9349         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
9350         (abssf2, negsf2): Define only for hardware fp.
9351         (sqrtsf2): Reformat.
9352         (addsf3, subsf3, mulsf3): Merge expander and insn.
9354         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
9355         (DEBUGGER_AUTO_OFFSET): Remove.
9356         (DEBUGGER_ARG_OFFSET): Remove.
9358         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
9359         Emit register stores with the same offsets as the hardware.
9360         (mn10300_store_multiple_operation): Don't check that the register
9361         save offsets are monotonic.
9362         * config/mn10300/mn10300-protos.h: Update.
9364         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
9366         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
9367         in terms of the value on the stack, not the MDR register.
9369 2011-01-11  Jan Hubicka  <jh@suse.cz>
9371         PR lto/45721
9372         PR lto/45375
9373         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
9374         (symbol_alias_set_destroy, symbol_alias_set_contains,
9375         propagate_aliases_backward): Declare.
9376         * lto-streamer-out.c (struct sets): New sturcture.
9377         (trivally_defined_alias): New function.
9378         (output_alias_pair_p): Rewrite.
9379         (output_unreferenced_globals): Fix output of alias pairs.
9380         (produce_symtab): Likewise.
9381         * ipa.c (function_and_variable_visibility): Set weak alias destination
9382         as needed in lto.
9383         * varasm.c (symbol_alias_set_t): Remove.
9384         (symbol_alias_set_destroy): Export.
9385         (propagate_aliases_forward, propagate_aliases_backward): New functions
9386         based on ...
9387         (compute_visible_aliases): ... this one; remove.
9388         (trivially_visible_alias): New
9389         (trivially_defined_alias): New.
9390         (remove_unreachable_alias_pairs): Rewrite.
9391         (finish_aliases_1): Reorganize code checking if alias is defined.
9392         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
9393         in LTO mode.
9395 2011-01-11  Richard Guenther  <rguenther@suse.de>
9397         PR tree-optimization/46076
9398         * tree-ssa.c (useless_type_conversion_p): Conversions from
9399         unprototyped to empty argument list function types are useless.
9401 2011-01-11  Richard Guenther  <rguenther@suse.de>
9403         PR middle-end/45235
9404         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
9405         volatile MEMs as MEM_READONLY_P.
9407 2011-01-11  Richard Guenther  <rguenther@suse.de>
9409         PR tree-optimization/47239
9410         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
9412 2011-01-11  Jeff Law  <law@redhat.com>
9414         PR tree-optimization/47086
9415         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
9416         IVs from statements that might throw.
9418 2011-01-10  Jan Hubicka  <jh@suse.cz>
9420         PR lto/45375
9421         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
9423 2011-01-10  Jan Hubicka  <jh@suse.cz>
9425         PR lto/45375
9426         * profile.c (read_profile_edge_counts): Ignore profile inconistency
9427         when correcting profile.
9429 2011-01-10  Jan Hubicka  <jh@suse.cz>
9431         PR lto/46083
9432         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
9433         DECL_FINI_PRIORITY.
9434         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
9435         Restore DECL_FINI_PRIORITY.
9437 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9439         * doc/gimple.texi: Fix quoting of multi-word return values in
9440         @deftypefn statements.  Ensure presence of return value.  Wrap
9441         overlong @deftypefn lines.
9442         (is_gimple_operand, is_gimple_min_invariant_address): Remove
9443         descriptions of removed functions.
9444         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
9445         of multi-word return value in @deftypefn statement.
9447 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9449         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
9450         (Conditional Expressions, Logical Operators)
9451         (Statement and operand traversals): Do not indent smallexample
9452         code.  Fix duplicate function argument in example.
9454 2011-01-10  Jeff Law  <law@redhat.com>
9456         PR tree-optimization/47141
9457         * ipa-split.c (split_function): Handle case where we are
9458         returning a value and the return block has a virtual operand phi.
9460 2011-01-10  Jan Hubicka  <jh@suse.cz>
9462         PR tree-optimization/47234
9463         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
9464         (pass_feedback_split_functions): Declare.
9465         * passes.c (init_optimization_passes): Add ipa-split as subpass of
9466         tree-profile.
9467         * ipa-split.c (gate_split_functions): Update comments; disable
9468         split-functions for profile_arc_flag and branch_probabilities.
9469         (gate_feedback_split_functions): New function.
9470         (execute_feedback_split_functions): New function.
9471         (pass_feedback_split_functions): New global var.
9473 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
9475         PR lto/46760
9476         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
9477         calling gimple_call_set_cannot_inline.
9479 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
9481         * config/darwin-sections.def: Remove unused section.
9483 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
9485         PR c++/47218
9486         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
9488 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
9490         PR objc/47232
9491         * c-parser.c (c_parser_declaration_or_fndef): Improved
9492         error message.
9494 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
9496         * config/i386/winnt.c (i386_pe_start_function): Make sure
9497         to switch back to function's section.
9499 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
9501         PR gcc/46902
9502         PR testsuite/46912
9503         * plugin.c: Move include of dlfcn.h from here...
9504         * system.h: ... to here.
9506 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9508         * doc/cpp.texi (C++ Named Operators): Fix markup for header
9509         file name.
9510         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
9511         two extra empty pages in PDF output.
9513 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
9515         PR objc/47078
9516         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
9517         for error recovery purposes behave as if it was not specified so
9518         that the default type is usd.
9520 2011-01-07  Jan Hubicka  <jh@suse.cz>
9522         PR tree-optmization/46469
9523         * ipa.c (function_and_variable_visibility): Clear needed flags on
9524         nodes with external decls; handle weakrefs merging correctly.
9526 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
9528         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
9529         not false.
9531 2011-01-07  Jan Hubicka  <jh@suse.cz>
9533         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
9534         and no longer claim that gold is required for linker plugin.
9535         * configure: Regenerate.
9536         * gcc.c (PLUGIN_COND): New macro.
9537         (LINK_COMMAND_SPEC): Use it.
9538         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
9539         * config.in (HAVE_LTO_PLUGIN): New.
9540         * configure.ac (--with-lto-plugin): New parameter; autodetect
9541         HAVE_LTO_PLUGIN.
9543 2011-01-07  Jan Hubicka  <jh@suse.cz>
9545         PR tree-optimization/46367
9546         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
9547         when we can update original.
9548         (cgraph_mark_inline_edge): Sanity check.
9549         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
9551 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9553         * config/spu/spu.h (ASM_COMMENT_START): Define.
9555 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
9557         PR driver/42445
9558         * gcc.c (%>S): New.
9559         (SWITCH_KEEP_FOR_GCC): Likewise.
9560         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
9561         (do_spec_1): Handle "%>".
9563         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
9565 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
9567         PR target/47201
9568         * config/i386/i386.c (ix86_delegitimize_address): If
9569         simplify_gen_subreg fails, return orig_x.
9571         PR bootstrap/47187
9572         * value-prof.c (gimple_stringop_fixed_value): Handle
9573         lhs of the call properly.
9575 2011-01-07  Jan Hubicka  <jh@suse.cz>
9577         PR lto/45375
9578         * lto-opt.c (lto_reissue_options): Set flag_shlib.
9580 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
9582         * target.def (function_switched_text_sections): New hook.
9583         * doc/tm.texi: Regenerated.
9584         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
9585         * final.c (default_function_switched_text_sections): New.
9586         (final_scan_insn): Call function_switched_text_sections when a
9587         mid-function section change occurs.
9588         * output.h (default_function_switched_text_sections): Declare.
9589         * config/darwin-protos.h (darwin_function_switched_text_sections):
9590         Likewise.
9591         * config/darwin.c (darwin_function_switched_text_sections): New.
9592         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
9594 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
9596         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
9597         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
9598         the secondary code fragment when outputting for DWARF == 2.
9600 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
9602         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9603         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
9604         Remove.
9605         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
9606         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9608 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
9610         PR debug/46704
9611         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
9612         when it is not empty.
9614 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
9616         Bobcat Enablement
9617         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
9618         (case ${target}): Add btver1.
9619         * config/i386/driver-i386.c (host_detect_local_cpu): Let
9620         -march=native recognize btver1 processors.
9621         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9622         btver1 def_and_undef
9623         * config/i386/i386.c (struct processor_costs btver1_cost): New
9624         btver1 cost table.
9625         (m_BTVER1): New definition.
9626         (m_AMD_MULTIPLE): Includes m_BTVER1.
9627         (initial_ix86_tune_features): Add btver1 tune.
9628         (processor_target_table): Add btver1 entry.
9629         (static const char *const cpu_names): Add btver1 entry.
9630         (software_prefetching_beneficial_p): Add btver1.
9631         (ix86_option_override_internal): Add btver1 instruction sets.
9632         (ix86_issue_rate): Add btver1.
9633         (ix86_adjust_cost): Add btver1.
9634         * config/i386/i386.h (TARGET_BTVER1): New definition.
9635         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
9636         (enum processor_type): Add PROCESSOR_BTVER1.
9637         * config/i386/i386.md (define_attr "cpu"): Add btver1.
9639 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9641         PR target/43309
9642         * config/i386/i386.c (legitimize_tls_address)
9643         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
9644         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
9645         (tls_initial_exec_64_sun): New pattern.
9647 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
9649         * doc/invoke.texi (Overall Options): Improve wording and markup
9650         of the description of -wrapper.
9652 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9654         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
9655         rdynamic, threads): New Driver options.
9657 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9659         PR target/38118
9660         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
9661         if coming from .tdata.
9662         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9664 2011-01-06  Jan Hubicka  <jh@suse.cz>
9666         PR lto/47188
9667         * collect2.c (main): Do not enable LTOmode when plugin is active.
9669 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9671         PR other/45915
9672         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
9673         --version output if supported.
9674         * configure: Regenerate.
9676 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
9678         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
9679         Driver options.
9681 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
9683         PR c/47150
9684         * c-convert.c (convert): When converting a complex expression
9685         other than COMPLEX_EXPR to a different complex type, ensure
9686         c_save_expr is called instead of save_expr, unless in_late_binary_op.
9687         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
9688         when converting COMPLEX_TYPE.
9690 2011-01-06  Ira Rosen  <irar@il.ibm.com>
9692         PR tree-optimization/47139
9693         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
9694         only the last reduction value is used outside the loop.  Update
9695         documentation.
9697 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
9699         * config/rtems.opt: New.
9700         * config.gcc (*-*-rtems*): Use rtems.opt.
9702 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
9704         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
9705         processors do not support 3DNow instructions.
9707 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9709         * config/spu/spu.c (spu_option_override): Set parameter
9710         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
9712 2011-01-05  Jan Hubicka  <jh@suse.cz>
9714         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
9715         at the command line.
9717 2011-01-05  Martin Jambor  <mjambor@suse.cz>
9719         PR lto/47162
9720         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
9721         deltas on streamed outgoing edges.
9722         (output_node_opt_summary): Output info for outgoing edges only when
9723         the node is in new parameter set.
9724         (output_cgraph_opt_summary): New parameter set, passed to the two
9725         aforementioned functions.  Update its forward declaration and its
9726         callee too.
9728 2011-01-05  Tom Tromey  <tromey@redhat.com>
9730         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
9731         operator to c_finish_omp_atomic.
9732         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
9733         (build_unary_op): Update.
9734         (build_modify_expr): Update.
9735         (build_asm_expr): Update.
9737 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9739         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
9740         newly inserted insns.
9741         (pad_bb): Likewise.
9742         (spu_emit_branch_hint): Likewise.
9743         (insert_hbrp_for_ilb_runout): Likewise.
9744         (spu_machine_dependent_reorg): Call df_finish_pass after
9745         schedule_insns returns.
9747 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9749         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
9751 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
9753         PR tree-optimization/47005
9754         * tree-sra.c (struct access): Add 'non_addressable' bit.
9755         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
9756         (decide_one_param_reduction): Return 0 if the parameter is passed by
9757         reference and one of the accesses in the group is non_addressable.
9759 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9761         PR tree-optimization/47056
9762         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
9763         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
9764         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
9766 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9768         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
9769         initializer.  Skip view conversions from aggregate types.
9771 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
9773         PR bootstrap/47055
9774         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
9776 2011-01-04  Philipp Thomas  <pth@suse.de>
9778         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
9779         obvious typo.
9781 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9783         * function.c (thread_prologue_and_epilogue_insns): Do not crash
9784         on empty epilogue sequences.
9786 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
9788         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
9789         non-static): New Driver options.
9791 2011-01-04  Jie Zhang  <jie@codesourcery.com>
9793         PR driver/47137
9794         * gcc.c (default_compilers[]): Set combinable field to 0
9795         for all assembly languages.
9797 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
9799         * config/mips/loongson3a.md: New file.
9800         * config/mips/mips.md: Include loongson3a.md.
9801         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
9802         TUNE_LOONGSON_3A.
9804 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
9806         PR middle-end/47017
9807         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
9808         instead of convert_memory_address_addr_space on the base expression.
9810 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9812         * config/spu/spu.c (spu_option_override): Update error text
9813         for bad -march= / -mtune= values.
9815 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9817         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
9818         if branch-hint optimization will be performed.
9820 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
9822         PR tree-optimization/47148
9823         * ipa-split.c (split_function): Convert arguments to
9824         DECL_ARG_TYPE if possible.
9826         PR tree-optimization/47155
9827         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
9828         when computing uns.
9830         PR rtl-optimization/47157
9831         * combine.c (try_combine): If undobuf.other_insn becomes
9832         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
9833         and set *new_direct_jump_p too.
9835 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
9837         PR tree-optimization/47021
9838         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
9840 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
9842         * gcc.c (process_command): Update copyright notice dates.
9843         * gcov.c (print_version): Likewise.
9844         * gcov-dump.c (print_version): Likewise.
9845         * mips-tfile.c (main): Likewise.
9846         * mips-tdump.c (main): Likewise.
9848 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9850         PR tree-optimization/46801
9851         * tree-sra.c (type_internals_preclude_sra_p): Check whether
9852         aggregate fields start at byte boundary instead of the bit-field flag.
9854 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
9856         PR driver/47137
9857         * gcc.c (main): Revert revision 168407.
9859 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9861         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
9863 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9865         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
9866         vector optab to expand vector/scalar shift, update gimple to vector.
9868 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9870         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
9871         a thunk.
9873 2011-01-03  Martin Jambor  <mjambor@suse.cz>
9875         PR tree-optimization/46984
9876         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
9877         HOST_WIDE_INT.
9878         (cgraph_create_indirect_edge): Fixed line length.
9879         (cgraph_indirect_call_info): Declare.
9880         (cgraph_make_edge_direct) Update declaration.
9881         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
9882         (cgraph_create_indirect_edge): Use it.
9883         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
9884         callees.
9885         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
9886         the new thunk_delta representation.
9887         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
9888         HOST_WIDE_INT.
9889         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
9890         (ipa_read_indirect_edge_info): Likewise.
9891         * lto-cgraph.c (output_edge_opt_summary): New function.
9892         (output_node_opt_summary): Call it on all outgoing edges.
9893         (input_edge_opt_summary): New function.
9894         (input_node_opt_summary): Call it on all outgoing edges.
9896 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
9898         PR driver/47137
9899         * gcc.c (main): Don't check have_o when settting combine_inputs.
9901 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
9903         * regrename.c: Add general comment describing the pass.
9904         (struct du_head): Remove 'length' field.
9905         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
9906         (regrename_optimize): Do not sort chains.  Rework comments, add others.
9907         Force renaming to the preferred class (if any) in the first pass and do
9908         not consider registers that belong to it in the second pass.
9909         (create_new_chain): Do not set 'length' field.
9910         (scan_rtx_reg): Likewise.
9912 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
9914         PR tree-optimization/47140
9915         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
9916         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
9917         to bit_value_binop.
9919         PR rtl-optimization/47028
9920         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
9921         parm_birth_insn instead of at the beginning of first bb.
9923 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
9925         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
9926         Remove the word "see" before "@pxref".
9927         * doc/rtl.texi: Remove the word "see" before "@pxref".
9929 2011-01-01  Jan Hubicka  <jh@suse.cz>
9931         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
9932         memory.
9934 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
9936         PR target/38662
9937         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
9940 Copyright (C) 2011 Free Software Foundation, Inc.
9942 Copying and distribution of this file, with or without modification,
9943 are permitted in any medium without royalty provided the copyright
9944 notice and this notice are preserved.