OSDN Git Service

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