OSDN Git Service

290b976a767b4ce062d093dc293419d5a3e5779b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
4         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
5
6 2012-01-10  Tom de Vries  <tom@codesourcery.com>
7
8         PR rtl-optimization/51271
9         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
10         handling annulled branch.
11
12 2012-01-10  Richard Henderson  <rth@redhat.com>
13
14         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
15         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
16         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
17         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
18         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
19         arm_expand_vec_perm_const): New.
20         * config/arm/arm-protos.h: Update.
21         * config/arm/neon.md (UNSPEC_VCONCAT): New.
22         (*neon_vswp<VDQX>): New.
23         (neon_vcombine<VDX>): Use neon_split_vcombine.
24         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
25         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
26         (vec_perm<VE>): New.
27
28 2012-01-10  Richard Henderson  <rth@redhat.com>
29
30         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
31         use it if reload_completed.
32         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
33         arm_output_asm_insn, arm_process_output_memory_barrier,
34         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
35         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
36         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
37         arm_process_output_sync_insn, arm_output_sync_insn,
38         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
39         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
40         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
41         (emit_unlikely_jump): New.
42         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
43         (arm_split_atomic_op): New.
44         * config/arm/arm-protos.h: Update.
45         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
46         (struct arm_sync_generator): Remove.
47         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
48         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
49         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
50         (VUNSPEC_LL, VUNSPEC_SC): New.
51         (sync_result, sync_memory, sync_required_value, sync_new_value,
52         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
53         (attr length): Don't use arm_sync_loop_insns.
54         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
55         (movsfcc, movdfcc): Likewise.
56         * config/arm/constraints.md (Ua): New.
57         * config/arm/prediates.md (mem_noofs_operand): New.
58         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
59         (sync_clobber, sync_t2_reqd): Remove.
60         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
61         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
62         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
63         (arm_sync_compare_and_swap<SIDI>): Remove.
64         (arm_sync_compare_and_swap<NARROW>): Remove.
65         (arm_sync_lock_test_and_set<SIDI>): Remove.
66         (arm_sync_lock_test_and_set<NARROW>): Remove.
67         (arm_sync_new_<syncop><SIDI>): Remove.
68         (arm_sync_new_<syncop><NARROW>): Remove.
69         (arm_sync_new_nand<SIDI>): Remove.
70         (arm_sync_new_nand<NARROW>): Remove.
71         (arm_sync_old_<syncop><SIDI>): Remove.
72         (arm_sync_old_<syncop><NARROW>): Remove.
73         (arm_sync_old_nand<SIDI>): Remove.
74         (arm_sync_old_nand<NARROW>): Remove.
75         (*memory_barrier): Merge arm_output_memory_barrier.
76         (atomic_compare_and_swap<QHSD>): New.
77         (atomic_compare_and_swap<NARROW>_1): New.
78         (atomic_compare_and_swap<SIDI>_1): New.
79         (atomic_exchange<QHSD>): New.
80         (cas_cmp_operand, cas_cmp_str): New.
81         (atomic_op_operand, atomic_op_str): New.
82         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
83         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
84         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
85         (arm_load_exclusive<NARROW>): New.
86         (arm_load_exclusivesi, arm_load_exclusivedi): New.
87         (arm_store_exclusive<QHSD>): New.
88
89 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
90
91         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
92         reload patterns if -mvsx-scalar-memory.
93
94         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
95         generated, even -mno-vsx-scalar-double was used.
96         (vsx_xscvdpsp_scalar): Likewise.
97         (vsx_xscvspdp_scalar2): Likewise.
98
99 2012-01-09  Tom de Vries  <tom@codesourcery.com>
100             Andrew Pinski  <apinski@cavium.com>
101
102         PR debug/51471
103         * reorg.c (fill_slots_from_thread): Don't speculate
104         frame-related insns.
105
106 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
107
108         * sched-int.h (bb_note): Move to...
109         * basic-block.h: ...here.
110         * haifa-sched.c (bb_note): Move to...
111         * cfgrtl.c: ...here.
112         * function.c (next_block_for_reg): New function.
113         (move_insn_for_shrink_wrap): Likewise.
114         (prepare_shrink_wrap): Rewrite to use the above.
115
116 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
117
118         * gimple.c (is_gimple_non_addressable): Remove.
119         * gimple.h: Remove is_gimple_non_addressable.
120         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
121         is_gimple_non_addressable.
122         * trans-mem.c (expand_assign_tm): Same.
123
124 2012-01-09  Richard Guenther  <rguenther@suse.de>
125
126         PR tree-optimization/51775
127         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
128         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
129
130 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
131
132         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
133         tuning parameters.
134         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
135
136 2012-01-09  Richard Guenther  <rguenther@suse.de>
137
138         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
139
140 2012-01-08  Jan Hubicka  <jh@suse.cz>
141
142         PR tree-optimize/51680
143         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
144         on when known_vals needs to be computed; cleanup.
145
146 2012-01-08  Jan Hubicka  <jh@suse.cz>
147
148         PR tree-optimize/51694
149         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
150
151 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
152
153         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
154         for -std=c++98 and -std=c++11 too.
155
156 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
157
158         * cfgloop.c (cancel_loop): Add free() of bbs array.
159
160 2012-01-07  Jan Hubicka  <jh@suse.cz>
161
162         PR tree-optimization/51600
163         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
164         that benefits small functions.
165
166 2012-01-07  Jan Hubicka  <jh@suse.cz>
167
168         * ipa-inline.c (want_inline_small_function_p): Fix formating.
169
170 2012-01-07  Jan Hubicka  <jh@suse.cz>
171
172         PR tree-optimization/51680
173         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
174         whose inlining reduce unit size.
175
176 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
177
178         PR bootstrap/51725
179         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
180         Add canonical node to containing_mem chain after the non-canonical
181         one, even if there weren't any locs to propagate.
182         (remove_useless_values): Keep only canonical values.
183         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
184         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
185         canonicalize mem_chain elements that are not discarded.
186
187 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
188
189         PR target/47333
190         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
191         before emitting functions.
192
193         PR gcov-profile/50127
194         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
195         clear_aux_for_blocks.
196
197 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
198
199         PR debug/51746
200         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
201
202 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
203
204         * c-decl.c (ext_block): Moved up.
205         (collect_all_refs, for_each_global_decl): Take ext_block into account.
206
207 2012-01-06  Han Shen  <shenhan@google.com>
208
209         Translate built-in include paths for sysroot.
210         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
211         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
212
213         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
214         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
215
216         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
217         control whether sysroot should be prepended to gxx include dir.
218
219         * configure: Regenerate.
220
221 2012-01-06  Torvald Riegel  <triegel@redhat.com>
222
223         PR rtl-optimization/51771
224         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
225         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
226
227 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
228
229         PR tree-optimization/51315
230         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
231         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
232
233 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
234
235         PR target/51681
236         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
237         for shrp pattern.  Correctly handle and fixup shift variable.
238         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
239
240 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
241
242         PR debug/51762
243         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
244         note when !ACCUMULATE_OUTGOING_ARGS.
245
246 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
247
248         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
249         condition.
250         (extract_range_from_unary_expr_1): Avoid useless computations.
251
252 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
253
254         PR rtl-optimization/51767
255         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
256         of jump_block and add an extra edge for degenerated asm gotos.
257
258         PR middle-end/51768
259         * stmt.c (check_unique_operand_names): Don't ICE during error
260         reporting if i is from labels chain.
261
262         PR middle-end/44777
263         * profile.c (branch_prob): Split bbs that have exit edge
264         and need a fake entry edge too.
265
266 2012-01-05  Jan Hubicka  <jh@suse.cz>
267
268         PR middle-end/49710
269         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
270         unlooping loops.
271
272 2012-01-05  Richard Guenther  <rguenther@suse.de>
273
274         PR lto/50490
275         * tree-streamer-out.c (write_ts_optimization): New function.
276         (streamer_write_tree_body): Call it.
277         * tree-streamer-in.c (lto_input_ts_optimization): New function.
278         (streamer_read_tree_body): Call it.
279         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
280
281 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
282
283         PR middle-end/51761
284         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
285         * gimplify.c (gimplify_cleanup_point_expr): Save and set
286         in_cleanup_point_expr before gimplify_stmt call and restore it
287         afterwards.
288         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
289         in_cleanup_point_expr is false.
290
291 2012-01-05  Richard Guenther  <rguenther@suse.de>
292
293         PR middle-end/51764
294         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
295         to c.opt.
296         * toplev.c (process_options): Reject combining mudflap and LTO.
297         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
298
299 2012-01-05  Richard Guenther  <rguenther@suse.de>
300
301         PR tree-optimization/51760
302         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
303         not VARYING.
304         (bit_value_unop): Handle UNDEFINED operands.
305         (bit_value_binop): Likewise.
306
307 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
308
309         * config/avr/avr.c (avr_replace_prefix): Remove.
310         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
311         (avr_asm_function_rodata_section): Ditto.
312         (avr_asm_select_section): Ditto.
313
314 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
315
316         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
317         insertion.
318
319 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
320
321         PR bootstrap/51648
322         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
323         calls that have any non-fake successor edges.
324
325         PR debug/51746
326         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
327
328 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
329
330         PR tree-optimization/51624
331         * tree-sra.c (build_ref_for_model): When replicating a chain of
332         COMPONENT_REFs, stop as soon as the offset would become negative.
333
334 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
335
336         PR debug/51695
337         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
338         in .debug_loc on the floor.
339
340 2012-01-04  Andrew Pinski  <apinski@cavium.com>
341
342         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
343
344 2012-01-04  Andrew Pinski  <apinski@cavium.com>
345             Adam Nemet  <anemet@caviumnetworks.com>
346
347         * config/mips/mips.md (size): Add SI and DI.
348         (SIZE): New mode attribute.
349         (U): New code attribute.
350         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
351         (mips_lbux_<mode>): Delete.
352         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
353         (mips_lhx): Use gen_mips_lhx_extsi.
354         (mips_lhx_<mode>): Delete.
355         (mips_lwx): Delete.
356         (mips_l<size>x): New expand.
357         (mips_lwx_<mode>): Delete.
358         (mips_l<GPR:size>x_<P:mode>): New pattern.
359         (*mips_lw<u>x_<P:mode>_ext): Likewise.
360         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
361         * config/mips/mips.c (mips_lx_address_p): New function.
362         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
363         (dsp64): New availability predicate.
364         (mips_builtins): Add an entry for __builtin_mips_ldx.
365         * config/mips/mips.h (ISA_HAS_LBX): New define.
366         (ISA_HAS_LBUX): Likewise.
367         (ISA_HAS_LHX): Likewise.
368         (ISA_HAS_LHUX): Likewise.
369         (ISA_HAS_LWX): Likewise.
370         (ISA_HAS_LWUX): Likewise.
371         (ISA_HAS_LDX): Likewise.
372         * doc/extend.texi (__builtin_mips_ldx): Document.
373
374 2012-01-04  Tristan Gingold  <gingold@adacore.com>
375
376         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
377         when long pointers are used.
378         * config.build (*-*-*vms*): Handle all OpenVMS targets.
379         (alpha64-dec-*vms*, alpha*-dec-*vms*)
380         (ia64-hp-*vms*): Remove.
381         * config/vms/xm-vms64.h: Delete.
382
383 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
384
385         PR middle-end/51472
386         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
387
388 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
389
390         * opts.c (finish_options): Remove duplicate sorry.
391
392 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
393
394         PR middle-end/51696
395         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
396         correctly.
397
398 2012-01-04  Richard Guenther  <rguenther@suse.de>
399
400         PR middle-end/51750
401         * tree.c (size_low_cst): New function.
402         * tree.h (size_low_cst): Declare.
403         * fold-const.c (fold_comparison): Use it to extract the low
404         part of the POINTER_PLUS_EXPR offset.
405
406 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
407
408         Fix clearing ZERO_REG
409         * config/avr/avr.md (cc): Add alternative "ldi".
410         (movqi_insn): Use it in cc attribute.
411         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
412         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
413         (output_reload_insisf): Use ZERO_REG to pre-clear register.
414
415 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
416
417         * configure: Regenerate.
418
419 2012-01-04  Richard Guenther  <rguenther@suse.de>
420
421         PR tree-optimization/49651
422         * tree-ssa-structalias.c (type_can_have_subvars): New function.
423         (var_can_have_subvars): Use it.
424         (get_constraint_for_1): Only consider subfields if there can be any.
425
426 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
427
428         PR bootstrap/51725
429         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
430         to its new canonical_cselib_val and the cselib_val was in
431         first_containing_mem chain, but the canonical_cselib_val was not,
432         add the latter into the chain.
433         (cselib_invalidate_mem): Compare canonical_cselib_val of
434         addr_list chain elt with v.
435
436         PR pch/51722
437         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
438         dwarf2out_undef): Allocate e.info using ggc_strdup instead
439         of xstrdup.
440         (output_macinfo_op): Don't ggc_strdup fd->filename.
441         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
442         then ggc_strdup it.  Don't free inc->info or cur->info.
443         (output_macinfo): Don't free ref->info or file->info.
444
445 2012-01-03  Ira Rosen  <irar@il.ibm.com>
446
447         PR tree-optimization/51269
448         * tree-vect-loop-manip.c (set_prologue_iterations): Make
449         first_niters a pointer.
450         (slpeel_tree_peel_loop_to_edge): Likewise.
451         (vect_do_peeling_for_loop_bound): Update call to
452         slpeel_tree_peel_loop_to_edge.
453         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
454         here.  Remove it from the parameters list.
455         (vect_do_peeling_for_alignment): Update calls and compute
456         wide_prolog_niters.
457
458 2012-01-03  Richard Guenther  <rguenther@suse.de>
459
460         PR tree-optimization/51070
461         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
462         Properly handle calls.
463
464 2012-01-03  Richard Guenther  <rguenther@suse.de>
465
466         PR tree-optimization/51692
467         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
468         the LHS of allocation stmts.
469
470 2012-01-03  Olivier Hainque  <hainque@adacore.com>
471
472         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
473
474 2012-01-03  Olivier Hainque  <hainque@adacore.com>
475
476         * collect2.c (main): In AIX specific computations for vector
477         insertions, use CONST_CAST2 to cast from char ** to const char **.
478
479 2012-01-03  Richard Guenther  <rguenther@suse.de>
480
481         PR debug/51650
482         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
483         the context of a limbo DIE when it does not already exist.
484
485 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
486
487         PR tree-optimization/51719
488         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
489         but direct call is, clear direct call's lhs and don't add fallthrough
490         edge from dcall_bb to join_bb and PHIs.
491
492 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
493
494         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
495         the instructions emitted by the pattern.
496         ("*TDC_insn_<mode>"): Add comment.
497
498 2012-01-03  Richard Guenther  <rguenther@suse.de>
499
500         PR middle-end/51730
501         * fold-const.c (fold_comparison): Properly canonicalize
502         tree offset and HOST_WIDE_INT bit position.
503
504 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
505
506         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
507         operands for extzv pattern.
508
509 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
510
511         PR bootstrap/51725
512         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
513         on mem_elt first.
514
515 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
516
517         * doc/invoke.texi (-flto and related options): Copy-edit.
518
519 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
520
521         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
522
523 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
524
525         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
526         New patterns.
527
528 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
529
530         * expr.h (move_by_pieces_ninsns): Declare.
531         * expr.c (move_by_pieces_ninsns): Make external.
532         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
533         (mips_store_by_pieces_p): Likewise.
534         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
535         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
536         * config/mips/mips.c (mips_move_by_pieces_p): New function.
537         (mips_store_by_pieces_p): Likewise.
538
539 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
540
541         * passes.c (register_one_dump_file): Free full_name.
542
543         * reload1.c (reload): Don't allocate reg_max_ref_width here.
544         (calculate_elim_costs_all_insns): Free offsets_at and
545         offsets_known_at at the end and clear the pointers.
546
547 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
548
549         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
550         this option introduced in r180739.
551
552 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
553
554         PR target/51345
555         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
556         (tmake_file target=avr): Add avr/t-multilib.
557
558         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
559         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
560         * config/avr/genmultilib.awk: New file.
561         * config/avr/t-multilib: New auto-generated file.
562         * config/avr/multilib.h: New auto-generated file.
563         * config/avr/t-avr (AVR_MCUS): New variable.
564         (genopt.sh): Use it.
565         (s-mlib): Depend on t-multilib.
566         (t-multilib, multilib.h): New dependencies.
567         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
568         (MULTILIB_OPTIONS): Remove.
569         (MULTILIB_MATCHES): Remove.
570         (MULTILIB_DIRNAMES): Remove.
571         (MULTILIB_EXCEPTIONS): Remove:
572         * config/avr/genopt.sh: Don't use hard coded file name;
573         pass AVR_MCUS from t-avr instead.
574
575 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
576
577         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
578
579 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
580
581         Implement light-weight DImode support.
582         * config/avr/avr-dimode.md: New file.
583         * config/avr/avr.md: Include it.
584         (adjust_len): Add plus64, compare64.
585         (HIDI): Remove code iterator.
586         (code_stdname): New code attribute.
587         (rotx, rotsmode): Remove DI.
588         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
589         as code iterator.
590         * config/avr/avr-protos.h (avr_have_dimode): New.
591         (avr_out_plus64, avr_out_compare64): New.
592         * config/avr/avr.c (avr_out_compare): Handle DImode.
593         (avr_have_dimode): New variable definition and initialization.
594         (avr_out_compare64, avr_out_plus64): New functions.
595         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
596         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
597         (avr_compare_pattern): Skip DImode comparisons.
598
599 2012-01-02  Revital Eres  <revital.eres@linaro.org>
600
601         * ddg.c (def_has_ccmode_p): New function.
602         (add_cross_iteration_register_deps,
603         create_ddg_dep_from_intra_loop_link): Call it.
604
605 2012-01-02  Richard Guenther  <rguenther@suse.de>
606
607         PR other/51679
608         * invoke.texi (fassociative-math): Remove spurious paranthesis.
609
610 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
611
612         * gcc.c (process_command): Update copyright notice dates.
613         * gcov.c (print_version): Likewise.
614         * gcov-dump.c (print_version): Likewise.
615         * mips-tfile.c (main): Likewise.
616         * mips-tdump.c (main): Likewise.
617
618 2012-01-01  Ira Rosen  <irar@il.ibm.com>
619
620         PR tree-optimization/51704
621         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
622         a use is inside the basic block or loop before accessing its vect info.
623
624 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
625
626         PR rtl-optimization/51069
627         * cfgloopmanip.c (remove_path): Removing path making irreducible
628         region unconditional makes BB part of the region.
629
630 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
631
632         PR tree-optimization/51683
633         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
634         calls with side-effects.
635         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
636 \f
637 Copyright (C) 2012 Free Software Foundation, Inc.
638
639 Copying and distribution of this file, with or without modification,
640 are permitted in any medium without royalty provided the copyright
641 notice and this notice are preserved.