OSDN Git Service

b74e6090546e141114bb3a835e509616036b3268
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
2
3         PR rtl-optimization/51821
4         * recog.c (peep2_find_free_register): Determine clobbered registers
5         from insn pattern.
6
7 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
8
9         PR target/50925
10         * config/avr/avr-protos.h: Revert change of 2012-01-09.
11         * config/avr/avr.c: Likewise.
12         * config/avr/avr.h: Likewise.
13
14 2012-01-13  Ian Lance Taylor  <iant@google.com>
15
16         PR c++/50012
17         * tree.h (TYPE_QUALS): Add cast to int.
18         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
19
20 2012-01-13  Ian Lance Taylor  <iant@google.com>
21
22         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
23         comparing param_index to VEC_length result.
24
25 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
26
27         * c-decl.c: Do not include tree-mudflap.h
28         * tree-optimize.c: Likewise.
29         * Makefile.in: Update dependencies.
30
31 2012-01-13  Richard Guenther  <rguenther@suse.de>
32
33         PR middle-end/8081
34         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
35         variable-sized result always use RSO.
36
37 2012-01-12  DJ Delorie  <dj@redhat.com>
38
39         * cfgexpand.c (convert_debug_memory_address): Allow any valid
40         pointer type, not just the default pointer type.
41
42 2012-01-09  Richard Henderson  <rth@redhat.com>
43             Denis Chertykov  <chertykov@gmail.com>
44
45         PR target/50925
46         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
47         * config/avr/avr.c (avr_can_eliminate): Simplify.
48         (avr_initial_elimination_offset): Likewise.
49         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
50         (expand_epilogue): Likewise.
51         (avr_legitimize_address): Gut.
52         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
53         (avr_hard_regno_nregs): New.
54         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
55         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
56         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
57         add soft frame pointer.
58         (CALL_USED_REGISTERS): Likewise.
59         (REG_CLASS_CONTENTS): Likewise.
60         (REGISTER_NAMES): Likewise.
61         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
62         (HARD_FRAME_POINTER_REGNUM): New.
63         (FRAME_POINTER_REGNUM): Use soft frame pointer.
64         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
65         remove the HARD_FRAME_POINTER self-elimination.
66
67 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
68
69         PR target/51756
70         * config/avr/avr.c (avr_encode_section_info): Test for absence of
71         DECL_EXTERNAL when checking for initializers of progmem variables.
72
73 2012-01-12  Ira Rosen  <irar@il.ibm.com>
74
75         PR tree-optimization/51799
76         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
77         that the last operation is a type demotion.
78
79 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
80
81         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
82         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
83
84 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
85
86         PR bootstrap/51796
87         * combine.c (distribute_notes): If i3 is a noreturn call,
88         allow old_size to be equal to args_size and make sure the
89         noreturn call gets REG_ARGS_SIZE note.
90         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
91         on noreturn calls even when the delta is 0.
92
93 2012-01-11  Nathan Sidwell  <nathan@acm.org>
94
95         * gcov.c (STRING_SIZE): Remove.
96         (generate_results): Erase annotations for source files with no
97         coverage information.
98         (read_line): New.
99         (output_lines): Use it.
100
101 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
102
103         * gimple.h (gimplify_body): Remove first argument.
104         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
105         pointer set here, instead just pass DATA to walk_tree.
106         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
107         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
108         (unvisit_body): Likewise, but with unmark_visited.
109         (gimplify_body): Remove BODY_P argument and adjust.
110         (gimplify_function_tree): Adjust call to gimplify_body.
111         * omp-low.c (finalize_task_copyfn): Likewise.
112
113 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
114
115         * tree.h (build_function_decl_skip_args): Add boolean parameter.
116         (build_function_type_skip_args): Delete.
117         * tree.c (build_function_type_skip_args): Make static and add
118         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
119         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
120         pass it to build_function_type_skip_args.
121         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
122         (tree_function_versioning): Likewise.
123         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
124         build_function_decl_skip_args.
125         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
126         and pass it to build_function_decl_skip_args/tree_function_versioning.
127         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
128         * ipa-inline-transform.c (save_inline_function_body): Likewise.
129         * trans-mem.c (ipa_tm_create_version): Likewise.
130         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
131         * tree-inline.c (declare_return_variable): Remove always-true test.
132         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
133         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
134         * ipa-split.c (split_function): Skip the return value for the split
135         part if it doesn't return.
136
137 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
138
139         PR tree-optimization/49642
140         * ipa-split.c (forbidden_dominators): New variable.
141         (check_forbidden_calls): New function.
142         (dominated_by_forbidden): Likewise.
143         (consider_split): Check for forbidden dominators.
144         (execute_split_functions): Initialize and free forbidden
145         dominators info; call check_forbidden_calls.
146
147 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
148
149         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
150
151 2012-01-11  Nick Clifton  <nickc@redhat.com>
152
153         * config/rx/rx.md (return): Define pattern.
154
155 2012-01-11  Richard Guenther  <rguenther@suse.de>
156
157         * doc/extend.texi (malloc attribute): Adjust according to
158         implementation.
159
160 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
161             Patrick Marlier  <patrick.marlier@gmail.com>
162
163         PR middle-end/51516
164         * trans-mem.c (get_cg_data): Traverse aliases if requested.
165         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
166         (ipa_tm_note_irrevocable): Same.
167         (ipa_tm_scan_irr_block): Same.
168         (ipa_tm_decrement_clone_counts): Same.
169         (ipa_tm_scan_irr_function): Same.
170         (ipa_tm_create_version_alias): Same.
171         (ipa_tm_create_version): Same.
172         (ipa_tm_transform_calls_redirect): Same.
173         (ipa_tm_transform_calls): Same.
174         (ipa_tm_transform_transaction): Same.
175         (ipa_tm_execute): Same.
176
177 2012-01-10  Richard Guenther  <rguenther@suse.de>
178
179         PR middle-end/51806
180         * opts.c (common_handle_option): Handle -Werror.
181
182 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
183
184         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
185         operand number.
186
187 2012-01-10  Jason Merrill  <jason@redhat.com>
188
189         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
190         information.
191
192 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
193
194         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
195         supports R_386_TLS_GD_PLT reloc.
196         (gcc_cv_as_ix86_tlsldmplt): Check if linker
197         supports R_386_TLS_LDM_PLT reloc.
198         * configure: Regenerate.
199         * config.in: Regenerate.
200
201 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
202
203         PR target/49868
204         Extend __pgmx semantics to linearize memory.
205         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
206         determine if code comes inline or from libgcc.
207         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
208         (movmem_qi, movmem_qi): Set constraint #2 to "n".
209         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
210         (movmemx_qi, movmemx_hi): New insns.
211         (xload_<mode>_libgcc): Rewrite to new insn condition.
212         (xload_<mode>): Remove insns.
213         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
214         cases that don't satisfy avr_xload_libgcc_p().
215         (avr_addr_space_convert): Allow converting in any direction.
216         (avr_addr_space_subset_p): Return always true.
217         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
218         (avr_emit_movmemhi): Ditto.
219         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
220         (avr_out_movmem): Ditto.
221         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
222         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
223         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
224         (avr_encode_section_info): Encode 'progmem' in symbol flags.
225         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
226
227 2012-01-10  Richard Guenther  <rguenther@suse.de>
228
229         PR tree-optimization/50913
230         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
231         Require data-refs to be representable by Graphite with respect
232         to any loop nest.
233
234 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
235
236         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
237         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
238
239 2012-01-10  Tom de Vries  <tom@codesourcery.com>
240
241         PR rtl-optimization/51271
242         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
243         handling annulled branch.
244
245 2012-01-10  Richard Henderson  <rth@redhat.com>
246
247         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
248         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
249         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
250         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
251         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
252         arm_expand_vec_perm_const): New.
253         * config/arm/arm-protos.h: Update.
254         * config/arm/neon.md (UNSPEC_VCONCAT): New.
255         (*neon_vswp<VDQX>): New.
256         (neon_vcombine<VDX>): Use neon_split_vcombine.
257         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
258         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
259         (vec_perm<VE>): New.
260
261 2012-01-10  Richard Henderson  <rth@redhat.com>
262
263         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
264         use it if reload_completed.
265         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
266         arm_output_asm_insn, arm_process_output_memory_barrier,
267         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
268         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
269         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
270         arm_process_output_sync_insn, arm_output_sync_insn,
271         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
272         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
273         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
274         (emit_unlikely_jump): New.
275         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
276         (arm_split_atomic_op): New.
277         * config/arm/arm-protos.h: Update.
278         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
279         (struct arm_sync_generator): Remove.
280         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
281         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
282         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
283         (VUNSPEC_LL, VUNSPEC_SC): New.
284         (sync_result, sync_memory, sync_required_value, sync_new_value,
285         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
286         (attr length): Don't use arm_sync_loop_insns.
287         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
288         (movsfcc, movdfcc): Likewise.
289         * config/arm/constraints.md (Ua): New.
290         * config/arm/prediates.md (mem_noofs_operand): New.
291         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
292         (sync_clobber, sync_t2_reqd): Remove.
293         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
294         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
295         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
296         (arm_sync_compare_and_swap<SIDI>): Remove.
297         (arm_sync_compare_and_swap<NARROW>): Remove.
298         (arm_sync_lock_test_and_set<SIDI>): Remove.
299         (arm_sync_lock_test_and_set<NARROW>): Remove.
300         (arm_sync_new_<syncop><SIDI>): Remove.
301         (arm_sync_new_<syncop><NARROW>): Remove.
302         (arm_sync_new_nand<SIDI>): Remove.
303         (arm_sync_new_nand<NARROW>): Remove.
304         (arm_sync_old_<syncop><SIDI>): Remove.
305         (arm_sync_old_<syncop><NARROW>): Remove.
306         (arm_sync_old_nand<SIDI>): Remove.
307         (arm_sync_old_nand<NARROW>): Remove.
308         (*memory_barrier): Merge arm_output_memory_barrier.
309         (atomic_compare_and_swap<QHSD>): New.
310         (atomic_compare_and_swap<NARROW>_1): New.
311         (atomic_compare_and_swap<SIDI>_1): New.
312         (atomic_exchange<QHSD>): New.
313         (cas_cmp_operand, cas_cmp_str): New.
314         (atomic_op_operand, atomic_op_str): New.
315         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
316         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
317         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
318         (arm_load_exclusive<NARROW>): New.
319         (arm_load_exclusivesi, arm_load_exclusivedi): New.
320         (arm_store_exclusive<QHSD>): New.
321
322 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
323
324         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
325         reload patterns if -mvsx-scalar-memory.
326
327         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
328         generated, even -mno-vsx-scalar-double was used.
329         (vsx_xscvdpsp_scalar): Likewise.
330         (vsx_xscvspdp_scalar2): Likewise.
331
332 2012-01-09  Tom de Vries  <tom@codesourcery.com>
333             Andrew Pinski  <apinski@cavium.com>
334
335         PR debug/51471
336         * reorg.c (fill_slots_from_thread): Don't speculate
337         frame-related insns.
338
339 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
340
341         * sched-int.h (bb_note): Move to...
342         * basic-block.h: ...here.
343         * haifa-sched.c (bb_note): Move to...
344         * cfgrtl.c: ...here.
345         * function.c (next_block_for_reg): New function.
346         (move_insn_for_shrink_wrap): Likewise.
347         (prepare_shrink_wrap): Rewrite to use the above.
348
349 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
350
351         * gimple.c (is_gimple_non_addressable): Remove.
352         * gimple.h: Remove is_gimple_non_addressable.
353         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
354         is_gimple_non_addressable.
355         * trans-mem.c (expand_assign_tm): Same.
356
357 2012-01-09  Richard Guenther  <rguenther@suse.de>
358
359         PR tree-optimization/51775
360         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
361         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
362
363 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
364
365         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
366         tuning parameters.
367         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
368
369 2012-01-09  Richard Guenther  <rguenther@suse.de>
370
371         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
372
373 2012-01-08  Jan Hubicka  <jh@suse.cz>
374
375         PR tree-optimize/51680
376         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
377         on when known_vals needs to be computed; cleanup.
378
379 2012-01-08  Jan Hubicka  <jh@suse.cz>
380
381         PR tree-optimize/51694
382         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
383
384 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
385
386         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
387         for -std=c++98 and -std=c++11 too.
388
389 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
390
391         * cfgloop.c (cancel_loop): Add free() of bbs array.
392
393 2012-01-07  Jan Hubicka  <jh@suse.cz>
394
395         PR tree-optimization/51600
396         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
397         that benefits small functions.
398
399 2012-01-07  Jan Hubicka  <jh@suse.cz>
400
401         * ipa-inline.c (want_inline_small_function_p): Fix formating.
402
403 2012-01-07  Jan Hubicka  <jh@suse.cz>
404
405         PR tree-optimization/51680
406         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
407         whose inlining reduce unit size.
408
409 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
410
411         PR bootstrap/51725
412         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
413         Add canonical node to containing_mem chain after the non-canonical
414         one, even if there weren't any locs to propagate.
415         (remove_useless_values): Keep only canonical values.
416         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
417         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
418         canonicalize mem_chain elements that are not discarded.
419
420 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
421
422         PR target/47333
423         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
424         before emitting functions.
425
426         PR gcov-profile/50127
427         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
428         clear_aux_for_blocks.
429
430 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
431
432         PR debug/51746
433         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
434
435 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
436
437         * c-decl.c (ext_block): Moved up.
438         (collect_all_refs, for_each_global_decl): Take ext_block into account.
439
440 2012-01-06  Han Shen  <shenhan@google.com>
441
442         Translate built-in include paths for sysroot.
443         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
444         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
445
446         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
447         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
448
449         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
450         control whether sysroot should be prepended to gxx include dir.
451
452         * configure: Regenerate.
453
454 2012-01-06  Torvald Riegel  <triegel@redhat.com>
455
456         PR rtl-optimization/51771
457         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
458         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
459
460 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
461
462         PR tree-optimization/51315
463         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
464         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
465
466 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
467
468         PR target/51681
469         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
470         for shrp pattern.  Correctly handle and fixup shift variable.
471         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
472
473 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
474
475         PR debug/51762
476         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
477         note when !ACCUMULATE_OUTGOING_ARGS.
478
479 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
480
481         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
482         condition.
483         (extract_range_from_unary_expr_1): Avoid useless computations.
484
485 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
486
487         PR rtl-optimization/51767
488         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
489         of jump_block and add an extra edge for degenerated asm gotos.
490
491         PR middle-end/51768
492         * stmt.c (check_unique_operand_names): Don't ICE during error
493         reporting if i is from labels chain.
494
495         PR middle-end/44777
496         * profile.c (branch_prob): Split bbs that have exit edge
497         and need a fake entry edge too.
498
499 2012-01-05  Jan Hubicka  <jh@suse.cz>
500
501         PR middle-end/49710
502         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
503         unlooping loops.
504
505 2012-01-05  Richard Guenther  <rguenther@suse.de>
506
507         PR lto/50490
508         * tree-streamer-out.c (write_ts_optimization): New function.
509         (streamer_write_tree_body): Call it.
510         * tree-streamer-in.c (lto_input_ts_optimization): New function.
511         (streamer_read_tree_body): Call it.
512         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
513
514 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
515
516         PR middle-end/51761
517         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
518         * gimplify.c (gimplify_cleanup_point_expr): Save and set
519         in_cleanup_point_expr before gimplify_stmt call and restore it
520         afterwards.
521         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
522         in_cleanup_point_expr is false.
523
524 2012-01-05  Richard Guenther  <rguenther@suse.de>
525
526         PR middle-end/51764
527         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
528         to c.opt.
529         * toplev.c (process_options): Reject combining mudflap and LTO.
530         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
531
532 2012-01-05  Richard Guenther  <rguenther@suse.de>
533
534         PR tree-optimization/51760
535         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
536         not VARYING.
537         (bit_value_unop): Handle UNDEFINED operands.
538         (bit_value_binop): Likewise.
539
540 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
541
542         * config/avr/avr.c (avr_replace_prefix): Remove.
543         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
544         (avr_asm_function_rodata_section): Ditto.
545         (avr_asm_select_section): Ditto.
546
547 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
548
549         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
550         insertion.
551
552 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
553
554         PR bootstrap/51648
555         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
556         calls that have any non-fake successor edges.
557
558         PR debug/51746
559         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
560
561 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
562
563         PR tree-optimization/51624
564         * tree-sra.c (build_ref_for_model): When replicating a chain of
565         COMPONENT_REFs, stop as soon as the offset would become negative.
566
567 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
568
569         PR debug/51695
570         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
571         in .debug_loc on the floor.
572
573 2012-01-04  Andrew Pinski  <apinski@cavium.com>
574
575         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
576
577 2012-01-04  Andrew Pinski  <apinski@cavium.com>
578             Adam Nemet  <anemet@caviumnetworks.com>
579
580         * config/mips/mips.md (size): Add SI and DI.
581         (SIZE): New mode attribute.
582         (U): New code attribute.
583         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
584         (mips_lbux_<mode>): Delete.
585         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
586         (mips_lhx): Use gen_mips_lhx_extsi.
587         (mips_lhx_<mode>): Delete.
588         (mips_lwx): Delete.
589         (mips_l<size>x): New expand.
590         (mips_lwx_<mode>): Delete.
591         (mips_l<GPR:size>x_<P:mode>): New pattern.
592         (*mips_lw<u>x_<P:mode>_ext): Likewise.
593         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
594         * config/mips/mips.c (mips_lx_address_p): New function.
595         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
596         (dsp64): New availability predicate.
597         (mips_builtins): Add an entry for __builtin_mips_ldx.
598         * config/mips/mips.h (ISA_HAS_LBX): New define.
599         (ISA_HAS_LBUX): Likewise.
600         (ISA_HAS_LHX): Likewise.
601         (ISA_HAS_LHUX): Likewise.
602         (ISA_HAS_LWX): Likewise.
603         (ISA_HAS_LWUX): Likewise.
604         (ISA_HAS_LDX): Likewise.
605         * doc/extend.texi (__builtin_mips_ldx): Document.
606
607 2012-01-04  Tristan Gingold  <gingold@adacore.com>
608
609         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
610         when long pointers are used.
611         * config.build (*-*-*vms*): Handle all OpenVMS targets.
612         (alpha64-dec-*vms*, alpha*-dec-*vms*)
613         (ia64-hp-*vms*): Remove.
614         * config/vms/xm-vms64.h: Delete.
615
616 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
617
618         PR middle-end/51472
619         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
620
621 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
622
623         * opts.c (finish_options): Remove duplicate sorry.
624
625 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
626
627         PR middle-end/51696
628         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
629         correctly.
630
631 2012-01-04  Richard Guenther  <rguenther@suse.de>
632
633         PR middle-end/51750
634         * tree.c (size_low_cst): New function.
635         * tree.h (size_low_cst): Declare.
636         * fold-const.c (fold_comparison): Use it to extract the low
637         part of the POINTER_PLUS_EXPR offset.
638
639 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
640
641         Fix clearing ZERO_REG
642         * config/avr/avr.md (cc): Add alternative "ldi".
643         (movqi_insn): Use it in cc attribute.
644         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
645         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
646         (output_reload_insisf): Use ZERO_REG to pre-clear register.
647
648 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
649
650         * configure: Regenerate.
651
652 2012-01-04  Richard Guenther  <rguenther@suse.de>
653
654         PR tree-optimization/49651
655         * tree-ssa-structalias.c (type_can_have_subvars): New function.
656         (var_can_have_subvars): Use it.
657         (get_constraint_for_1): Only consider subfields if there can be any.
658
659 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
660
661         PR bootstrap/51725
662         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
663         to its new canonical_cselib_val and the cselib_val was in
664         first_containing_mem chain, but the canonical_cselib_val was not,
665         add the latter into the chain.
666         (cselib_invalidate_mem): Compare canonical_cselib_val of
667         addr_list chain elt with v.
668
669         PR pch/51722
670         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
671         dwarf2out_undef): Allocate e.info using ggc_strdup instead
672         of xstrdup.
673         (output_macinfo_op): Don't ggc_strdup fd->filename.
674         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
675         then ggc_strdup it.  Don't free inc->info or cur->info.
676         (output_macinfo): Don't free ref->info or file->info.
677
678 2012-01-03  Ira Rosen  <irar@il.ibm.com>
679
680         PR tree-optimization/51269
681         * tree-vect-loop-manip.c (set_prologue_iterations): Make
682         first_niters a pointer.
683         (slpeel_tree_peel_loop_to_edge): Likewise.
684         (vect_do_peeling_for_loop_bound): Update call to
685         slpeel_tree_peel_loop_to_edge.
686         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
687         here.  Remove it from the parameters list.
688         (vect_do_peeling_for_alignment): Update calls and compute
689         wide_prolog_niters.
690
691 2012-01-03  Richard Guenther  <rguenther@suse.de>
692
693         PR tree-optimization/51070
694         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
695         Properly handle calls.
696
697 2012-01-03  Richard Guenther  <rguenther@suse.de>
698
699         PR tree-optimization/51692
700         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
701         the LHS of allocation stmts.
702
703 2012-01-03  Olivier Hainque  <hainque@adacore.com>
704
705         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
706
707 2012-01-03  Olivier Hainque  <hainque@adacore.com>
708
709         * collect2.c (main): In AIX specific computations for vector
710         insertions, use CONST_CAST2 to cast from char ** to const char **.
711
712 2012-01-03  Richard Guenther  <rguenther@suse.de>
713
714         PR debug/51650
715         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
716         the context of a limbo DIE when it does not already exist.
717
718 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
719
720         PR tree-optimization/51719
721         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
722         but direct call is, clear direct call's lhs and don't add fallthrough
723         edge from dcall_bb to join_bb and PHIs.
724
725 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
726
727         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
728         the instructions emitted by the pattern.
729         ("*TDC_insn_<mode>"): Add comment.
730
731 2012-01-03  Richard Guenther  <rguenther@suse.de>
732
733         PR middle-end/51730
734         * fold-const.c (fold_comparison): Properly canonicalize
735         tree offset and HOST_WIDE_INT bit position.
736
737 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
738
739         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
740         operands for extzv pattern.
741
742 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
743
744         PR bootstrap/51725
745         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
746         on mem_elt first.
747
748 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
749
750         * doc/invoke.texi (-flto and related options): Copy-edit.
751
752 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
753
754         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
755
756 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
757
758         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
759         New patterns.
760
761 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
762
763         * expr.h (move_by_pieces_ninsns): Declare.
764         * expr.c (move_by_pieces_ninsns): Make external.
765         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
766         (mips_store_by_pieces_p): Likewise.
767         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
768         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
769         * config/mips/mips.c (mips_move_by_pieces_p): New function.
770         (mips_store_by_pieces_p): Likewise.
771
772 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
773
774         * passes.c (register_one_dump_file): Free full_name.
775
776         * reload1.c (reload): Don't allocate reg_max_ref_width here.
777         (calculate_elim_costs_all_insns): Free offsets_at and
778         offsets_known_at at the end and clear the pointers.
779
780 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
781
782         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
783         this option introduced in r180739.
784
785 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
786
787         PR target/51345
788         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
789         (tmake_file target=avr): Add avr/t-multilib.
790
791         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
792         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
793         * config/avr/genmultilib.awk: New file.
794         * config/avr/t-multilib: New auto-generated file.
795         * config/avr/multilib.h: New auto-generated file.
796         * config/avr/t-avr (AVR_MCUS): New variable.
797         (genopt.sh): Use it.
798         (s-mlib): Depend on t-multilib.
799         (t-multilib, multilib.h): New dependencies.
800         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
801         (MULTILIB_OPTIONS): Remove.
802         (MULTILIB_MATCHES): Remove.
803         (MULTILIB_DIRNAMES): Remove.
804         (MULTILIB_EXCEPTIONS): Remove:
805         * config/avr/genopt.sh: Don't use hard coded file name;
806         pass AVR_MCUS from t-avr instead.
807
808 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
809
810         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
811
812 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
813
814         Implement light-weight DImode support.
815         * config/avr/avr-dimode.md: New file.
816         * config/avr/avr.md: Include it.
817         (adjust_len): Add plus64, compare64.
818         (HIDI): Remove code iterator.
819         (code_stdname): New code attribute.
820         (rotx, rotsmode): Remove DI.
821         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
822         as code iterator.
823         * config/avr/avr-protos.h (avr_have_dimode): New.
824         (avr_out_plus64, avr_out_compare64): New.
825         * config/avr/avr.c (avr_out_compare): Handle DImode.
826         (avr_have_dimode): New variable definition and initialization.
827         (avr_out_compare64, avr_out_plus64): New functions.
828         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
829         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
830         (avr_compare_pattern): Skip DImode comparisons.
831
832 2012-01-02  Revital Eres  <revital.eres@linaro.org>
833
834         * ddg.c (def_has_ccmode_p): New function.
835         (add_cross_iteration_register_deps,
836         create_ddg_dep_from_intra_loop_link): Call it.
837
838 2012-01-02  Richard Guenther  <rguenther@suse.de>
839
840         PR other/51679
841         * invoke.texi (fassociative-math): Remove spurious paranthesis.
842
843 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
844
845         * gcc.c (process_command): Update copyright notice dates.
846         * gcov.c (print_version): Likewise.
847         * gcov-dump.c (print_version): Likewise.
848         * mips-tfile.c (main): Likewise.
849         * mips-tdump.c (main): Likewise.
850
851 2012-01-01  Ira Rosen  <irar@il.ibm.com>
852
853         PR tree-optimization/51704
854         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
855         a use is inside the basic block or loop before accessing its vect info.
856
857 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
858
859         PR rtl-optimization/51069
860         * cfgloopmanip.c (remove_path): Removing path making irreducible
861         region unconditional makes BB part of the region.
862
863 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
864
865         PR tree-optimization/51683
866         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
867         calls with side-effects.
868         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
869 \f
870 Copyright (C) 2012 Free Software Foundation, Inc.
871
872 Copying and distribution of this file, with or without modification,
873 are permitted in any medium without royalty provided the copyright
874 notice and this notice are preserved.