OSDN Git Service

Backport from mainline
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2012-10-24  Uros Bizjak  <ubizjak@gmail.com>
2
3         Backport from mainline
4         2012-10-22  Uros Bizjak  <ubizjak@gmail.com>
5
6         * config/i386/i386.c (memory_address_length): Assert that non-null
7         base or index RTXes are registers.  Do not check for REG RTXes.
8         Determine addr32 prefix using SImode_address_operand or
9         from original base and index RTXes.  Simplify code.
10
11         2012-10-21  Uros Bizjak  <ubizjak@gmail.com>
12
13         * config/i386/i386-protos.h (memory_address_length): Add new bool
14         argument.  Update all uses.
15         * config/i386/i386.c (memory_address_length): If not LEA insn, then
16         add length of addr32 prefix based on mode of base or index register.
17         (ix86_attr_length_address_default) <TYPE_LEA>: Do not handle SImode
18         addresses here.  Update call to memory_address_length.
19         (ix86_print_address_operand): Use SImode_address_operand predicate.
20         * config/i386/predicates.md (SImode_address_operand): New.
21         * config/i386/i386.md (lea<mode>): Use SImode_address_operand
22         to calculate "mode" attribute.  Use SImode_address_operand predicate
23         instead of open-coding accepted RTX codes.
24
25 2012-10-22  Georg-Johann Lay  <avr@gjlay.de>
26
27         Backport from 2012-10-22 trunk r192685.
28         * doc/invoke.texi (AVR Options): Document __AVR_ARCH__.
29         Note __AVR_<device>__ is not defined for cores.
30         Don't point to --help=target.
31         Order --mcu= documentation according to trunk:/gcc/doc/avr-mmcu.texi.
32
33 2012-10-19  Marek Polacek  <polacek@redhat.com>
34
35         Backported from mainline
36         2012-10-19  Marek Polacek  <polacek@redhat.com>
37
38         PR middle-end/54945
39         * fold-const.c (fold_sign_changed_comparison):  Punt if folding
40         pointer/non-pointer comparison.
41
42 2012-10-19  Zhenqiang Chen <zhenqiang.chen@linaro.org>
43
44         Backported from mainline
45         2012-10-19  Zhenqiang Chen <zhenqiang.chen@linaro.org>
46
47         PR target/54892
48         * config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
49         sure the mode is correct when falling through from above cases.
50
51 2012-10-19  Alan Modra  <amodra@gmail.com>
52
53         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
54         (HAVE_LD_LARGE_TOC): Likewise.
55         * configure: Regenerate.
56
57 2012-10-19  Alan Modra  <amodra@gmail.com>
58
59         * config/rs6000/predicates.md (splat_input_operand): Don't call
60         input_operand for MEMs.  Instead check for volatile and call
61         memory_address_addr_space_p with modified mode.
62
63 2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
64
65         Backported from mainline
66         2012-07-23  Ulrich Weigand  <ulrich.weigand@linaro.org>
67
68         * config/arm/arm.c (arm_reorg): Ensure all insns are split.
69
70 2012-10-16  Eric Botcazou  <ebotcazou@adacore.com>
71
72         PR rtl-optimization/54870
73         * tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME.
74         * cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the
75         SSA_NAME pointer that points to a partition if there is at least
76         one variable with it set in the partition.
77         * dse.c (local_variable_can_escape): New predicate.
78         (can_escape): Call it.
79         * gimplify.c (mark_addressable): If this is a partitioned decl, also
80         mark the SSA_NAME pointer that points to a partition.
81
82 2012-10-16  Andrey Belevantsev  <abel@ispras.ru>
83
84         Backport from mainline
85         2012-08-09  Andrey Belevantsev  <abel@ispras.ru>
86
87         PR rtl-optimization/53701
88         * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
89         rocess not only expr's vinsns but all old vinsns from expr's
90         istory of changes.
91
92 2012-10-16  Andrey Belevantsev  <abel@ispras.ru>
93
94         Backport from mainline
95         2012-07-31  Andrey Belevantsev  <abel@ispras.ru>
96         PR target/53975
97
98         * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
99         Revert
100         2011-08-04  Sergey Grechanik  <mouseentity@ispras.ru>
101         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
102         only if producer writes to the register given by regno.
103
104 2012-09-15  Uros Bizjak  <ubizjak@gmail.com>
105
106         Backport from mainline
107         2012-10-15  Uros Bizjak  <ubizjak@gmail.com>
108
109         * config/i386/sse.md (UNSPEC_MOVU): Remove.
110         (UNSPEC_LOADU): New.
111         (UNSPEC_STOREU): Ditto.
112         (<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
113         (<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
114         (<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
115         (<sse2>_movdqu<avxsizesuffix>): Split to ...
116         (<sse2>_loaddqu<avxsizesuffix>): ... this and ...
117         (<sse2>_storedqu<avxsizesuffix>): ... this.
118         (*sse4_2_pcmpestr_unaligned): Update.
119         (*sse4_2_pcmpistr_unaligned): Ditto.
120
121         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
122         gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
123         gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
124         (ix86_expand_vector_move_misalign): Use gen_sse_loadups or
125         gen_sse2_load{dqu,upd} to load from unaligned memory and
126         gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
127         unaligned memory.
128         (struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
129         Use CODE_FOR_sse_loadups.
130         <IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
131         <IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
132         <IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
133         <IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
134         <IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
135         <IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
136         <IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
137         <IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
138         <IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
139         <IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
140         <IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.
141
142 2012-10-15  Steven Bosscher  <steven@gcc.gnu.org>
143
144         Backport from trunk (r190222):
145
146         PR tree-optimization/54146
147         * ifcvt.c: Include pointer-set.h.
148         (cond_move_process_if_block): Change type of then_regs and
149         else_regs from alloca'd array to pointer_sets.
150         (check_cond_move_block): Update for this change.
151         (cond_move_convert_if_block): Likewise.
152         * Makefile.in: Fix dependencies for ifcvt.o.
153
154 2012-10-15  Richard Guenther  <rguenther@suse.de>
155
156         PR tree-optimization/54920
157         * tree-ssa-pre.c (create_expression_by_pieces): Properly
158         allocate temporary storage for all NARY elements.
159
160 2012-10-08  Georg-Johann Lay  <avr@gjlay.de>
161
162         PR target/54854
163         * doc/invoke.texi (AVR Options): Deprecate -mshort-calls.
164
165 2012-10-05  Mark Kettenis  <kettenis@openbsd.org>
166
167         * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
168         default_use_cxa_atexit to yes.
169
170 2012-10-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
171
172         * config/pa/pa.md: Adjust unamed HImode add insn pattern.
173
174 2012-10-05  Jan Hubicka  <jh@suse.cz>
175             Jakub Jelinek  <jakub@redhat.com>
176
177         PR tree-optimization/33763
178         * tree-inline.c (expand_call_inline): Silently ignore always_inline
179         attribute for redefined extern inline functions.
180
181 2012-10-03  H.J. Lu  <hongjiu.lu@intel.com>
182
183         Backported from mainline
184         2012-10-03  Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
185
186         * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
187         in SSE and YMM state support check for -march=native.
188
189 2012-10-03  Alexandre Oliva <aoliva@redhat.com>
190
191         PR debug/53135
192         * dwarf2out.c (value_format): Use block4 for dw_val_class_loc
193         when needed.
194
195 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
196
197         Backported from mainline
198         2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
199
200         PR target/54785
201         * doc/invoke.texi: Document -mprefer-avx128.
202
203 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
204
205         Backported from mainline
206         2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
207
208         PR target/54741
209         *  config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
210         (XSTATE_FP): Likewise.
211         (XSTATE_SSE): Likewise.
212         (XSTATE_YMM): Likewise.
213         (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
214         SSE and YMM states aren't supported.
215
216 2012-10-01  Tom de Vries  <tom@codesourcery.com>
217
218         * var-tracking.c (set_dv_changed): Add an 'inline' function specifier to
219         the prototype.
220
221 2012-10-01  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
222
223         PR target/54746
224         * config/s390/s390.c (s390_option_override): Add missing break.
225
226 2012-09-29  Andreas Tobler  <andreast@fgznet.ch>
227
228         Backport from mainline
229         2012-09-29  Andreas Tobler  <andreast@fgznet.ch>
230
231         * config.gcc: Replace 'host' with 'target' when configuring for
232         powerpc64*-*-freebsd.
233
234 2012-09-28  Meador Inge  <meadori@codesourcery.com>
235
236         Backport from mainline
237         2012-09-27  Meador Inge  <meadori@codesourcery.com>
238
239         * gcc-ar.c (main): Handle the returning of the sub-process error
240         code correctly.
241
242 2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
243
244         Backport from 2012-09-28 trunk r191821.
245         * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic.
246
247 2012-09-27  Jakub Jelinek  <jakub@redhat.com>
248
249         PR target/54703
250         * simplify-rtx.c (simplify_binary_operation_1): Perform
251         (x - (x & y)) -> (x & ~y) optimization only for integral modes.
252
253 2012-09-24  Eric Botcazou  <ebotcazou@adacore.com>
254
255         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in
256         TYPE_NONALIASED_COMPONENT flag.
257         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out
258         TYPE_NONALIASED_COMPONENT flag.
259
260 2012-09-21  Richard Guenther  <rguenther@suse.de>
261
262         PR middle-end/54638
263         Backport from mainline
264         2012-04-19  Richard Guenther  <rguenther@suse.de>
265
266         * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
267         array access.
268
269 2012-09-20  Joseph Myers  <joseph@codesourcery.com>
270
271         PR c/54552
272         * c-typeck.c (c_cast_expr): When casting to a type requiring
273         C_MAYBE_CONST_EXPR to be created, pass the inner expression to
274         c_fully_fold first.
275
276 2012-09-20  Joseph Myers  <joseph@codesourcery.com>
277
278         PR c/54103
279         * c-typeck.c (build_unary_op): Pass original argument of
280         TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove
281         any C_MAYBE_CONST_EXPR, if it has integer operands.
282         (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR,
283         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR
284         to c_objc_common_truthvalue_conversion, then remove any
285         C_MAYBE_CONST_EXPR, if they have integer operands.  Use
286         c_objc_common_truthvalue_conversion not
287         c_common_truthvalue_conversion.
288         (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and
289         call note_integer_operands for arguments with integer operands
290         that are not integer constants.
291
292 2012-09-20  Jakub Jelinek  <jakub@redhat.com>
293
294         Backported from mainline
295         2012-09-17  Jakub Jelinek  <jakub@redhat.com>
296
297         PR tree-optimization/54563
298         * tree-ssa-math-opts.c (execute_cse_sincos): Call
299         gimple_purge_dead_eh_edges if last call has been changed.
300
301         2012-09-14  Jakub Jelinek  <jakub@redhat.com>
302
303         PR target/54564
304         * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1)
305         instead of (match_dup 0) as second argument to vec_merge.
306         (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
307         Remove third alternative.
308         (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise.  Negate
309         operand 2 instead of operand 1, but put it as first argument
310         of fma.
311         * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
312         _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
313         of the first.
314
315 2012-09-20  Jakub Jelinek  <jakub@redhat.com>
316
317         * BASE-VER: Set to 4.7.3.
318         * DEV-PHASE: Set to prerelease.
319
320 2012-09-20  Release Manager
321
322         * GCC 4.7.2 released.
323
324 2012-09-15  Andi Kleen  <ak@linux.intel.com>
325
326         Backport from mainline
327         2012-09-07  Andi Kleen  <ak@linux.intel.com>
328
329         * gcc/lto-streamer.h (res_pair): Add.
330         (lto_file_decl_data): Replace resolutions with respairs.
331         Add max_index.
332         * gcc/lto/lto.c (lto_resolution_read): Remove max_index.  Add rp.
333         Initialize respairs.
334         (lto_file_finalize): Set up resolutions vector lazily from respairs.
335
336 2012-09-14  Walter Lee  <walt@tilera.com>
337
338         Backport from mainline.
339         2012-09-14  Walter Lee  <walt@tilera.com>
340
341         * doc/invoke.texi (Option Summary): fix typesetting for -mcpu
342         option for TILEPro and TILE-Gx.
343
344 2012-09-13  Uros Bizjak  <ubizjak@gmail.com>
345
346         * config/i386/i386.h (x86_prefetchw): New global variable.
347         (TARGET_PREFETCHW): New macro.
348         * config/i386/i386.c (PTA_PREFETCHW): Ditto.
349         (processor_alias_table): Add PTA_PREFETCHW to
350         bdver1, bdver2 and btver1.
351         (ix86_option_override_internal): Set x86_prefetchw for
352         PTA_PREFETCHW targets.
353         * config/i386/i386.md (prefetch): Expand to prefetchw
354         for TARGET_PREFETCHW.
355         (*prefetch_3dnow_<mode>): Also enable for TARGET_PREFETCHW.
356
357         Backport from mainline
358         2012-08-13  Uros Bizjak  <ubizjak@gmail.com>
359
360         * config/i386/i386.md (prefetch): Do not assert mode of operand 0.
361         (*prefetch_sse_<mode>): Do not set mode of address_operand predicate.
362         Rename to ...
363         (*prefetch_sse): ... this.
364         (*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate.
365         Rename to ...
366         (*prefetch_3dnow): ... this.
367
368 2012-09-13  Jakub Jelinek  <jakub@redhat.com>
369
370         PR c/54559
371         * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or
372         COMPLEX_TYPE with in_late_binary_op set temporarily to true.
373
374 2012-09-12  Teresa Johnson  <tejohnson@google.com>
375
376         Backport from mainline.
377         2012-09-12  Teresa Johnson  <tejohnson@google.com>
378
379         PR gcov-profile/54487
380         * configure.ac (HOST_HAS_F_SETLKW): Set based on compile
381         test using F_SETLKW with fcntl.
382         * configure, config.in: Regenerate.
383
384 2012-09-12  Uros Bizjak  <ubizjak@gmail.com>
385
386         Backport from mainline
387         2012-09-12  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
388
389         * config/i386/i386.md : Comments on fma4 instruction selection
390         reflect requirement on register pressure based cost model.
391
392         * config/i386/driver-i386.c (host_detect_local_cpu): fma4
393         flag is set-reset as informed by the cpuid flag.
394
395         * config/i386/i386.c (processor_alias_table): fma4
396         flag is enabled for bdver2.
397
398 2012-09-12  Christian Bruel  <christian.bruel@st.com>
399
400         * config/sh/newlib.h (NO_IMPLICIT_EXTERN_C): Define.
401
402 2012-09-12  Jakub Jelinek  <jakub@redhat.com>
403
404         * config.gcc: Obsolete picochip-*.
405
406 2012-09-11  Richard Guenther  <rguenther@suse.de>
407
408         PR debug/54534
409         * cgraph.h (varpool_can_remove_if_no_refs): Restore dependence
410         on flag_toplevel_reorder.
411
412 2012-09-10  Richard Henderson  <rth@redhat.com>
413
414         * config/alpha/predicates.md (small_symbolic_operand): Disallow
415         large offsets.
416
417 2012-09-10  Georg-Johann Lay  <avr@gjlay.de>
418
419         Backport from 2012-09-10 mainline r191132.
420
421         PR target/54536
422         * config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287".
423
424 2012-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
425
426         PR middle-end/54515
427         * tree-sra.c (disqualify_base_of_expr): Check for possible
428         NULL_TREE returned by get_base_address()
429
430 2012-09-07  Richard Guenther  <rguenther@suse.de>
431
432         Backport from mainline
433         2012-06-26  Jan Hubicka  <jh@suse.cz>
434
435         PR lto/53572
436         * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
437         used symbols.
438
439 2012-09-07  Richard Guenther  <rguenther@suse.de>
440
441         Backport from mainline
442         2012-07-13  Richard Guenther  <rguenther@suse.de>
443
444         PR tree-optimization/53922
445         * tree-vrp.c (value_inside_range): Change prototype to take
446         min/max instead of value-range.
447         (range_includes_zero_p): Likewise.  Return the result from
448         value_inside_range.
449         (extract_range_from_binary_expr_1): Adjust to handle dont-know
450         return value from range_includes_zero_p.
451         (extract_range_from_unary_expr_1): Likewise.
452         (compare_range_with_value): Likewise.
453         (vrp_meet_1): Likewise.
454
455 2012-09-07  Richard Guenther  <rguenther@suse.de>
456
457         PR middle-end/53667
458         * tree-ssa-structalias.c (handle_rhs_call): Properly clobber
459         EAF_NOESCAPED arguments.  Transitively close non-EAF_DIRECT
460         arguments separately.
461
462 2012-09-07  Jakub Jelinek  <jakub@redhat.com>
463
464         Backported from mainline
465         2012-09-06  Jakub Jelinek  <jakub@redhat.com>
466
467         PR rtl-optimization/54455
468         * sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
469         bb ends up with asm goto referencing bb's label.
470
471 2012-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
472
473         Backport from mainline.
474         2012-08-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
475                     Richard Earnshaw  <richard.earnshaw@arm.com>
476
477         PR target/54252
478         * config/arm/arm.c (neon_dereference_pointer): Adjust nelems by
479         element size. Use elem_type from the formal parameter. New parameter
480         fcode.
481         (neon_expand_args): Adjust call to neon_dereference_pointer.
482
483 2012-09-06  Uros Bizjak  <ubizjak@gmail.com>
484
485         * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Use
486         reg_not_xmm0_operand_maybe_avx as operand 0 constraint.
487
488 2012-09-06  Uros Bizjak  <ubizjak@gmail.com>
489
490         Backport from mainline
491         2012-08-11  Uros Bizjak  <ubizjak@gmail.com>
492
493         * config/i386/i386.md (isa): Add fma and fma4.
494         (enabled): Handle fma and fma4.
495         * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
496         (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
497         (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
498         (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
499         (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
500         (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.
501
502         2012-08-10  Uros Bizjak  <ubizjak@gmail.com>
503
504         * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
505         *fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
506         *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.
507
508 2012-09-06  Richard Guenther  <rguenther@suse.de>
509
510         PR tree-optimization/54498
511         * tree-ssa-alias.h (get_continuation_for_phi): Add flag to
512         abort when reaching an already visited region.
513         * tree-ssa-alias.c (maybe_skip_until): Likewise.  And do it.
514         (get_continuation_for_phi_1): Likewise.
515         (walk_non_aliased_vuses): When we translated the reference,
516         abort when we re-visit a region.
517         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
518
519 2012-09-06  Andrew Pinski  <apinski@cavium.com>
520
521         PR tree-opt/54494
522         * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.
523
524 2012-09-05  Jakub Jelinek  <jakub@redhat.com>
525
526         PR middle-end/54486
527         * builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
528         build_int_cst with size_type_node instead of size_int.
529
530 2012-09-05  Georg-Johann Lay  <avr@gjlay.de>
531
532         Backport from 2012-09-05 mainline r190697.
533
534         PR target/54461
535         * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
536         configured --with-avrlibc.
537         (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if configured
538         --with-avrlibc.
539         * config/avr/avrlibc.h: New file.
540         * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
541         configured --with-avrlibc.
542         * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__
543
544 2012-09-05  Bin Cheng  <bin.cheng@arm.com>
545
546         Backport from 2012-09-04 mainline r190919
547
548         PR target/45070
549         * config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value
550         of size less than 4 bytes by using macro ARM_NUM_INTS.
551         (thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.
552
553 2012-09-04  Richard Henderson  <rth@redhat.com>
554
555         * alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
556
557 2012-09-04  Georg-Johann Lay  <avr@gjlay.de>
558
559         Backport from 2012-09-04 mainline r190920
560
561         PR target/54476
562         * config/avr/avr.c (avr_expand_delay_cycles): Mask operand with SImode.
563
564 2012-09-04  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
565
566         Backport from 2012-09-04 mainline r190914
567
568         PR target/54220
569         * config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
570         define to...
571         (avr_allocate_stack_slots_for_args): ...this new static function.
572
573 2012-09-03  H.J. Lu  <hongjiu.lu@intel.com>
574
575         Backported from mainline
576         2012-08-23  H.J. Lu  <hongjiu.lu@intel.com>
577
578         PR driver/54335
579         * doc/invoke.texi: Add -da and remove -dm.
580
581 2012-09-03  Jakub Jelinek  <jakub@redhat.com>
582
583         Backported from mainline
584         2012-09-01  Jakub Jelinek  <jakub@redhat.com>
585
586         PR target/54436
587         * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
588         operands[1] is CONST_INT_P, convert it to QImode before printing.
589
590         2012-08-31  Jakub Jelinek  <jakub@redhat.com>
591
592         PR c/54428
593         * c-convert.c (convert): Don't call fold_convert_loc if
594         TYPE_MAIN_VARIANT of a COMPLEX_TYPE is the same, unless e
595         is a COMPLEX_EXPR.  Remove TYPE_MAIN_VARIANT check from
596         COMPLEX_TYPE -> COMPLEX_TYPE conversion.
597
598         2012-08-24  Jakub Jelinek  <jakub@redhat.com>
599
600         PR c/54363
601         * gimplify.c (optimize_compound_literals_in_ctor): Only recurse
602         if init is a CONSTRUCTOR.
603
604 2012-09-02  Eric Botcazou  <ebotcazou@adacore.com>
605
606         PR rtl-optimization/54369
607         * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
608         calling dbr_schedule.
609         * config/sparc/sparc.c (sparc_reorg): Likewise.
610
611 2012-08-31  Kirill Yukhin  <kirill.yukhin@intel.com>
612
613         Backport from mainline
614         2012-08-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
615
616         * config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add
617         case for Atom processor.
618
619 2012-08-28  Uros Bizjak  <ubizjak@gmail.com>
620
621         Backport from mainline
622         2012-08-27  Uros Bizjak  <ubizjak@gmail.com>
623
624         PR target/46254
625         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
626         true for TARGET_64BIT or !flag_pic.
627         * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
628         (atomic_compare_and_swap_double<mode>): Change operand 2 predicate
629         to cmpxchg8b_pic_memory_operand.  Use DWIH mode iterator.
630         Add insn constraint.  Conditionally emit xchg asm insns.
631         (atomic_compare_and_swap<mode>): Update calls.  Check only
632         cmpxchg8b_pic_memory_operand in memory address fixup.
633         (DCASMODE): Remove.
634         (CASHMODE): Rename from DCASHMODE.
635         (doublemodesuffix): Update modes.
636         (regprefix): New mode attribute.
637
638         (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
639         <UNSPECV_CMPXCHG>: New constant.
640         (atomic_compare_and_swap<mode>_1): Rename from
641         atomic_compare_and_swap_single<mode>.  Update calls and
642         unspec_volatile constants.
643         (atomic_compare_and_swap<mode>_doubleword): Rename from
644         atomic_compare_and_swap_double<mode>.  Update calls and
645         unspec_volatile constants.
646
647 2012-08-28  Walter Lee  <walt@tilera.com>
648
649         Backport from mainline
650         2012-08-28  Walter Lee  <walt@tilera.com>
651
652         * confg/tilegx/tilegx.md: Fix code style.
653         (*zero_extendsidi_truncdisi): Fix typo.
654         * config/tilegx/tilegx.c: Fix code style.
655         (tilegx_function_profiler): Fix typo.
656
657 2012-08-27  Walter Lee  <walt@tilera.com>
658
659         Backport from mainline
660         2012-08-27  Walter Lee  <walt@tilera.com>
661
662         * doc/md.texi (TILE-Gx): Fix typo.
663
664 2012-08-27  Walter Lee  <walt@tilera.com>
665
666         Backport from mainline
667         2012-08-27  Walter Lee  <walt@tilera.com>
668
669         * config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo.
670         * config/tilepro/tilepro.c (tilepro_function_profiler): Ditto.
671
672 2012-08-27  Walter Lee  <walt@tilera.com>
673
674         Backport from mainline
675         2012-08-27  Walter Lee  <walt@tilera.com>
676
677         * config/tilegx/tilegx.md (*bfins): Rename to insn_bfins.
678         (insn_bfins): Delete.
679
680 2012-08-27  Walter Lee  <walt@tilera.com>
681
682         Backport from mainline
683         2012-08-27  Walter Lee  <walt@tilera.com>
684
685         * config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>,
686         atomic_exchange_bare<mode>,
687         atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote.
688         * config/tilegx/tilegx-generic.md (X1_remote): New insn_reservation.
689         * config/tilegx/tilegx.md (type): Add X1_remove.
690         (insn_cmpexch<four_if_si>, insn_exch<four_if_si>,
691         insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>,
692         insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to
693         X1_remote.
694
695 2012-08-25  Eric Botcazou  <ebotcazou@adacore.com>
696
697         PR rtl-optimization/54088
698         * jump.c (delete_related_insns): Robustify latest change.
699
700 2012-08-21  Richard Guenther  <rguenther@suse.de>
701
702         Backport from mainline
703         2012-08-16  Richard Guenther  <rguenther@suse.de>
704
705         PR middle-end/54146
706         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
707         exit vector.
708         * ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
709         * cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
710         * tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
711         * tree-ssa-loop-im.c (analyze_memory_references): Adjust.
712         (tree_ssa_lim_finalize): Free all mem_refs.
713         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
714         scc when bailing out.
715         * modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
716         * ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
717         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
718         FOR_EACH_LOOP_BREAK.
719
720         2012-08-17  Richard Guenther  <rguenther@suse.de>
721
722         * tree-sra.c (modify_function): Free redirect_callers vector.
723         * ipa-split.c (split_function): Free args_to_pass vector.
724         * tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
725         vec_oprnds.
726         (new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
727         * tree-vect-slp.c (vect_free_slp_instance): Free the instance.
728         (vect_analyze_slp_instance): Free everything.
729         (destroy_bb_vec_info): Free the SLP instances.
730
731         2012-08-17  Richard Guenther  <rguenther@suse.de>
732
733         * params.def (integer-share-limit): Decrease from 256 to 251,
734         add rationale.
735
736         2012-08-21  Richard Guenther  <rguenther@suse.de>
737
738         * tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
739         the affine expansion cache.
740
741 2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>
742
743         Backported from trunk
744         2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>
745
746         PR middle-end/53992
747         * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.
748
749 2012-08-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
750
751         Backport from mainline.
752         2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
753
754         PR target/54212
755         * config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
756         mark as predicable. Adjust asm template.
757         (vec_setv2di_internal): Likewise.
758         (vec_extract<mode> VD, VQ): Likewise.
759         (vec_extractv2di): Likewise.
760         (neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
761         (neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
762         (neon_vdup_n<mode> VX, V32): Likewise.
763         (neon_vdup_nv2di): Likewise.
764
765 2012-08-17  Walter Lee  <walt@tilera.com>
766
767         Backport from mainline
768         2012-08-17  Walter Lee  <walt@tilera.com>
769
770         * config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
771         (FEEDBACK_ENTER): Define.
772         (FEEDBACK_REENTER): Define.
773         (FEEDBACK_ENTRY): Define.
774         * config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
775         (FEEDBACK_ENTER): Define.
776         (FEEDBACK_REENTER): Define.
777         (FEEDBACK_ENTRY): Define.
778
779 2012-08-16  Walter Lee  <walt@tilera.com>
780
781         Backport from mainline
782         2012-08-16  Walter Lee  <walt@tilera.com>
783
784         * config.gcc (tilegx-*-linux*): Add feedback.h.
785         (tilepro-*-linux*): Likewise.
786         * config/tilegx/feedback.h: New file.
787         * config/tilepro/feedback.h: New file.
788
789 2012-08-08  Pavel Chupin  <pavel.v.chupin@intel.com>
790
791         Backport from mainline r189840 and r187586:
792         2012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
793
794         * config/i386/i386.md (stack_protect_set): Disable the pattern
795         for Android since Android libc (bionic) does not provide random
796         value for stack protection guard at gs:0x14. Guard value
797         will be provided from external symbol (default implementation).
798         (stack_protect_set_<mode>): Likewise.
799         (stack_protect_test): Likewise.
800         (stack_protect_test_<mode>): Likewise.
801         * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
802         not have Bionic by default
803         * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
804         Macro OPTION_BIONIC is defined in this file and provides Bionic
805         accessibility status
806
807         2012-05-16  Igor Zamyatin  <igor.zamyatin@intel.com>
808
809         * configure.ac: Stack protector enabling for Android targets.
810         * configure: Regenerate.
811
812 2012-08-13  Jakub Jelinek  <jakub@redhat.com>
813
814         Backported from trunk
815         2012-07-19  Jakub Jelinek  <jakub@redhat.com>
816
817         PR rtl-optimization/53942
818         * function.c (assign_parm_setup_reg): Avoid zero/sign extension
819         directly from likely spilled non-fixed hard registers, move them
820         to pseudo first.
821
822 2012-08-11  Uros Bizjak  <ubizjak@gmail.com>
823
824         * config/i386/sse.md (xop_phaddbq):  Fix vec_select selectors.
825         (xop_phaddubq): Ditto.
826
827 2012-08-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
828
829         Backport from mainline
830         2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>
831                     Richard Earnshaw  <rearnsha@arm.com>
832
833         * target.def (vector_alignment): New target hook.
834         * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
835         * doc/tm.texi: Regenerate.
836         * targhooks.c (default_vector_alignment): New function.
837         * targhooks.h (default_vector_alignment): Add prototype.
838         * stor-layout.c (layout_type): Use targetm.vector_alignment.
839         * config/arm/arm.c (arm_vector_alignment): New function.
840         (TARGET_VECTOR_ALIGNMENT): Define.
841
842         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
843         vector type alignment instead of size.
844         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
845         element type size directly instead of computing it from alignment.
846         Fix variable naming and comment.
847
848 2012-08-09  Uros Bizjak  <ubizjak@gmail.com>
849
850         Backport from mainline
851         2012-08-09  Uros Bizjak  <ubizjak@gmail.com>
852
853         * config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
854         (alpha_pad_function_end): ... this.  Also insert NOP between
855         sibling call and GP load.
856         (alpha_reorg): Update call to alpha_pad_function_end.  Expand comment.
857
858 2012-08-09  H.J. Lu  <hongjiu.lu@intel.com>
859
860         Backport from mainline
861         2012-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
862                     H.J. Lu  <hongjiu.lu@intel.com>
863
864         PR rtl-optimization/54157
865         * combine.c (gen_lowpart_for_combine): Don't return identity
866         for CONST or symbolic reference.
867
868 2012-08-06  Uros Bizjak  <ubizjak@gmail.com>
869
870         Backport from mainline
871         2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
872
873         * config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype.
874         * config/i386/i386.c (ix86_lea_outperforms): Make static.  Make
875         split_cost argument signed.
876         (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
877         (ix86_avoid_lea_for_addr): Ditto.
878
879         2012-07-27  Uros Bizjak  <ubizjak@gmail.com>
880
881         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false if
882         the address has less than two components.
883
884 2012-08-02  Steve Ellcey  <sellcey@mips.com>
885
886         Backport from mainline
887         2012-07-19  Steve Ellcey  <sellcey@mips.com>
888
889         * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
890         MIPS16 mode.
891
892 2012-08-02  Uros Bizjak  <ubizjak@gmail.com>
893
894         Backport from mainline
895         2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
896
897         PR target/53961
898         * config/i386/i386.c (ix86_legitimate_address_p): Move check for
899         negative constant address for TARGET_X32 ...
900         (ix86_decompose_address): ... here.  Reject constant addresses
901         that don't satisfy x86_64_immediate_operand predicate.
902
903         2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
904
905         PR target/53961
906         * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
907         * config/i386/i386.c (ix86_print_operand_address): Ditto.
908         (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
909         addresses.  Prevent zero extensions of CONST_INT operands.
910
911         2012-07-22  Uros Bizjak  <ubizjak@gmail.com>
912
913         PR target/53961
914         * config/i386/i386.md (*lea): New insn pattern.
915         (*lea_1): Remove.
916         (*lea<mode>_2): Ditto.
917         (*lea_{3,4,5,6}_zext): Ditto.
918         * config/i386/predicates.md (lea_address_operand): Do not reject
919         zero-extended address operands.
920         * config/i386/constraints.md (j): Remove address constraint.
921         * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
922         of an address.
923         (ix86_print_operand_address): Handle SImode subreg of an address.
924         (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
925
926 2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
927
928         Backport from mainline
929         2012-03-09  Uros Bizjak  <ubizjak@gmail.com>
930
931         PR target/52530
932         * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
933         (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
934         to set code to 'q'.
935         * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
936         (*movdi_internal_rex64): Use %E operand modifier for lea.
937         (*movsi_internal): Ditto.
938         (*lea_1): Ditto.
939         (*lea<mode>_2): Ditto.
940         (*lea_{3,4,5,6}_zext): Ditto.
941         (*tls_global_dynamic_32_gnu): Ditto.
942         (*tls_global_dynamic_64): Ditto.
943         (*tls_dynamic_gnu2_lea_32): Ditto.
944         (*tls_dynamic_gnu2_lea_64): Ditto.
945         (pro_epilogue_adjust_stack_<mode>_add): Ditto.
946
947 2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
948
949         Backport from mainline
950         2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
951
952         * config/i386/i386.c (ix86_address_subreg_operand): Reject
953         stack pointer.
954         (ix86_print_operand_address): Assert that parts.base and parts.index
955         are non-NULL after call to simplify_subreg.
956
957 2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>
958
959         PR target/33135
960         * config/sh/sh.opt (mieee): Use Var instead of Mask.  Correct
961         description.
962         * config/sh/sh.c (sh_option_override): Do not change
963         flag_finite_math_only.  Set TARGET_IEEE to complement of
964         flag_finite_math_only.
965         * doc/invoke.texi (SH options): Add mno-ieee.  Correct
966         description of mieee and mno-ieee behavior.
967
968 2012-07-20  Kirill Yukhin  <kirill.yukhin@intel.com>
969
970         PR target/53877
971         * config/i386/lzcntintrin.h (_lzcnt_u32): New.
972         (_lzcnt_u64): Ditto.
973
974 2012-07-20  Andrey Belevantsev  <abel@ispras.ru>
975
976         Backport from mainline
977         2012-03-06  Andrey Belevantsev  <abel@ispras.ru>
978
979         PR rtl-optimization/52250
980         * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
981         to put note list into.  Unconditionally call move_bb_info.
982         (move_bb_info): Do not assert the blocks being in the same region,
983         just drop the note list if they are not.
984
985 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
986
987         * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
988
989 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
990
991         * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
992         defining statement is a SSA name that occurs in abnormal PHIs.
993
994 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
995
996         * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
997         conversions.
998
999 2012-07-19  Richard Guenther  <rguenther@suse.de>
1000             Eric Botcazou  <ebotcazou@adacore.com>
1001
1002         * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
1003         about transition from invariant to known bits.
1004         (likely_value): Addresses with UNDEFINED components are UNDEFINED.
1005
1006 2012-07-19  Jakub Jelinek  <jakub@redhat.com>
1007
1008         PR middle-end/54017
1009         * tree-cfgcleanup.c (cleanup_omp_return): Remove.
1010         (cleanup_tree_cfg_bb): Don't call it.
1011         * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
1012         handling.
1013
1014 2012-07-19  Christian Bruel  <christian.bruel@st.com>
1015
1016         PR target/54029
1017         * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
1018
1019 2012-07-18  Ralf Corsépius  <ralf.corsepius@rtems.org>
1020
1021         * config.gcc (v850-*-rtems*): New target.
1022         * config/v850/rtems.h: New.
1023         * config/v850/t-rtems: New.
1024
1025 2012-07-18  Nick Clifton  <nickc@redhat.com>
1026
1027         * doc/invoke.texi (ARM Options): Document -munaligned-access.
1028
1029 2012-07-15  Uros Bizjak  <ubizjak@gmail.com>
1030
1031         PR target/53961
1032
1033         Backport from mainline
1034         2012-04-25  Jakub Jelinek  <jakub@redhat.com>
1035
1036         PR target/53110
1037         * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
1038         instead expand it as zero extension.
1039
1040 2012-07-14  Uros Bizjak  <ubizjak@gmail.com>
1041
1042         * config/i386/i386.md (QImode and HImode cmove splitters): Merge
1043         QImode and HImode splitters.  Use ix86_comparison_operator.
1044         Explicitly match FLAGS_REG.
1045         (DFmode cmove splitter): Explicitly match FLAGS_REG.
1046
1047 2012-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
1048             Steven Bosscher  <steven@gcc.gnu.org>
1049             Bernd Schmidt  <bernds@codesourcery.com>
1050
1051         PR rtl-optimization/53908
1052         * df-problems.c (can_move_insns_across): When doing
1053         memory-reference book-keeping, handle call insns.
1054
1055 2012-07-10  Uros Bizjak  <ubizjak@gmail.com>
1056
1057         Backport from mainline
1058         2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
1059
1060         PR target/53811
1061         * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
1062         sibcall_insn_operand.  Move it to a temporary register if not.
1063
1064         2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
1065
1066         PR target/53853
1067         * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
1068         emit PIC sequence for fnaddr symbol reference in advance.
1069
1070 2012-07-09  Jason Merrill  <jason@redhat.com>
1071
1072         PR c++/53882
1073         * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
1074         (type_hash_eq): Likewise.
1075
1076         PR c++/53826
1077         * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
1078
1079 2012-07-07  Ulrich Weigand  <ulrich.weigand@linaro.org>
1080
1081         * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
1082         due to negative shift amount.
1083
1084 2012-07-06  Kai Tietz  <ktietz@redhat.com>
1085
1086         Backport from mainline.
1087         PR bootstrap/52947
1088         * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
1089         as "/mingw/include".
1090
1091 2012-07-06  Nick Clifton  <nickc@redhat.com>
1092
1093         * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
1094         default_encode_section_info.
1095
1096 2012-07-06  Richard Guenther  <rguenther@suse.de>
1097
1098         Backport from mainline
1099         2012-03-30  Richard Guenther  <rguenther@suse.de>
1100
1101         PR middle-end/52786
1102         * double-int.c (rshift_double): Remove not needed cast.
1103
1104         2012-03-28  Richard Guenther  <rguenther@suse.de>
1105
1106         PR middle-end/50708
1107         * double-int.h (rshift_double): Remove.
1108         * double-int.c (lshift_double): Use absu_hwi to make count
1109         positive.
1110         (rshift_double): Make static, take unsigned count argument,
1111         remove handling of negative count argument.
1112         (double_int_rshift): Dispatch to lshift_double.
1113
1114 2012-07-06  Richard Guenther  <rguenther@suse.de>
1115
1116         Backport from mainline
1117         2012-06-18  Richard Guenther  <rguenther@suse.de>
1118
1119         PR tree-optimization/53693
1120         * tree-vect-patterns.c (vect_operation_fits_smaller_type):
1121         Reject operands with more than one use.
1122
1123 2012-07-06  Richard Guenther  <rguenther@suse.de>
1124
1125         Backport from mainline
1126         2012-04-11  Richard Guenther  <rguenther@suse.de>
1127
1128         PR middle-end/52621
1129         * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
1130         consider loop nesting.
1131         (evolution_function_is_univariate_p): Properly check the remainder
1132         for chrecs.
1133
1134 2012-07-05  Pat Haugen <pthaugen@us.ibm.com>
1135
1136         Backport from mainline
1137         2012-05-24  Pat Haugen <pthaugen@us.ibm.com>
1138
1139         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
1140         rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
1141         (adjacent_mem_locations): Move some code to and call...
1142         (get_memref_parts): ...new function.
1143         (mem_locations_overlap): New function.
1144         (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
1145         (is_mem_ref): Rename to...
1146         (find_mem_ref): ...this. Return MEM rtx.
1147         (get_store_dest): Remove function.
1148         (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
1149         new parameter and adjust calls.
1150         (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
1151         mem refs overlap for true_store_to_load_dep_costly.
1152         (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
1153         passed to adjacent_mem_locations.
1154         (is_costly_group): Walk resolved dependency list.
1155         (force_new_group): Emit group ending nop for Power6/Power7.
1156         * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
1157         (group_ending_nop): New define_insn.
1158
1159 2012-07-04  Richard Guenther  <rguenther@suse.de>
1160
1161         PR middle-end/53433
1162         * gimple-fold.c (get_base_constructor): Do not return an
1163         error_mark_node DECL_INITIAL.
1164
1165 2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
1166
1167         Backport from mainline
1168         2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
1169
1170         * config/i386/i386.c (ix86_option_override_internal): Fix wrong
1171         code model string in the error message.
1172
1173 2012-07-04  Tristan Gingold  <gingold@adacore.com>
1174
1175         Backport from mainline.
1176         2012-06-25  Tristan Gingold  <gingold@adacore.com>
1177
1178         * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
1179         (seh_cfa_adjust_cfa): ... that function.
1180         (seh_emit_stackalloc): Do not emit out of range values.
1181         * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
1182         UNSPEC_DEF_CFA constants.
1183         * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
1184         * config/i386/i386.c (ix86_frame_pointer_required): Required
1185         for very large frames on SEH target.
1186         (ix86_compute_frame_layout): Save area is before frame pointer
1187         on SEH target.  Handle very large frames.
1188         (ix86_expand_prologue): Likewise.
1189
1190 2012-07-04  Richard Guenther  <rguenther@suse.de>
1191
1192         * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
1193         as in free_lang_data_in_type.
1194
1195 2012-07-02  Martin Jambor  <mjambor@suse.cz>
1196
1197         Backport from mainline.
1198         2012-07-02  Martin Jambor  <mjambor@suse.cz>
1199
1200         PR middle-end/38474
1201         * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
1202         dynamic type change check.
1203
1204 2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1205
1206         * tree-eh.c (lower_try_finally_switch): Really put the location of the
1207         last statement of the finally block onto the switch.
1208
1209 2012-06-29  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1210
1211         * configure: Regenerate.
1212
1213         Backport from mainline.
1214         2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1215
1216         * config.gcc (target_type_format_char): New. Document it. Set it for
1217         arm*-*-* .
1218         * configure.ac (gnu_unique_option): Use target_type_format_char
1219         in test.  Comment rationale.
1220
1221 2012-06-29  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1222
1223         Backport from mainline.
1224         2012-05-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1225
1226         * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
1227
1228 2012-06-28  Georg-Johann Lay  <avr@gjlay.de>
1229
1230         Backport from 2012-06-28 mainline r189049
1231
1232         PR 53595
1233         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
1234         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
1235         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
1236         avr_hard_regno_call_part_clobbered.
1237
1238 2012-06-28  Richard Guenther  <rguenther@suse.de>
1239
1240         PR middle-end/53790
1241         * expr.c (expand_expr_real_1): Verify if the type is complete
1242         before inspecting its size.
1243
1244 2012-06-27  Nick Clifton  <nickc@redhat.com>
1245
1246         * config/rx/rx.md (comparesi3_extend): Remove = modifier from
1247         input operand.
1248
1249 2012-06-26  Alexandre Oliva  <aoliva@redhat.com>
1250
1251         PR debug/53682
1252         * cselib.c (promote_debug_loc): Don't crash on NULL argument.
1253
1254 2012-06-26  Nick Clifton  <nickc@redhat.com>
1255
1256         * config/rx/rx.md (simple_return): Use the simple_return rtx.
1257
1258 2012-06-25  Jakub Jelinek  <jakub@redhat.com>
1259
1260         PR target/53759
1261         * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
1262         of x x x in the vmovlps load alternative.
1263
1264 2012-06-22  Richard Guenther  <rguenther@suse.de>
1265
1266         * gcov-iov.c: Include bconfig.h and system.h.
1267
1268 2012-06-22  Richard Guenther  <rguenther@suse.de>
1269
1270         PR gcov-profile/53744
1271         * gcov-iov.c (main): Treat "" and "prerelease" the same.
1272
1273 2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>
1274
1275         * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
1276         DECL_IGNORED_P non-reg vars even if they are used.
1277
1278 2012-06-19  Jason Merrill  <jason@redhat.com>
1279
1280         PR c++/52637
1281         * dwarf2out.c (modified_type_die): Use scope_die_for.
1282         (gen_type_die_with_usage, dwarf2out_finish): Likewise.
1283         (uses_local_type_r, uses_local_type): New.
1284         (scope_die_for): Keep a type that uses a local type in local scope.
1285         Use get_context_die for namespace and type scope.
1286
1287 2012-06-19  Richard Guenther  <rguenther@suse.de>
1288
1289         PR middle-end/53470
1290         * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
1291         replace it with the first non-BLOCK context.
1292
1293 2012-06-18  Vladimir Makarov  <vmakarov@redhat.com>
1294
1295         PR rtl-optimization/53700
1296
1297         Backport from mainline
1298         2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1299
1300         * ira-color.c (setup_left_conflict_sizes_p): Process all
1301         conflicting objects.
1302
1303 2012-06-18  Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1304
1305         Backport from mainline
1306         2012-05-09 Uros Bizjak  <ubizjak@gmail.com>
1307
1308         PR target/52908
1309         * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
1310         xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
1311         (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
1312         instead of xop_mulv2div2di3_low.
1313         (xop_p<macs>dql): Fix vec_select selector.
1314         (xop_p<macs>dqh): Ditto.
1315         (xop_mulv2div2di3_low): Remove insn_and_split pattern.
1316         (xop_mulv2div2di3_high): Ditto.
1317
1318 2012-06-17  Uros Bizjak  <ubizjak@gmail.com>
1319
1320         Backport from mainline:
1321         2012-06-17  Uros Bizjak  <ubizjak@gmail.com>
1322
1323         * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
1324
1325 2012-06-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1326
1327         Backport from mainline:
1328         2012-06-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1329
1330         * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
1331         * config/pa/pa.c (pa_attr_length_millicode_call): Use
1332         MAX_PCREL17F_OFFSET instead of fixed offset.
1333         (pa_attr_length_call): Likewise.
1334         (pa_attr_length_indirect_call): Likewise.
1335
1336 2012-06-15  Walter Lee  <walt@tilera.com>
1337
1338         Backport from mainline:
1339         2012-06-15  Walter Lee  <walt@tilera.com>
1340
1341         * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
1342
1343         2012-06-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
1344
1345         * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
1346
1347 2012-06-15  Aldy Hernandez  <aldyh@redhat.com>
1348
1349         Backport from mainline:
1350
1351         2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
1352         * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
1353         * gimple.h (block_in_transaction): Check for flag_tm.
1354
1355 2012-06-14  Aldy Hernandez  <aldyh@redhat.com>
1356
1357         PR tree-optimization/52558
1358
1359         Backport from mainline:
1360         2012-05-21  Aldy Hernandez  <aldyh@redhat.com>
1361         * gimple.h (gimple_set_in_transaction): Remove.
1362         (gimple_in_transaction): Look in BB instead.
1363         (gimple_statement_base): Remove in_transaction field.
1364         * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
1365         * trans-mem.c (compute_transaction_bits): Place transaction bit
1366         information into basic blocks.
1367
1368         2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
1369
1370         PR tree-optimization/52558
1371         * cfg.c (alloc_aux_for_edge): Fix comment.
1372         (alloc_aux_for_edge): Remove static.
1373         * basic-block.h (alloc_aux_for_edge): Protoize.
1374         * tree-ssa-loop-im.c (execute_sm_if_changed): New.
1375         (execute_sm_if_changed_flag): New.
1376         (execute_sm_if_changed_flag_set): New.
1377         (execute_sm): Do not generate data races unless requested.
1378         (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
1379         (tree_ssa_lim_finalize): Call free_aux_for_edges.
1380         * gimple.h (block_in_transaction): New.
1381         (gimple_in_transaction): Use block_in_transaction.
1382
1383 2012-06-14  Jakub Jelinek  <jakub@redhat.com>
1384
1385         Backported from mainline
1386         2012-06-12  Jakub Jelinek  <jakub@redhat.com>
1387
1388         PR rtl-optimization/53589
1389         * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
1390         discovery even when e->dest != target.  If any LABEL_REF points
1391         to e->dest label, redirect it to target's label.
1392
1393         2012-06-07  Jakub Jelinek  <jakub@redhat.com>
1394
1395         PR middle-end/53580
1396         * omp-low.c (scan_omp_1_stmt): If check_omp_nesting_restrictions
1397         returns false, replace stmt with GIMPLE_NOP.
1398         (check_omp_nesting_restrictions): Instead of issuing warnings,
1399         issue errors and return false if any errors were reported.
1400
1401 2012-06-14  Richard Guenther  <rguenther@suse.de>
1402
1403         * BASE-VER: Set to 4.7.2.
1404         * DEV-PHASE: Set to prerelease.
1405
1406 2012-06-12  Christian Bruel  <christian.bruel@st.com>
1407
1408         PR target/53621
1409         * config/sh/sh.c (sh_option_override): Don't force
1410          flag_omit_frame_pointer and maccumulate_outgoing_args.
1411         * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
1412
1413 2012-06-14  Release Manager
1414
1415         * GCC 4.7.1 released.
1416
1417 2012-06-13  Uros Bizjak  <ubizjak@gmail.com>
1418
1419         * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
1420
1421 2012-06-13  Richard Henderson  <rth@redhat.com>
1422
1423         * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
1424         iterator instead of INT.
1425
1426 2012-06-08  Richard Henderson  <rth@redhat.com>
1427
1428         PR c++/53602
1429         * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
1430         note to a clobber insn when no other insn is available.
1431
1432 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
1433
1434         PR c++/53524
1435         * doc/invoke.texi (Wenum-compare): Update documentation.
1436
1437 2012-06-04  Edmar Wienskoski  <edmar@freescale.com>
1438
1439         PR target/53559
1440         * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
1441         operands.
1442         (altivec_stvlxl): Ditto.
1443         (altivec_stvrx): Ditto.
1444         (altivec_stvrxl): Ditto.
1445
1446 2012-06-04  Aldy Hernandez  <aldyh@redhat.com>
1447
1448         PR middle-end/47530
1449         * trans-mem.c (expand_block_edges): Do not skip the first
1450         statement when resetting the BB.
1451
1452 2012-06-04  Richard Guenther  <rguenther@suse.de>
1453
1454         PR middle-end/53471
1455         * dwarf2out.c (dwarf2out_finish): If generating LTO do not
1456         create new assembler names.
1457
1458 2012-06-04  Richard Guenther  <rguenther@suse.de>
1459
1460         Backport from mainline
1461         2012-04-25  Jakub Jelinek  <jakub@redhat.com>
1462
1463         PR middle-end/52979
1464         * stor-layout.c (get_best_mode): Don't return mode with bitsize
1465         larger than maxbits.  Don't compute maxbits modulo align.
1466         Also check that unit bytes long store at bitpos / unit * unit
1467         doesn't affect bits beyond bitregion_end.
1468         * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
1469         would not fit into bitregion_start ... bitregion_end + 1 bit
1470         region.
1471         (store_split_bit_field): Decrease unit close to end of bitregion_end
1472         if access is restricted in order to avoid mutual recursion.
1473
1474 2012-06-04  Georg-Johann Lay  <avr@gjlay.de>
1475
1476         Backport from 2012-06-04 mainline r188172
1477
1478         PR target/46261
1479         * config/avr/avr-stdint.h: New file.
1480         * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
1481         newlib-stdint.h
1482
1483 2012-06-04  Jakub Jelinek  <jakub@redhat.com>
1484
1485         PR tree-optimization/53550
1486         * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
1487         is POINTER_TYPE_P, use sizetype as step type instead of type.
1488
1489 2012-06-04  Richard Guenther  <rguenther@suse.de>
1490             Eric Botcazou  <ebotcazou@adacore.com>
1491
1492         Backport from mainline
1493         2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
1494
1495         * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
1496         Change type of BITOFFSET to signed.  Make sure the lower bound of
1497         the computed range is non-negative by adjusting OFFSET and BITPOS.
1498         (expand_assignment): Adjust call to get_bit_range.
1499
1500         2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
1501
1502         * expr.c (get_bit_range): Return the null range if the enclosing record
1503         is part of a larger bit field.
1504
1505         2012-03-20  Richard Guenther  <rguenther@suse.de>
1506
1507         * stor-layout.c (finish_bitfield_representative): Fallback
1508         to conservative maximum size if the padding up to the next
1509         field cannot be computed as a constant.
1510         (finish_bitfield_layout): If we cannot compute the distance
1511         between the start of the bitfield representative and the
1512         bitfield member start a new representative.
1513         * expr.c (get_bit_range): The distance between the start of
1514         the bitfield representative and the bitfield member is zero
1515         if the field offsets are not constants.
1516
1517         2012-03-16  Richard Guenther  <rguenther@suse.de>
1518
1519         * stor-layout.c (finish_bitfield_representative): Fall back
1520         to the conservative maximum size if we cannot compute the
1521         size of the tail padding.
1522
1523         2012-03-14  Richard Guenther  <rguenther@suse.de>
1524
1525         * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
1526         * stor-layout.c (start_bitfield_representative): New function.
1527         (finish_bitfield_representative): Likewise.
1528         (finish_bitfield_layout): Likewise.
1529         (finish_record_layout): Call finish_bitfield_layout.
1530         * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
1531         for QUAL_UNION_TYPE fields.
1532         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
1533         Stream DECL_BIT_FIELD_REPRESENTATIVE.
1534         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
1535
1536         PR middle-end/52080
1537         PR middle-end/52097
1538         PR middle-end/48124
1539         * expr.c (get_bit_range): Unconditionally extract bitrange
1540         from DECL_BIT_FIELD_REPRESENTATIVE.
1541         (expand_assignment): Adjust call to get_bit_range.
1542
1543 2012-06-01  Eric Botcazou  <ebotcazou@adacore.com>
1544
1545         PR middle-end/53501
1546         * fold-const.c (fold_binary_loc): Refine previous change.
1547
1548 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
1549
1550         Backport from mainline
1551         2012-03-27  Chung-Lin Tang  <cltang@codesourcery.com>
1552
1553         PR target/52667
1554         * config/sh/sh.c (find_barrier): Add equality check of last_got to
1555         avoid going above orig insn.  Update comments.
1556
1557 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
1558
1559         Backport from mainline
1560         2012-03-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1561
1562         PR target/52642
1563         * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
1564         prologue for unwinder and profiler.
1565
1566 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
1567
1568         Backport from mainline
1569         2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1570
1571         * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
1572
1573 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
1574
1575         Backport from mainline
1576         2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1577
1578         * config/sh/sh.c (sh_dwarf_register_span): Don't apply
1579         DBX_REGISTER_NUMBER.
1580
1581 2012-06-01  Oleg Endo  <olegendo@gcc.gnu.org>
1582
1583         Backport from mainline
1584         2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1585
1586         * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
1587         operand is CONST_INT.  Take COSTS_N_INSNS into account.
1588         (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value of
1589         shiftcosts.     
1590
1591 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
1592
1593         * config/avr/avr.opt (-msp8): Document it.
1594         * doc/invoke.texi (AVR Options): Copy from trunk docu.
1595
1596 2012-05-31  Richard Guenther  <rguenther@suse.de>
1597
1598         PR middle-end/48493
1599         * expr.c (expand_assignment): Do not use movmisalign on
1600         non-memory.
1601
1602 2012-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1603
1604         PR target/52999
1605         * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
1606         (pa_section_type_flags): New.
1607         (pa_legitimate_constant_p): Revert previous change.
1608
1609 2012-05-30  Aldy Hernandez  <aldyh@redhat.com>
1610
1611         Backport from mainline
1612         2012-05-25  Aldy Hernandez  <aldyh@redhat.com>
1613
1614         PR middle-end/53008
1615         * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
1616         accessed indirectly.
1617         (ipa_tm_create_version): Same.
1618
1619 2012-05-30  Jason Merrill  <jason@redhat.com>
1620
1621         PR c++/53220
1622         * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
1623         about array compound literals.
1624
1625 2012-05-30  Richard Guenther  <rguenther@suse.de>
1626
1627         PR middle-end/53501
1628         * fold-const.c (fold_binary_loc): Make sure to call
1629         fold_plusminus_mult_expr with the original sign of operands.
1630
1631 2012-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1632
1633         * explow.c (probe_stack_range): Restore simple control flow and stop
1634         again when the probe cannot be generated if HAVE_check_stack.
1635
1636 2012-05-30  Jakub Jelinek  <jakub@redhat.com>
1637
1638         PR rtl-optimization/53519
1639         * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
1640         instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
1641
1642 2012-05-29  Richard Guenther  <rguenther@suse.de>
1643
1644         PR tree-optimization/53516
1645         * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
1646         bitfield accesses.
1647         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1648
1649 2012-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
1650
1651         Backport from mainline
1652         2012-05-28  Richard Guenther  <rguenther@suse.de>
1653
1654         PR tree-optimization/53438
1655         * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
1656
1657 2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1658
1659         Backport from mainline
1660         2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>
1661
1662         PR rtl-optimization/52528
1663         * combine.c (can_combine_p): Add setting of subst_low_luid
1664         before call to expand_field_assignment().
1665
1666 2012-05-26  Martin Jambor  <mjambor@suse.cz>
1667
1668         Backport from mainline
1669         2012-05-23  Martin Jambor  <mjambor@suse.cz>
1670
1671         * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
1672
1673 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1674
1675         PR lto/52178
1676         * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
1677         * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
1678
1679 2012-05-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1680
1681         PR target/53435
1682         * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
1683         (ix86_expand_vec_perm): Use int mode instead of float.
1684
1685 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1686
1687         PR ada/52362
1688         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
1689         gnu_ld variables to yes.
1690         * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
1691         (HAVE_GNU_AS): Likewise.
1692         * config.in: Regenerate.
1693         * configure: Likewise.
1694
1695 2012-05-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1696
1697         Backport from mainline
1698         2012-03-12  Richard Guenther  <rguenther@suse.de>
1699         * config/arm/arm.c (neon_dereference_pointer): Do not call
1700         covert during RTL expansion.
1701
1702 2012-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1703
1704         Backport from mainline
1705         2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1706
1707         PR target/53385
1708         * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
1709         relied on signed overflow behavior.
1710
1711 2012-05-24  Richard Guenther  <rguenther@suse.de>
1712
1713         PR middle-end/53460
1714         * tree-profile.c (tree_profiling): Cleanup the CFG if
1715         execute_fixup_cfg requests it.
1716
1717 2012-05-24  Jakub Jelinek  <jakub@redhat.com>
1718
1719         PR tree-optimization/53465
1720         * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
1721         vr0 into *vr, then vrp_meet that.
1722         (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
1723         have any equivalences.
1724         (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
1725         first time.
1726
1727 2012-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1728
1729         * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
1730         size handling.
1731         (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
1732         (iterative_hash_gimple_type): Adjust comment.
1733         (iterative_hash_canonical_type): Likewise.  Hash the bounds of the
1734         domain for an array type instead of the domain type itself.
1735
1736 2012-05-23  Georg-Johann Lay  <avr@gjlay.de>
1737
1738         Backport from 2012-05-23 mainline r187803
1739
1740         PR target/53448
1741         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
1742         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
1743         ASM_OUTPUT_ALIGN.
1744
1745 2012-05-23  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1746
1747         Backport from 2012-05-03 mainline r187075
1748
1749         * config/i386/driver-i386.c (host_detect_local_cpu): Reset
1750         has_fma4 for AMD processors with both fma3 and fma4 support.
1751
1752 2012-05-22  Richard Guenther  <rguenther@suse.de>
1753
1754         PR tree-optimization/53408
1755         * tree-vect-loop.c (vectorizable_induction): Properly check
1756         the restriction that we cannot handle induction results from
1757         the inner loop outside of the outer loop.
1758
1759 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
1760
1761         PR tree-optimization/53436
1762         * omp-low.c (omp_build_component_ref): New function.
1763         (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
1764
1765         PR tree-optimization/53366
1766         * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
1767         tests if complex_numbers == 2, but there are non-complex number loads
1768         too.
1769
1770         PR tree-optimization/53409
1771         * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
1772         vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
1773
1774         PR tree-optimization/53410
1775         * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
1776         instead of build_int_cst (type, 0) where vector types might be
1777         involved.
1778
1779 2012-05-21  Joseph Myers  <joseph@codesourcery.com>
1780
1781         PR c/53418
1782         * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
1783         from folded operands before wrapping another around the
1784         conditional expression.
1785
1786 2012-05-21  Dave Boutcher  <daveboutcher@gmail.com>
1787             Patrick Marlier  <patrick.marlier@gmail.com>
1788
1789         * trans-mem.c (ipa_tm_transform_clone): Transform functions with
1790         indirect calls.
1791
1792 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1793
1794         Backport from mainline
1795         2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1796
1797         PR target/53416
1798         * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
1799         (UNSPECV_RDRAND): This.
1800         (rdrand<mode>_1): Updated.
1801
1802 2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1803
1804         Backport from mainline
1805         2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1806
1807         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1808         RDRND, F16C and FSGSBASE.
1809
1810 2012-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1811
1812         Backport from mainline
1813         2012-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1814
1815         * tree-ssa-pre.c (can_value_number_call): Delete.
1816         (compute_avail): Skip all statements with side effects.
1817         <GIMPLE_CALL>: Skip calls to internal functions.
1818
1819 2012-05-18  David S. Miller  <davem@davemloft.net>
1820
1821         Backport r185385 from mainline
1822         2012-03-14  Richard Guenther  <rguenther@suse.de>
1823
1824         PR middle-end/52584
1825         * tree-vect-generic.c (type_for_widest_vector_mode): Take
1826         element type instead of mode, use build_vector_type_for_mode
1827         instead of the langhook, build a vector of proper signedness.
1828         (expand_vector_operations_1): Adjust.
1829
1830 2012-05-18  Olivier Hainque  <hainque@adacore.com>
1831
1832         * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
1833         $(libsubdir) as libexecsubdir.
1834
1835 2012-05-16  Andrew Pinski  <apinski@cavium.com>
1836
1837         * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
1838         GIMPLE_ASSIGN.
1839
1840 2012-05-16  David S. Miller  <davem@davemloft.net>
1841
1842         * jump.c (delete_related_insns): If we remove a CALL, make sure
1843         we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
1844
1845 2012-05-16  Richard Henderson  <rth@redhat.com>
1846
1847         PR debug/52727
1848         * combine-stack-adj.c (prev_active_insn_bb): New.
1849         (next_active_insn_bb): New.
1850         (force_move_args_size_note): New.
1851         (combine_stack_adjustments_for_block): Use it.
1852
1853 2012-05-16  Olivier Hainque  <hainque@adacore.com>
1854
1855         * Makefile.in (install-no-fixedincludes): New target, former toplevel
1856         gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
1857         Add comments and improve stamp preservation across the whole sequence.
1858         (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
1859
1860 2012-05-16  Richard Guenther  <rguenther@suse.de>
1861
1862         PR tree-optimization/53364
1863         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1864         detect a view-conversion of the decl.
1865
1866 2012-05-15  Jakub Jelinek  <jakub@redhat.com>
1867
1868         PR target/53358
1869         * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
1870         that operands[2] is either immediate, or q_regs_operand.
1871
1872 2012-05-15  Bin Cheng  <bin.cheng@arm.com>
1873
1874         Backport r187139 from mainline.
1875         2012-05-04  Bin Cheng  <bin.cheng@arm.com>
1876
1877         PR rtl-optimization/52804
1878         * reload1.c (reload_reg_reaches_end_p): Check whether successor
1879         reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
1880         of current one with type RELOAD_FOR_INPADDR_ADDRESS.
1881         Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
1882         RELOAD_FOR_OUTADDR_ADDRESS.
1883
1884 2012-05-14  Uros Bizjak  <ubizjak@gmail.com>
1885
1886         PR target/46098
1887         * config/i386/i386.c (ix86_expand_special_args_builtin): Always
1888         generate target register for "load" class builtins.
1889
1890         Revert:
1891         2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
1892
1893         PR target/46098
1894         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
1895         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
1896         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
1897         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
1898         (<sse>_movu<ssemodesuffix>): New expander.
1899         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
1900         (avx_movdqu<avxmodesuffix>): New expander.
1901         (*sse2_movdqu): Rename from sse2_movdqu.
1902         (sse2_movdqu): New expander.
1903
1904 2012-05-14  Jakub Jelinek  <jakub@redhat.com>
1905
1906         * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
1907         lineno 1 the same as lineno 0 before first start file directive.
1908         (optimize_macinfo_range): Likewise.
1909
1910         * dwarf2out.c (have_macinfo): Define.
1911         (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
1912         attribute, don't force empty compilation unit and don't emit any
1913         .debug_macinfo/.debug_macro section if macinfo_table is empty.
1914
1915 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
1916
1917         Backport from mainline
1918         2012-05-12  Uros Bizjak  <ubizjak@gmail.com>
1919
1920         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
1921         ORDERED and UNORDERED conditions.
1922
1923 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
1924
1925         * function.c (requires_stack_frame_p): If the function can throw
1926         non-call exceptions, return true if the insn can throw internally.
1927
1928 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
1929
1930         * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
1931         DECL_ORIGINAL_TYPE if it is present.
1932
1933 2012-05-09  Georg-Johann Lay  <avr@gjlay.de>
1934
1935         Backport from 2012-05-12 mainline r187342.
1936
1937         PR target/53256
1938         * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
1939         * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
1940         * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
1941         * config/avr/avr.c (avr_asm_declare_function_name): Remove.
1942         (expand_prologue): Move initialization of cfun->machine->is_naked,
1943         is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
1944         (avr_set_current_function): ...this new static function.
1945         (TARGET_SET_CURRENT_FUNCTION): New define.
1946         (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
1947         checking attributes of current_function_decl.
1948         (avr_regs_to_save): Ditto.
1949         (signal_function_p): Rename to avr_signal_function_p.
1950         (interrupt_function_p): Rename to avr_interrupt_function_p.
1951
1952         * doc/extend.texi (Function Attributes): Better explanation of
1953         'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
1954         alphabetical order.
1955
1956 2012-05-09  Matthias Klose  <doko@ubuntu.com>
1957
1958         * gcc-ar.c (main): Don't check for execute bits for the plugin.
1959
1960 2012-05-08  Hans-Peter Nilsson  <hp@axis.com>
1961
1962         PR target/53272
1963         * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
1964         when a constant source operand matches an "I" constraint, the "no
1965         CC0 change" applies to a register-destination only, not a
1966         strict_low_part-destination.
1967
1968 2012-05-07  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1969
1970         Backport from mainline:
1971         2012-04-19  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1972
1973         * config/arm/sync.md (sync_optab): Change ior attribute to "or".
1974
1975 2012-05-07  Jakub Jelinek  <jakub@redhat.com>
1976
1977         PR tree-optimization/53239
1978         * tree-vrp.c (get_value_range): Set VR of
1979         SSA_NAME_IS_DEFAULT_DEF of DECL_BY_REFERENCE RESULT_DECL
1980         to nonnull.
1981
1982 2012-05-07  Richard Guenther  <rguenther@suse.de>
1983
1984         PR tree-optimization/53195
1985         * tree-inline.c (setup_one_parameter): Properly add referenced
1986         vars from the parameters new known value.
1987
1988 2012-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1989
1990         Backport from mainline:
1991         2012-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1992
1993         PR target/52999
1994         * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
1995         in constant pool.
1996
1997 2012-05-04  Ian Lance Taylor  <iant@google.com>
1998
1999         * tree-vect-patterns.c (vect_single_imm_use): Correct return
2000         values from false to NULL.
2001
2002 2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
2003
2004         Backport from mainline
2005         2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
2006
2007         PR target/53228
2008         * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
2009         (TARGET_CMOV): Rename from TARGET_CMOVE.
2010         (TARGET_CMOVE): New define.
2011         * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
2012         Do not set TARGET_CMOVE here.
2013
2014 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
2015
2016         Backport from mainline:
2017
2018         2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
2019
2020         PR tree-optimization/52633
2021         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
2022         vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
2023         (vect_recog_over_widening_pattern): Remove handling of code that was
2024         already detected as over-widening pattern.  Remove special handling
2025         of "unsigned" cases.  Instead, support general case of conversion
2026         of the shift result to another type.
2027
2028         2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
2029
2030         * tree-vect-patterns.c (vect_single_imm_use): New function.
2031         (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
2032         (vect_recog_over_widening_pattern): Likewise.
2033         (vect_recog_widen_shift_pattern): Likewise.
2034
2035         2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
2036
2037         PR tree-optimization/52870
2038         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
2039         presumed pattern statement is within the same loop or basic block.
2040
2041 2012-05-04  Richard Guenther  <rguenther@suse.de>
2042
2043         * common.opt (flto-report): Do not mark as Optimization.
2044
2045 2012-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2046
2047         PR target/48496
2048         * recog.c (constrain_operands): If extra constraints are present, also
2049         accept pseudo-registers with equivalent memory locations during reload.
2050
2051 2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2052
2053         Backport from the mainline
2054         2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2055
2056         PR target/53199
2057         * config/rs6000/rs6000.md (bswapdi splitters): If
2058         -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
2059         default) is used, generate an alternate sequence that does not
2060         depend on using indexed addressing.
2061
2062 2012-05-03  David S. Miller  <davem@davemloft.net>
2063
2064         PR target/52684
2065         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
2066         MEM directly into a libcall, mark it's MEM_EXPR as addressable.
2067         (sparc_emit_float_lib_cmp): Likewise.
2068
2069 2012-05-04  Martin Jambor  <mjambor@suse.cz>
2070
2071         Backport from mainline
2072         2012-05-02  Martin Jambor  <mjambor@suse.cz>
2073
2074         PR lto/52605
2075         * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
2076         of a variable when the contect is a function.
2077
2078 2012-05-03  Jakub Jelinek  <jakub@redhat.com>
2079
2080         PR plugins/53126
2081         * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
2082         append program name to it and pass that as first argument
2083         to make_relative_prefix.  Always pass standard_libexec_prefix
2084         as last argument to make_relative_prefix.  If
2085         make_relative_prefix returns NULL, fall back to
2086         standard_libexec_prefix.
2087
2088         PR debug/53174
2089         * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
2090         removed.
2091
2092         PR target/53187
2093         * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
2094         mode, return that mode.
2095
2096 2012-05-03  Richard Guenther  <rguenther@suse.de>
2097
2098         PR tree-optimization/53144
2099         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
2100         Rename to ...
2101         (vn_reference_lookup_or_insert_for_pieces): ... this.  Properly deal
2102         with SSA name values.
2103         (vn_reference_lookup_3): Adjust callers.
2104
2105 2012-05-02  Jakub Jelinek  <jakub@redhat.com>
2106
2107         PR tree-optimization/53163
2108         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
2109         return value from compute_all_dependences.
2110
2111         PR rtl-optimization/53160
2112         * ree.c (combine_reaching_defs): Handle the case where cand->insn
2113         has been modified by ree pass already.
2114
2115 2012-05-01  Uros Bizjak  <ubizjak@gmail.com>
2116
2117         Backport from mainline
2118         2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
2119
2120         PR middle-end/53136
2121         * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
2122         calls to cgraph_node_name in xstrdup.
2123         (ipa_make_edge_direct_to_target): Ditto.
2124         * tree-sra.c (convert_callers_for_node): Ditto.
2125         * lto-symtab.c (lto_cgraph_replace_node): Ditto.
2126         * ipa-cp.c (perhaps_add_new_callers): Ditto.
2127         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
2128         (cgraph_materialize_all_clones): Ditto.
2129         * ipa-inline.c (report_inline_failed_reason): Ditto.
2130         (want_early_inline_function_p): Ditto.
2131         (edge_badness): Ditto.
2132         (update_edge_key): Ditto.
2133         (flatten_function): Ditto.
2134         (ipa_inline): Ditto.
2135         (inline_always_inline_functions): Ditto.
2136         (early_inline_small_functions): Ditto.
2137
2138 2012-04-30  Andreas Tobler  <andreast@fgznet.ch>
2139
2140         Backport from mainline
2141         2012-03-21  Andreas Tobler  <andreast@fgznet.ch>
2142
2143         * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
2144         Introduce emul_name to select the right linker emulation for
2145         powerpc64-*-freebsd*.
2146         * configure: Regenerate.
2147         * config.gcc: Add bits to support powerpc64-*-freebsd*.
2148         * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
2149         * config/rs6000/freebsd64.h: New file.
2150         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
2151         POWERPC_FREEBSD.
2152         (rs6000_savres_strategy): Likewise.
2153         (rs6000_savres_routine_name): Likewise.
2154         (rs6000_elf_file_end): Likewise.
2155         * config/rs6000/t-freebsd64: New file.
2156         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
2157         rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
2158
2159 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
2160
2161         Backport from mainline
2162         2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
2163
2164         PR target/53138
2165         * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
2166
2167 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2168
2169         * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
2170         predicate to discriminate types.
2171
2172 2012-04-27  Richard Guenther  <rguenther@suse.de>
2173
2174         PR c/51527
2175         * convert.c (convert_to_integer): Avoid infinite recursion for
2176         target-defined built-in types.
2177
2178 2012-04-26  Hans-Peter Nilsson  <hp@axis.com>
2179
2180         PR target/53120
2181         * config/cris/cris.md ("*andhi_lowpart_v32")
2182         ("*andqi_lowpart_v32"): Change first input-only operand from
2183         a (match_operand ...) to (match_dup 0).  Drop alternatives with
2184         const_int-matching constraints for redundancy.
2185         ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto.  Drop
2186         three-operand alternative.
2187
2188 2012-04-26  Uros Bizjak  <ubizjak@gmail.com>
2189
2190         Backport from mainline
2191         2012-04-23  Uros Bizjak  <ubizjak@gmail.com>
2192
2193         * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
2194         (*addsi_2_zext): Ditto.
2195         (*add<mode>_3): Ditto.
2196         (*addsi_3_zext): Ditto.
2197         (*add<mode>_5): Ditto.
2198
2199 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
2200
2201         PR c/52880
2202         * c-typeck.c (set_nonincremental_init,
2203         set_nonincremental_init_from_string): Pass true instead of false
2204         as IMPLICIT to add_pending_init.
2205
2206 2012-04-24  Georg-Johann Lay  <avr@gjlay.de>
2207
2208         Backport from 2012-04-24 mainline r186768.
2209
2210         PR target/53065
2211         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
2212
2213 2012-04-24  Richard Guenther  <rguenther@suse.de>
2214
2215         PR tree-optimization/53085
2216         * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
2217         stores.
2218
2219 2012-04-24  Jakub Jelinek  <jakub@redhat.com>
2220
2221         PR middle-end/53084
2222         * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR
2223         of MEM_REF.
2224         (output_addressed_constants): Likewise.
2225
2226         PR middle-end/52999
2227         * varasm.c (get_section): Don't ICE for section conflicts with
2228         built-in section kinds.
2229
2230 2012-04-23  David Edelsohn  <dje.gcc@gmail.com>
2231
2232         * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
2233
2234 2012-04-23  Georg-Johann Lay  <avr@gjlay.de>
2235
2236         * doc/extend.texi (AVR Named Address Spaces): Fix typos.
2237
2238 2012-04-23  Richard Guenther  <rguenther@suse.de>
2239
2240         PR c/53060
2241         * c-typeck.c (build_binary_op): Fix typo.
2242
2243 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
2244
2245         PR tree-optimizations/52891
2246         * tree-vect-patterns.c (adjust_bool_pattern): Use
2247         build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
2248         but with non-standard precision.
2249
2250 2012-04-22  Ian Lance Taylor  <iant@google.com>
2251
2252         * godump.c (go_output_typedef): Dump size of structs.
2253
2254 2012-04-20  Ulrich Weigand  <ulrich.weigand@linaro.org>
2255
2256         Backport from mainline:
2257
2258         * config/arm/arm.c (arm_print_operand): Fix invalid alignment
2259         hints for 'A' operand types.
2260
2261 2012-04-19  Georg-Johann Lay  <avr@gjlay.de>
2262
2263         Backport from 2012-04-19 mainline r186588.
2264
2265         PR target/53033
2266         * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
2267         the case *(X+const).
2268
2269 2012-04-18  Uros Bizjak  <ubizjak@gmail.com>
2270
2271         * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
2272
2273 2012-04-17  Uros Bizjak  <ubizjak@gmail.com>
2274
2275         PR target/53020
2276         * config/i386/sync.md (atomic_<code><mode>): Rename to
2277         atomic_<logic><mode>.
2278
2279 2012-04-16  Uros Bizjak  <ubizjak@gmail.com>
2280
2281         Backport from mainline
2282         2012-04-12  Uros Bizjak  <ubizjak@gmail.com>
2283
2284         PR target/52932
2285         * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
2286         argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
2287         * config/i386/sse.md (avx2_permvarv8sf): Change operand 1 to V8SI.
2288         (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
2289         * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
2290         Update builtin type to V8SF_FTYPE_V8SF_V8SI.
2291         (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
2292         gen_avx2_permvarv8sf.
2293
2294 2012-04-16  Martin Jambor  <mjambor@suse.cz>
2295
2296         Backported from mainline
2297
2298         2012-04-13  Martin Jambor  <mjambor@suse.cz>
2299         PR middle-end/52939
2300
2301         * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
2302         fold_ctor_reference returns a zero constant.
2303
2304 2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
2305
2306         Backported from mainline
2307         2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
2308
2309         * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
2310         and __ILP32__ for x32.
2311
2312 2012-04-13  Tom de Vries  <tom@codesourcery.com>
2313
2314         Backport from mainline r186418.
2315
2316         2012-04-13  Tom de Vries  <tom@codesourcery.com>
2317
2318         * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
2319         parameters vuse and vuse_escaped.
2320         (find_duplicate): Init vuse1, vuse2 and vuse_escaped.  Pass to
2321         gsi_advance_bw_nondebug_nonlocal.  Return if vuse_escaped and
2322         vuse1 != vuse2.
2323
2324 2012-04-13  Richard Guenther  <rguenther@suse.de>
2325
2326         PR tree-optimization/52969
2327         * tree-if-conv.c (predicate_mem_writes): Properly gimplify
2328         the condition for the COND_EXPR and handle predicate negation
2329         by swapping the COND_EXPR arms.
2330
2331 2012-04-13  Richard Guenther  <rguenther@suse.de>
2332
2333         PR c/52862
2334         * convert.c (convert_to_pointer): Remove special-casing of
2335         zero.
2336
2337 2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2338
2339         Backport from mainline
2340         2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2341
2342         PR target/52775
2343         * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
2344         the list of options to enable the FCFID instruction.
2345         (TARGET_EXTRA_BUILTINS): Adjust comment.
2346
2347 2012-04-12  Richard Guenther  <rguenther@suse.de>
2348
2349         PR tree-optimization/52943
2350         * tree-chrec.h (chrec_is_positive): Remove.
2351         * tree-scalar-evolution.c (chrec_is_positive): Move ...
2352         * tree-data-ref.c (chrec_is_positive): ... here.  Make static.
2353         Return false for a constant zero instead of negative.
2354         (analyze_siv_subscript_cst_affine): Handle zero difference
2355         in the initial condition explicitely.
2356
2357 2012-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2358
2359         PR middle-end/52894
2360         * varasm.c (process_pending_assemble_externals): Set
2361         pending_assemble_externals_processed true.
2362         (assemble_external): Call assemble_external_real if the pending
2363         assemble externals have been processed.
2364
2365 2012-04-09  Eric Botcazou  <ebotcazou@adacore.com>
2366
2367         PR target/52717
2368         * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
2369         the DECL generated for the special GOT helper.
2370
2371 2012-04-06  Walter Lee  <walt@tilera.com>
2372
2373         Backport from mainline
2374         2012-03-07  Walter Lee  <walt@tilera.com>
2375
2376         * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
2377         REG_CFA_* notes for the stack pointer.
2378         (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
2379         EH_RETURN_STACKADJ_RTX.
2380         * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
2381         generate REG_CFA_* notes for the stack pointer.
2382         (tilepro_expand_epilogue): Restore stack pointer by adjusting it
2383         by EH_RETURN_STACKADJ_RTX.
2384
2385 2012-04-06  Matt Turner  <mattst88@gmail.com>
2386
2387         * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
2388
2389 2012-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2390
2391         * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
2392         of the destination isn't also a FP_REGS register.
2393
2394 2012-04-03  Richard Guenther  <rguenther@suse.de>
2395
2396         Backport from mainline
2397         2012-03-02  Richard Guenther  <rguenther@suse.de>
2398
2399         PR tree-optimization/52406
2400         * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
2401         (struct indices): Add unconstrained_base member.
2402         (struct dr_alias): Remove unused vops member.
2403         (DR_UNCONSTRAINED_BASE): New define.
2404         * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
2405         add indices to allow their disambiguation.  Make DR_BASE_OBJECT
2406         be an artificial access that covers the whole indexed object,
2407         or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
2408         plain decl base-objects to their MEM_REF variant.
2409         (dr_may_alias_p): When the base-object of either data reference
2410         has unknown size use only points-to information.
2411         (compute_affine_dependence): Make dumps easier to read and
2412         more verbose.
2413         * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
2414         DR_REF when looking for packed references.
2415         (vect_supportable_dr_alignment): Likewise.
2416
2417 2012-04-03  Richard Guenther  <rguenther@suse.de>
2418
2419         Backport from mainline
2420         2012-03-15  Richard Guenther  <rguenther@suse.de>
2421
2422         PR middle-end/52580
2423         * tree-data-ref.c (subscript_dependence_tester_1): Check
2424         all dimensions for non-conflicting access functions.
2425
2426 2012-04-03  Richard Guenther  <rguenther@suse.de>
2427
2428         Backport from mainline
2429         2012-03-06  Richard Guenther  <rguenther@suse.de>
2430
2431         PR middle-end/52493
2432         * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
2433
2434         2012-03-23  Richard Guenther  <rguenther@suse.de>
2435
2436         PR tree-optimization/52678
2437         * tree-vectorizer.h (struct _stmt_vec_info): Add
2438         loop_phi_evolution_part member.
2439         (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
2440         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
2441         STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
2442         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
2443         Use the cached evolution part and the PHI nodes value from
2444         the loop preheader edge instead of re-analyzing the evolution.
2445
2446         2012-03-26  Richard Guenther  <rguenther@suse.de>
2447
2448         PR tree-optimization/52701
2449         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
2450         compute and set the evolution part of PHI nodes.
2451
2452         2012-03-30  Richard Guenther  <rguenther@suse.de>
2453
2454         PR tree-optimization/52754
2455         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
2456         propagate arbitrary addresses into really plain dereferences.
2457
2458 2012-04-03  Jakub Jelinek  <jakub@redhat.com>
2459
2460         PR tree-optimization/52835
2461         * tree-data-ref.c (build_rdg): Return NULL if
2462         compute_data_dependences_for_loop failed.
2463
2464 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2465
2466         * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
2467         (stmt_can_make_abnormal_goto): Use it.
2468         (is_ctrl_altering_stmt): Likewise.
2469
2470 2012-03-31  Martin Jambor  <mjambor@suse.cz>
2471
2472         Backported from mainline
2473         2012-03-30  Martin Jambor  <mjambor@suse.cz>
2474
2475         * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
2476         is a builtin_stack_save in a dominating BB.
2477
2478 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
2479
2480         * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
2481         crossing 128bit lane boundary.
2482
2483 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
2484
2485         Backported from mainline
2486         2012-03-27  Uros Bizjak  <ubizjak@gmail.com>
2487
2488         PR target/52698
2489         * config/i386/i386-protos.h (ix86_legitimize_reload_address):
2490         New prototype.
2491         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
2492         * config/i386/i386.c: Include reload.h.
2493         (ix86_legitimize_reload_address): New function.
2494
2495 2012-03-28  Martin Jambor  <mjambor@suse.cz>
2496
2497         Backported from mainline
2498         2012-03-27  Martin Jambor  <mjambor@suse.cz>
2499
2500         PR middle-end/52693
2501         * tree-sra.c (sra_modify_assign): Do not call
2502         load_assign_lhs_subreplacements when working with an unscalarizable
2503         region.
2504
2505 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
2506
2507         PR middle-end/52691
2508         * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
2509         __builtin_va_start to __builtin_next_arg if the latter is
2510         builtin_decl_explicit_p rather than when it is not.
2511
2512         PR middle-end/52750
2513         * tree-vect-generic.c (vector_element): Perform multiplication
2514         for pos in bitsizetype type instead of idx type.
2515
2516 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
2517
2518         Backport from 2012-03-28 mainline r185910.
2519
2520         PR target/52692
2521         * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
2522         (avr_builtin_decl): New static function.
2523         (struct avr_builtin_description, avr_bdesc): Move up.
2524         Add GTY marker. Add field fndecl. Remove redundant field id.
2525         (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
2526         (avr_expand_builtin): Code cleanup because .id is removed.
2527
2528 2012-03-28  Aurelien Buhrig  <aurelien.buhrig.gcc@gmail.com>
2529
2530         PR middle-end/51893
2531         * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
2532         targets.
2533
2534 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
2535
2536         Backport from 2012-03-28 mainline r185907.
2537
2538         PR target/52737
2539         * config.gcc (tm_file): Remove avr/multilib.h.
2540
2541         * doc/invoke.texi (AVR Options): Adjust
2542         documentation of -mtiny-stack.
2543
2544         * config/avr/genmultilib.awk: Remove code to generate multilib.h.
2545         (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
2546         * config/avr/t-avr: Remove generation of multilib.h.
2547         * config/avr/t-multilib: Regenerate.
2548         * config/avr/multilib.h: Remove.
2549         * config/avr/avr.opt (-msp8): New option.
2550         (avr_sp8): New variable.
2551         * config/avr/driver-avr.c (avr_device_to_sp8): New function.
2552         * config/avr/avr.h (AVR_HAVE_SPH): New define.
2553         (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
2554         (avr_device_to_sp8): New prototype.
2555         (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
2556         (DRIVER_SELF_SPECS): New define.
2557         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
2558         __AVR_SP8__, __AVR_HAVE_SPH__.
2559         * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
2560         AVR_HAVE_8BIT_SP to decide if SP_H is present.
2561         (avr_file_start): Ditto.
2562
2563 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
2564
2565         PR target/52736
2566         * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
2567         instead of 8 in adjust_address.
2568
2569 2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
2570
2571         * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
2572         of a unit before computing the offset in units.
2573
2574 2012-03-27  Richard Guenther  <rguenther@suse.de>
2575
2576         PR middle-end/52720
2577         * fold-const.c (try_move_mult_to_index): Handle &x.array more
2578         explicitely.
2579
2580 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2581
2582         PR target/52610
2583         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
2584
2585 2012-03-24  Steven Bosscher  <steven@gcc.gnu.org>
2586
2587         PR middle-end/52640
2588         * varasm.c: Include pointer-set.h.
2589         (pending_assemble_externals_set): New pointer set.
2590         (process_pending_assemble_externals): Destroy the pointer set.
2591         (assemble_external): See if decl is in pending_assemble_externals_set,
2592         and add it to pending_assemble_externals if necessary.
2593         (init_varasm_once): Allocate pending_assemble_externals_set.
2594
2595 2012-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2596
2597         Backported from mainline
2598         2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
2599
2600         PR target/50310
2601         * config/rs6000/vector.md (vector_uneq<mode>): Add support for
2602         UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
2603         (vector_ltgt<mode>): Likewise.
2604         (vector_ordered<mode>): Likewise.
2605         (vector_unordered<mode>): Likewise.
2606         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
2607
2608 2012-03-23  Joern Rennecke  <joern.rennecke@embecosm.com>
2609
2610         * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
2611         Make static.
2612
2613 2012-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2614
2615         Backported from mainline
2616         2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2617
2618         PR target/48596
2619         PR target/48806
2620         * config/sh/sh.c (sh_register_move_cost): Increase cost between
2621         GENERAL_REGS and FP_REGS for SImode.
2622
2623 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
2624
2625         PR middle-end/52547
2626         * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
2627         on any new_local_var_chain vars declared during recursing on
2628         GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
2629
2630 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
2631
2632         Backport from 2012-03-22 mainline r185692.
2633
2634         PR target/52496
2635         * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
2636         (unspecv): Add UNSPECV_MEMORY_BARRIER.
2637         (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
2638         (delay_cycles_1, delay_cycles_2): Ditto.
2639         (delay_cycles_3, delay_cycles_4): Ditto.
2640         (nopv, *nopv): Ditto.
2641         (sleep, *sleep): Ditto.
2642         (wdr, *wdr): Ditto.
2643
2644         Backport from 2012-03-21 mainline r185605.
2645
2646         PR rtl-optimization/52543
2647         PR target/52461
2648         * config/avr/avr-protos.h (avr_load_lpm): New prototype.
2649         * config/avr/avr.c (avr_mode_dependent_address_p): New function.
2650         (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
2651         (avr_load_libgcc_p): Restrict to __flash loads.
2652         (avr_out_lpm): Only handle 1-byte loads from __flash.
2653         (avr_load_lpm): New function.
2654         (avr_find_unused_d_reg): Remove.
2655         (avr_out_lpm_no_lpmx): Remove.
2656         (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
2657         * config/avr/avr.md (unspec): Add UNSPEC_LPM.
2658         (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
2659         (load_<mode>, load_<mode>_clobber): New insns.
2660         (mov<mode>): For multi-byte move from non-generic
2661         16-bit address spaces: Expand to load_<mode> resp.
2662         load_<mode>_clobber.
2663         (load<mode>_libgcc): Remove expander.
2664         (split-lpmx): Remove split.
2665
2666         Backport from 2012-03-13 mainline r185329.
2667
2668         PR target/52488
2669         * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
2670         offset (size) to a value the insns can deal with.
2671         (expand_epilogue): Ditto.
2672
2673         Backport from 2012-03-12 mainline r185256.
2674
2675         PR target/52499
2676         * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
2677         type from reg_class_t to enum reg_class.
2678         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
2679
2680         Backport from 2012-03-12 mainline r185253.
2681
2682         PR target/52148
2683         * config/avr/avr.c (avr_out_movmem): Fix typo in output template
2684         for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
2685         r184615 from 2012-02-28.
2686
2687         Backport from 2012-03-08 mainline r185105.
2688
2689         * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
2690         for constants in [-63,63].
2691
2692         Backport from 2012-03-08 mainline r185100.
2693
2694         PR target/52496
2695         * config/avr/avr.c (avr_mem_clobber): New static function.
2696         (avr_expand_delay_cycles): Add memory clobber operand to
2697         delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
2698         * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
2699         (enable_interrupt, disable_interrupt): New expander.
2700         (nopv, sleep, wdr): New expanders.
2701         (delay_cycles_1): Add memory clobber.
2702         (delay_cycles_2): Add memory clobber.
2703         (delay_cycles_3): Add memory clobber.
2704         (delay_cycles_4): Add memory clobber.
2705         (cli_sei): New insn from former "enable_interrupt",
2706         "disable_interrupt" with memory clobber.
2707         (*wdt): New insn from former "wdt" with memory clobber.
2708         (*nopv): Similar, but for "nopv".
2709         (*sleep): Similar, but for "sleep".
2710
2711         Backport from 2012-03-07 mainline r185043.
2712
2713         PR target/52484
2714         * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
2715
2716         Backport from 2012-03-07 mainline r185032.
2717
2718         PR target/52506
2719         * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
2720         to: RAMPZ, RAMPY, RAMPX, RAMPD.
2721         (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
2722
2723         Backport from 2012-03-07 mainline r185031.
2724
2725         PR target/52505
2726         * config/avr/avr.c (avr_out_xload): Don't read unintentionally
2727         from RAM.
2728         * config/avr/avr.md (xload_8): Adjust insn length.
2729
2730         Backport from 2012-03-07 mainline r185030.
2731
2732         PR target/52461
2733         * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
2734         if RAMPZ affects reading from RAM.
2735
2736         Backport from 2012-03-05 mainline r184919.
2737
2738         * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
2739
2740 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
2741
2742         Backport from mainline r185259.
2743
2744         PR other/52545
2745         * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
2746         SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
2747
2748 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
2749
2750         Backported from mainline
2751         2012-03-13  Jakub Jelinek  <jakub@redhat.com>
2752
2753         PR c/52577
2754         * c-parser.c (c_parser_postfix_expression)
2755         <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
2756
2757         * config/i386/smmintrin.h: Avoid /* within a comment.
2758         * config/i386/nmmintrin.h: Likewise.
2759
2760 2012-03-22  Richard Guenther  <rguenther@suse.de>
2761
2762         * BASE-VER: Set to 4.7.1.
2763         * DEV-PHASE: Set to prerelease.
2764
2765 2012-03-22  Release Manager
2766
2767         * GCC 4.7.0 released.
2768
2769 2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2770
2771         * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
2772
2773 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
2774             Andrew Pinski  <apinski@cavium.com>
2775
2776         PR middle-end/52592
2777         * builtins.c (expand_builtin_int_roundingfn_2): If expanding
2778         BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
2779         calls instead of __builtin_ir{int,ound}*.
2780
2781 2012-03-14  Jakub Jelinek  <jakub@redhat.com>
2782
2783         PR c++/52582
2784         * config/rs6000/rs6000.c (call_ABI_of_interest): Return true
2785         if c_node is NULL.
2786
2787 2012-03-13  Joseph Myers  <joseph@codesourcery.com>
2788
2789         * doc/invoke.texi (-std=c99), doc/standards.texi (C language):
2790         Refer to GCC 4.7 version of c99status.html.
2791
2792 2012-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2793
2794         Backport from mainline
2795         2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2796
2797         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
2798         redefine to be NULL if the current bit-size is different from the
2799         configured bit-size.
2800
2801         * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
2802         cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
2803         set the default tuning.  Add asserts to make sure the cpu and tune
2804         indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
2805         test whether the index is set, instead of > 0.
2806         (rs6000_file_start): Do not reset the default cpu if the current
2807         bit-size is different from the configured bit-size.
2808
2809 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2810
2811         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
2812         binutils reference.
2813         (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
2814         Update binutils references.
2815         (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
2816         Update binutils reference.
2817         Update Sun as/GNU ld caveat.
2818         Document binutils largefile requirement for LTO plugin.
2819         Remove reference to alternate libpthread.
2820
2821 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2822
2823         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update binutils
2824         reference.
2825         (Specific, mips-sgi-irix6): Likewise.
2826
2827 2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2828
2829         * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
2830         * configure: Regenerate.
2831
2832 2012-03-07  Richard Henderson  <rth@redhat.com>
2833
2834         * config/m68k/m68k.h (ISA_HAS_TAS): New.
2835         * config/m68k/sync.md (atomic_test_and_set): Use it.
2836         (atomic_test_and_set_1): Likewise.
2837
2838 2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
2839
2840         PR target/51417
2841         * Makefile.in: Let install-gcc-ar depend on installdirs,
2842         gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
2843         Don't double canonicalize if cross-compiling.
2844
2845 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
2846
2847         * trans-mem.c: New typedef for tm_region_p.
2848         Define vector types for tm_region_p.
2849         (tm_region_init): Replace region_worklist to a vector called
2850         bb_regions.
2851
2852 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
2853
2854         PR middle-end/52463
2855         * trans-mem.c (tm_region_init): Use last_basic_block.
2856
2857 2012-03-05  Richard Henderson  <rth@redhat.com>
2858
2859         PR tree-opt/52242
2860         Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
2861         * omp-low.c (expand_omp_atomic): Assume anything aligned to
2862         BIGGEST_ALIGNMENT is aligned.
2863
2864 2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>
2865
2866         * config/sh/sh.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
2867
2868 2012-03-05  Richard Henderson  <rth@redhat.com>
2869
2870         PR target/52481
2871         * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
2872         instead of calling negqi2 directly.
2873
2874 2012-03-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2875
2876         * config/mips/iris6.h [!USED_FOR_TARGET] (long_intmax): Declare.
2877         (INTMAX_TYPE): Use it.
2878         (UINTMAX_TYPE): Likewise.
2879         (SUBTARGET_OVERRIDE_OPTIONS): Define.
2880         (irix6_c_common_override_options): Declare.
2881         (C_COMMON_OVERRIDE_OPTIONS): Define.
2882         * config/mips/mips.c [TARGET_IRIX6] (long_intmax): Define.
2883         * config/mips/irix6-c.c: New file.
2884         * config/mips/t-irix6 (irix6-c.o): New target.
2885         * config.gcc (mips-sgi-irix6.5): Set c_target_objs,
2886         cxx_target_objs.
2887
2888 2012-03-02  Richard Henderson  <rth@redhat.com>
2889
2890         * optabs.c (expand_atomic_test_and_set): Honor
2891         atomic_test_and_set_trueval even when atomic_test_and_set
2892         optab is not in use.
2893
2894 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
2895
2896         Backport from mainline
2897         2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
2898
2899         * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
2900
2901 2012-03-02  Richard Guenther  <rguenther@suse.de>
2902
2903         * DEV-PHASE: Set to prerelease.
2904
2905 2012-03-01  Richard Earnshaw  <rearnsha@arm.com>
2906
2907         * config.gcc (obsolete): Add all ARM targets using the FPA.
2908         (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
2909         * doc/install.texi: Avoid references to obsolete ARM ports.
2910
2911 2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>
2912
2913         * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
2914
2915 2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
2916             Joern Rennecke  <joern.rennecke@embecosm.com>
2917
2918         * doc/extend.texi: Expand and update information on interrupt
2919         attribute for Epiphany.
2920
2921 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
2922
2923         * config/sh/sh-protos.h: Update copyright notice dates.
2924         * config/sh/sh.h: Likewise.
2925         * config/sh/sh.md: Likewise.
2926         * config/sh/constraints.md: Likewise.
2927         * config/sh/predicates.md: Likewise.
2928
2929 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
2930
2931         * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
2932         * config/sh/sh.c (tertiary_reload_operand): Likewise.
2933
2934 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
2935
2936         * config/sh/constraints.md: Fix comment typo.
2937
2938 2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2939
2940         PR target/52408
2941         * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
2942         unsigned HOST_WIDE_INT.
2943         (zvdep_imm64): Likewise.
2944         (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
2945         (vdepi_and): Likewise.
2946         Likewise for unamed 64-bit patterns.
2947         * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
2948
2949 2012-03-01  Alexandre Oliva  <aoliva@redhat.com>
2950
2951         PR debug/52001
2952         PR rtl-optimization/52417
2953         * cselib.c (cselib_any_perm_equivs): New variable.
2954         (cselib_reset_table): Check that it's not set when not
2955         preserving constants.
2956         (cselib_add_permanent_equiv): Set it.
2957         (cselib_have_permanent_equivalences): New.
2958         (cselib_init, cselib_finish): Reset it.
2959         * cselib.h (cselib_have_permanent_equivalences): Declare.
2960         * alias.c (get_addr): Restore earlier behavior when there
2961         aren't permanent equivalences.
2962
2963 2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>
2964
2965         * config/mn10300/mn10300-modes.def: Fix copyright notice.
2966         * config/v850/v850-modes.def: Fix copyright notice.
2967
2968 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
2969
2970         * doc/extend.texi (AVR Built-in Functions): Document
2971         __builtin_avr_flash_segment.
2972
2973         * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
2974         * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
2975         (*split.flash_segment): New insn-and-split.
2976         * config/avr/avr.c (avr_init_builtins): Add local variables:
2977         const_memx_void_node, const_memx_ptr_type_node,
2978         char_ftype_const_memx_ptr.
2979
2980 2012-03-01  Jakub Jelinek  <jakub@redhat.com>
2981
2982         PR tree-optimization/52445
2983         * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
2984         add ssa_name_ver, offset and size fields and change store field
2985         to bool.
2986         (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
2987         (add_or_mark_expr): Likewise.  Only consider previous stores
2988         with the same size and offset.
2989         (nt_init_block): Only look at gimple_assign_single_p stmts,
2990         doesn't look at rhs2.
2991
2992 2012-03-01  Richard Guenther  <rguenther@suse.de>
2993
2994         PR middle-end/52443
2995         * tree-cfg.c (verify_gimple_assign_unary): Allow any
2996         conversions from integral types to pointer types.
2997
2998 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
2999
3000         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
3001         defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
3002         unintentionally removed in r184616.
3003
3004 2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3005
3006         * doc/invoke.texi: Document AMD bdver2 and remove mentioning
3007         3DNow from bdver1.
3008
3009 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
3010             Uros Bizjak  <ubizjak@gmail.com>
3011
3012         PR target/52437
3013         * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
3014         alternatives, add "e" constraint to the new last alternative
3015         and ! to last 3 alternatives.
3016
3017 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
3018
3019         * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
3020         DW_AT_artificial attributes at the end of the processing.
3021         (gen_array_type_die): Likewise.
3022         (gen_enumeration_type_die): Likewise.
3023         (gen_struct_or_union_type_die): Likewise.
3024         (add_gnat_descriptive_type_attribute): Do not suppress debug info for
3025         the parent type.
3026
3027 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
3028
3029         PR middle-end/52419
3030         * expr.c (expand_assignment): If doing misaligned store that doesn't
3031         cover all mode bits, perform a RMW cycle.
3032
3033         PR tree-optimization/52429
3034         * tree-parloops.c (separate_decls_in_region_debug): Return early
3035         if var is LABEL_DECL.
3036
3037 2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3038
3039         PR tree-optimization/52424
3040         * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
3041         calling dom_thread_across_edge.
3042
3043 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
3044
3045         * config/avr/avr.c: Move definition of TARGET macros to end of file.
3046
3047 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
3048
3049         * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
3050         * config/avr/avr.c (avr_output_bld): Remove unused function.
3051         (avr_out_sbxx_branch): Use "%T" to print bit position.
3052
3053 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
3054
3055         * config/avr/avr.md: Untabify.
3056
3057 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
3058
3059         * config/avr/avr.md (eqne): New code iterator.
3060         (*dec-and-branchsi): Use it in text peephole's condition.
3061         (*dec-and-branchhi): Ditto.
3062         (*dec-and-branchqi): Ditto.
3063
3064 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
3065
3066         PR target/49939
3067         * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
3068         the device does not have the skip-bug.
3069
3070 2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>
3071
3072         * doc/invoke.texi (-msoft-atomic): Add more detailed description.
3073         (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
3074         -mpretend-cmove): New.
3075
3076 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
3077
3078         PR bootstrap/52397
3079         * df.h (struct df_d): Adjust comment that hard_regs_live_count
3080         doesn't count DEBUG_INSN refs.
3081         * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
3082         for DEBUG_INSN refs.
3083
3084 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3085
3086         Partially revert:
3087
3088         2012-02-20  Richard Guenther  <rguenther@suse.de>
3089         PR tree-optimization/52298
3090         * tree-vect-stmts.c (vectorizable_load): Properly use
3091         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
3092         outer loops.
3093
3094 2012-02-28  Aldy Hernandez  <aldyh@redhat.com>
3095
3096         PR middle-end/51752
3097         * gimple.h (gimple_in_transaction): New.
3098         (gimple_set_in_transaction): New.
3099         (struct gimple_statement_base): Add in_transaction field.
3100         * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
3101         transaction loads.
3102         (tree_ssa_lim_initialize): Compute transaction bits.
3103         * tree.h (compute_transaction_bits): Protoize.
3104         * trans-mem.c (tm_region_init): Use the heap to store BB
3105         auxilliary data.
3106         (compute_transaction_bits): New.
3107
3108 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3109
3110         * gcc.c (display_help): Document --help=common and sort entries
3111         alphabetically.
3112
3113 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3114
3115         * doc/install.texi: Document check-$LANG specific shortcuts
3116
3117 2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3118
3119         PR target/51534
3120         * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
3121         and vcgtu.
3122         * config/arm/arm_neon.h: Regenerate.
3123         * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
3124         (neon_vcgeu): New insn.
3125         (neon_vcgtu): Likewise.
3126         * config/arm/neon.ml (s_8_32, u_8_32): New lists.
3127         (ops): Unsigned comparison intrinsics call a different
3128         builtin.
3129
3130 2012-02-28  Richard Guenther  <rguenther@suse.de>
3131
3132         PR target/52407
3133         * config/i386/i386.c (ix86_expand_vector_set): Fix element
3134         ordering for the VEC_CONCAT for two element vectors for
3135         V2SFmode, V2SImode and V2DImode.
3136
3137 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
3138
3139         PR target/49448
3140         * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
3141         detecting big-endian triplets.
3142
3143 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
3144
3145         * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
3146         mode if there is no type information available.
3147
3148 2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
3149
3150         PR tree-optimization/53207
3151         * doc/invoke.texi: Document as experimental and relying on graphite.
3152
3153 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
3154
3155         * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
3156         of initializer to changes from r184614.
3157
3158 2012-02-28  Richard Guenther  <rguenther@suse.de>
3159
3160         PR tree-optimization/52395
3161         * tree-sra.c (build_ref_for_offset): Also look at the base
3162         TYPE_ALIGN when figuring out the alignment of the replacement.
3163
3164 2012-02-28  Richard Guenther  <rguenther@suse.de>
3165
3166         PR tree-optimization/52402
3167         * ipa-prop.c (ipa_modify_call_arguments): Properly use
3168         mis-aligned types when creating the accesses at the call site.
3169
3170 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
3171
3172         * config/avr/builtins.def: New file.
3173         * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
3174         * config/avr/avr.c (enum avr_builtin_id): Use it.
3175         (avr_init_builtins): Use it. And use avr_bdesc.
3176         (bdesc_1arg): Remove.
3177         (bdesc_2arg): Remove.
3178         (bdesc_3arg): Remove.
3179         (struct avr_builtin_description): Add field n_args.
3180         (avr_bdesc): New static variable using builtins.def.
3181         (avr_expand_builtin): Use it.
3182         Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
3183         (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
3184         Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
3185
3186 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
3187
3188         PR target/52148
3189         * config/avr/avr.md (movmem_<mode>): Replace match_operand that
3190         match only one single hard register with respective hard reg rtx.
3191         (movmemx_<mode>): Ditto.
3192         * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
3193         insn anatomy of movmem[x]_<mode>.
3194         (avr_out_movmem): Same for printing assembler and operand usage.
3195
3196 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
3197
3198         PR target/49868
3199         PR target/52261
3200         * doc/extend.texi (AVR Named Address Spaces): No more try to fix
3201         address spaces located outside of device flash.
3202
3203         * config/avr/avr.h (base_arch_s): Remove field n_segments.
3204         (mcu_type_s): Add field n_flash.
3205         * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
3206         Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
3207         (AVR_MCU): Add N_FLASH argument.
3208         * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
3209         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
3210         macro __FLASH<n> if that address space makes sense for the device.
3211         * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
3212         outside of target flash.
3213         (avr_asm_named_section): Ditto.
3214         (avr_asm_select_section): Ditto.
3215         (avr_addr_space_convert): Ditto.
3216         (avr_emit_movmemhi): Ditto.
3217         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
3218         address space is outside of device flash.
3219         (avr_insert_attributes): Ditto.
3220         (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
3221         avr_current_arch->n_segments.
3222
3223 2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>
3224
3225         PR target/52352
3226         * config/i386/i386.md (*movabs<mode>_1): Enable only for
3227         TARGET_LP64.
3228         (*movabs<mode>_2): Likewise.
3229
3230 2012-02-27  Jakub Jelinek  <jakub@redhat.com>
3231
3232         PR target/52375
3233         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
3234         s_register_operand in the test instead of REG_P.  Don't call
3235         gen_reg_rtx if it won't be used.
3236
3237         PR tree-optimization/52376
3238         * ipa-split.c (split_function): Ignore CLOBBER stmts.
3239
3240 2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>
3241
3242         * ifcvt.c (noce_get_condition): Check condition variable is not
3243         small_register_classes_for_mode_p before accepting.
3244
3245 2012-02-27  Uros Bizjak  <ubizjak@gmail.com>
3246
3247         * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
3248
3249 2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3250
3251         Revert:
3252         2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3253         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
3254         tuning parameters.
3255         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
3256
3257 2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>
3258
3259         * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
3260
3261 2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
3262
3263         * config/sh/predicates.md: Remove blank lines.
3264         * config/sh/sh.c: Fix typos in comments.
3265         * config/sh/constraints.md: Likewise.
3266         * config/sh/sh.md: Remove blank lines.
3267         Fix typos in comments.  Use ;; as comment characters.
3268
3269 2012-02-26  Walter Lee  <walt@tilera.com>
3270
3271         * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
3272         (replace_mov_pcrel_step2): Ditto.
3273
3274 2012-02-25  Alexandre Oliva  <aoliva@redhat.com>
3275
3276         PR debug/52001
3277         * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
3278         (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
3279         and locs that reference values newer than the non-canonical value
3280         at hand.  Return the canonical value as a worst case.
3281         (memrefs_conflict_p): Walk canonical value's locs.
3282
3283         PR debug/52001
3284         * cselib.c (preserve_only_constants): Rename to...
3285         (preserve_constants_and_equivs): ... this.  Split out...
3286         (invariant_or_equiv_p): ... this.  Preserve plus expressions
3287         of other preserved expressions too.
3288         (cselib_reset_table): Adjust.
3289         * var-tracking.c (reverse_op): Use canonical value to build
3290         reverse operation.
3291
3292 2012-02-23  Kai Tietz  <ktietz@redhat.com>
3293
3294         * config/i386/i386.c (ix86_delegitimize_address): Handle
3295         UNSPEC_PCREL plus displacement.
3296
3297 2012-02-24  Georg-Johann Lay  <avr@gjlay.de>
3298
3299         PR target/52261
3300         * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
3301         to test for unusedness in st X addressing.
3302
3303 2012-02-24  Richard Guenther  <rguenther@suse.de>
3304
3305         PR middle-end/52361
3306         * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
3307         (is_gimple_reg_type): Move inline ...
3308         * gimple.h (is_gimple_reg_type): ... here.
3309
3310 2012-02-24  Richard Guenther  <rguenther@suse.de>
3311
3312         PR middle-end/52361
3313         * passes.c (execute_function_todo): When verifying SSA form
3314         verify gimple form first.
3315         * tree-ssa.c (verify_ssa): Do not verify gimple form here.
3316
3317 2012-02-24  Richard Guenther  <rguenther@suse.de>
3318
3319         PR middle-end/52355
3320         * fold-const.c (fold_addr_of_array_ref_difference): New function.
3321         (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
3322
3323 2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3324
3325         * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
3326
3327 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3328
3329         * tree-phinodes.c (make_phi_node): Mark static.
3330         * tree-flow.h (make_phi_node): Remove extern decl.
3331         * doc/gimple.texi (make_phi_node): Remove documentation.
3332
3333 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3334
3335         * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
3336         * tree-ssa-sccvn.c (print_scc): Ditto.
3337
3338 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3339
3340         * doc/passes.texi (Full redundancy elimination): Fix typo.
3341
3342 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3343
3344         * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
3345
3346 2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>
3347
3348         PR bootstrap/52287
3349         * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
3350
3351 2012-02-23  Uros Bizjak  <ubizjak@gmail.com>
3352
3353         PR c/52290
3354         * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
3355
3356 2012-02-23  Georg-Johann Lay  <avr@gjlay.de>
3357
3358         * config/avr/avr.md (code_stdname): Add ior, xor.
3359         (xior): New code iterator.
3360         (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
3361         (*<code_stdname><mode>qi.byte1-3): Ditto.
3362
3363 2012-02-23  Jakub Jelinek  <jakub@redhat.com>
3364
3365         PR tree-optimization/52019
3366         * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
3367         CLOBBER stmts.
3368
3369 2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3370
3371         * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
3372         HAVE_INITFINI_ARRAY to work around namespace pollution in
3373         certain versions of newlib system headers.
3374         * config.in: Regenerate.
3375         * configure: Regenerate.
3376         * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
3377         instead of HAVE_INITFINI_ARRAY.
3378
3379 2012-02-22  Uros Bizjak  <ubizjak@gmail.com>
3380
3381         PR target/52330
3382         * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
3383         is not offsettable memory reference.
3384
3385 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
3386
3387         PR target/18145
3388         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
3389         setting avr_need_clear_bss_p for __gnu_lto* symbols.
3390
3391 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
3392
3393         * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
3394         * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
3395
3396 2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3397
3398         * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
3399         library on Solaris 8 even without TLS support.
3400         * configure: Regenerate.
3401
3402 2012-02-22  Richard Guenther  <rguenther@suse.de>
3403
3404         PR middle-end/52329
3405         * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
3406         for GIMPLE_DEBUG stmts.
3407
3408 2012-02-22  Martin Jambor  <mjambor@suse.cz>
3409
3410         PR middle-end/51782
3411         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
3412         according to the base object.
3413
3414 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
3415
3416         PR rtl-optimization/50063
3417         * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
3418         and 2 (8-bit SP) in operand 2.
3419         * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
3420         setup to use movhi_sp_r instead of vanilla move to write SP.
3421         Adjust REG_CFA notes to superseed unspec.
3422         (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
3423         of vanilla move.
3424         As function body might contain CLI or SEI: Use irq_state 0 (IRQ
3425         known to be off) only with TARGET_NO_INTERRUPTS. Never use
3426         irq_state 1 (IRQ known to be on) here.
3427
3428 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
3429
3430         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
3431         WORDS_BIG_ENDIAN.
3432         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
3433         assign_hard_reg): Likewise.
3434
3435 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
3436
3437         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
3438
3439 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
3440
3441         * config/avr/avr.md
3442         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
3443         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
3444
3445 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
3446
3447         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
3448         prototype from here to...
3449         * config/avr/avr.h: ...here.
3450
3451 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
3452
3453         PR target/52294
3454         * thumb2.md (thumb2_shiftsi3_short): Split register and
3455         immediate shifts.  For register shifts tie operands 0 and 1.
3456         (peephole2 for above): Check that register-controlled shifts
3457         have suitably tied operands.
3458
3459 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
3460
3461         PR target/52137
3462         * config/i386/bdver1.md (bdver1_call, bdver1_push,
3463         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
3464         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
3465         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
3466         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
3467         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
3468         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
3469         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
3470         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
3471         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
3472         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
3473         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
3474         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
3475         bdver1_ssevector_avx256_unaligned_load,
3476         bdver1_ssevector_sse128_unaligned_load,
3477         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
3478         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
3479         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
3480         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
3481         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
3482         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
3483         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
3484         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
3485         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
3486         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
3487         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
3488         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
3489         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
3490         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
3491         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
3492         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
3493         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
3494         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
3495         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
3496         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
3497         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
3498         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
3499         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
3500         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
3501         bdver1_ssediv_double_load, bdver1_ssediv_double,
3502         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
3503         Add "bdver2" attribute.
3504
3505 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3506
3507         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
3508         default if possible and not specified otherwise.
3509
3510 2012-02-21  Richard Guenther  <rguenther@suse.de>
3511
3512         PR middle-end/52314
3513         * gimplify.c (create_tmp_from_val): Use the main variant type
3514         for the type of the temporary we create.
3515
3516 2012-02-21  Richard Guenther  <rguenther@suse.de>
3517
3518         PR tree-optimization/52324
3519         * gimplify.c (gimplify_expr): When re-gimplifying expressions
3520         do not gimplify a MEM_REF address operand if it is already
3521         in suitable form.
3522
3523 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3524
3525         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
3526         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
3527
3528 2012-02-21  Richard Guenther  <rguenther@suse.de>
3529
3530         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
3531         nested_in_vect_loop.
3532
3533 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
3534
3535         PR tree-optimization/52318
3536         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
3537         vdef also to non-pure/const call stmts in the sequence.
3538
3539 2012-02-20  David S. Miller  <davem@davemloft.net>
3540
3541         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
3542         don't use the "rd %pc" instruction on v9 for PIC register loads.
3543
3544 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
3545
3546         PR middle-end/52141
3547         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
3548         in a transaction safe function.
3549
3550 2012-02-20  Kai Tietz  <ktietz@redhat.com>
3551
3552         PR target/52238
3553         * stor-layout.c (place_field): Handle desired_align for
3554         ms-bitfields, too.
3555
3556 2012-02-20  Richard Guenther  <rguenther@suse.de>
3557
3558         PR tree-optimization/52298
3559         * tree-vect-stmts.c (vectorizable_store): Properly use
3560         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
3561         outer loops.
3562         (vectorizable_load): Likewise.
3563         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3564         Access DR_STEP after ensuring it is not NULL.
3565
3566 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
3567
3568         PR tree-optimization/52286
3569         * fold-const.c (fold_binary_loc): For (X & C1) | C2
3570         optimization use double_int_to_tree instead of build_int_cst_wide,
3571         rewrite to use double_int vars.
3572
3573 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3574
3575         PR target/50166
3576         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
3577         Define _start.
3578         Remove -e 0 from $gcc_cv_ld invocation.
3579         Only use __GLIBC_PREREQ if defined.
3580         Enable on Solaris since Solaris 8 patch.
3581         (gcc_SUN_LD_VERSION): New macro.
3582         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
3583         gcc_SUN_LD_VERSION for version number format.
3584         * configure: Regenerate.
3585         * varasm.c (get_elf_initfini_array_priority_section): Set
3586         SECTION_NOTYPE for non-default priority.
3587         Use get_section instead of get_unnamed_section to emit
3588         .init_array/.fini_array with default priority.
3589
3590 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
3591
3592         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
3593         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
3594         (mips_start_unique_function, mips_output_mips16_rdhwr)
3595         (mips_code_end): New functions.
3596         (TARGET_ASM_CODE_END): Define.
3597
3598 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
3599
3600         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
3601         to stubs with non-sibling calls.
3602
3603 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
3604
3605         * doc/invoke.texi (-fira-* options): Copy-edit.
3606         (ira-* parameters): Copy-edit.
3607
3608 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
3609
3610         * doc/invoke.texi: Minor copy-edits to bring into conformance with
3611         GCC coding conventions.
3612
3613 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
3614
3615         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
3616         when used as adjectives.
3617
3618 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
3619
3620         * doc/invoke.texi: Clean up "that"/"which" confusion.
3621
3622 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
3623
3624         * system.h: Poison SMALL_REGISTER_CLASSES
3625         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
3626         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
3627
3628 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
3629
3630         PR tree-optimization/52285
3631         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
3632         when deciding if a call is a tail call or tail recursion.
3633
3634 2012-02-16  Kai Tietz  <ktietz@redhat.com>
3635
3636         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
3637         interger-constant displacement for UNSPEC_PCREL.
3638
3639 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
3640
3641         PR rtl-optimization/52208
3642         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
3643         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
3644
3645         PR tree-optimization/52255
3646         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
3647         loop->header has virtual PHI, but exit_e->dest doesn't, add
3648         virtual PHI to exit_e->dest and adjust all uses after the loop.
3649
3650         PR debug/52260
3651         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
3652         children with clone_tree_hash, not after it.
3653
3654 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
3655
3656         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
3657         extended identifiers.
3658
3659 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
3660
3661         PR middle-end/51929
3662         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
3663         a same_body_alias, also test whether e->callee isn't a former
3664         or current clone of the decl this is a same body alias of.
3665
3666         PR translation/52264
3667         * cgraphunit.c (verify_cgraph_node): Fix a typo.
3668
3669 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
3670
3671         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
3672
3673 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
3674
3675         PR target/52199
3676         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
3677         force_reg instead of copy_to_reg for better optimization.  Force
3678         non-register or memory operands into a register.
3679
3680 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
3681
3682         * extend.texi: Reserve upper bits of memory model for future use.
3683
3684 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
3685             Anatoly Sokolov <aesok@post.ru>
3686             Eric Weddington <eric.weddington@atmel.com>
3687
3688         PR target/52261
3689         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
3690         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
3691         Rewrite initializers for .macro.
3692         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
3693         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
3694         atxmega32d4, atxmega32x1.
3695         avrxmega4: atxmega64a3, atxmega64d3.
3696         avrxmega5: atxmega64a1, atxmega64a1u.
3697         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
3698         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
3699         avrxmega7: atxmega128a1, atxmega128a1u.
3700         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
3701         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
3702         (struct base_arch_s): Rename reserved to xmega_p.
3703         Rename reserved2 to have_rampd.
3704         (AVR_XMEGA): New define.
3705         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
3706         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
3707         * config/avr/predicates.md (io_address_operand): Take into
3708         account SFR offset.
3709         (low_io_address_operand): Ditto.
3710         (high_io_address_operand): Ditto.
3711         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
3712         (enabled, movhi_sp_r): Use them.
3713         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
3714         cpp_define_formatted to built-in define __AVR_ARCH__.
3715         (__AVR_XMEGA__): New built-in define.
3716         (__AVR_HAVE_RAMPD__): New built-in define.
3717         (__AVR_HAVE_RAMPX__): New built-in define.
3718         (__AVR_HAVE_RAMPY__): New built-in define.
3719         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
3720
3721         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
3722         (avr_option_override): Initialize them.
3723         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
3724         (avr_init_expanders): Initialize them. No more block several calls.
3725         (emit_push_sfr): New static function.
3726         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
3727         Handle AVR_XMEGA.
3728         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
3729         (avr_print_operand): Print addreeses as symbols for
3730         RAMPX, RAMPY, RAMPD, CCP.
3731         (output_movhi): Handle AVR_XMEGA when writing to SP.
3732         (avr_out_movhi_mr_r_xmega): New static function.
3733         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
3734         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
3735         __RAMPD__,  __CCP__ as needed.
3736
3737         * config/avr/multilib.h: Regenerate.
3738         * config/avr/t-multilib: Regenerate.
3739         * config/avr/avr-tables.opt: Regenerate.
3740
3741 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
3742
3743         PR tree-optimization/50561
3744         * graphite-flattening.c (lst_project_loop): Do not
3745         remove old scattering dimensions after flattening.
3746         (lst_do_flatten): Likewise.
3747
3748 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
3749
3750         * doc/extend.texi (AVR Built-in Functions): Remove doc for
3751         __builtin_avr_map8, __builtin_avr_map16.
3752         Document __builtin_avr_insert_bits.
3753
3754         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
3755         (insert_bits): New insn.
3756         (adjust_len.map_bits): Rename to insert_bits.
3757         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
3758         * avr-protos.h (avr_out_map_bits): Remove.
3759         (avr_out_insert_bits, avr_has_nibble_0xf): New.
3760         * config/avr/constraints.md (Cxf,C0f): New.
3761         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
3762         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
3763         New built-in define __BUILTIN_AVR_INSERT_BITS.
3764         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
3765         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
3766         (avr_move_bits): Rewrite.
3767         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
3768         functions.
3769         (avr_map_op_t): New typedef.
3770         (avr_map_op): New static variable.
3771         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
3772         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
3773         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
3774         (bdesc_3arg, avr_expand_triop_builtin): New.
3775         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
3776         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
3777         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
3778         (avr_map_equal_p, avr_map_sig_p): Remove.
3779         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
3780         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
3781         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
3782         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
3783         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
3784         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
3785
3786 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
3787
3788         * config/c6x/c6x.md (reserve_cycles): New attribute.
3789         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
3790         don't reserve functional units after the branch occurs.
3791
3792 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
3793
3794         PR middle-end/52142
3795         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
3796         functions into non-tm_pure functions.
3797
3798 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
3799
3800         PR lto/52178
3801         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
3802         (iterative_hash_canonical_type): Likewise.
3803         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
3804         the dead edges.
3805
3806 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
3807
3808         * haifa-sched.c (prune_ready_list): Ensure that if there is a
3809         sched-group insn, it either remains alone or the entire list is pruned.
3810
3811 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
3812
3813         * doc/install.texi (Prerequisites): Fix grammar.
3814         (Configuration): Likewise.
3815
3816 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
3817
3818         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
3819         MPC as part of GCC before describing configuring with --with-gmp etc.
3820         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
3821         sources are present.
3822
3823 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
3824
3825         PR debug/51950
3826         * dwarf2out.c (clone_tree_hash): New function.
3827         (copy_decls_walk): Use it instead of clone_tree.
3828
3829 2012-02-14  Richard Guenther  <rguenther@suse.de>
3830
3831         PR tree-optimization/52244
3832         PR tree-optimization/51528
3833         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
3834         replacements for integral types.
3835
3836 2012-02-14  Walter Lee  <walt@tilera.com>
3837
3838         * config.gcc: Handle tilegx and tilepro.
3839         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
3840         tilegx and tilepro.
3841         Add HAVE_AS_TLS check for tilegx and tilepro.
3842         * configure: Regenerate.
3843         * doc/contrib.texi: Add Mat Hostetter and self.
3844         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
3845         Document instruction intrinsics and network accessing intrinsics.
3846         (TILEPro Built-in Functions): New node.  Document instruction
3847         intrinsics and network accessing intrinsics.
3848         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
3849         (Specific, tilepro-*-linux*): Likewise.
3850         * doc/invoke.texi (TILE-Gx Options): New section.
3851         (TILEPro Options): New section.
3852         * doc/md.texi (TILE-Gx): New section.
3853         (TILEPro): New section.
3854         * common/config/tilegx/tilegx-common.c: New file.
3855         * common/config/tilepro/tilepro-common.c: New file.
3856         * config/tilegx/constraints.md: New file.
3857         * config/tilegx/linux.h: New file.
3858         * config/tilegx/mul-tables.c: New file.
3859         * config/tilegx/predicates.md: New file.
3860         * config/tilegx/sync.md: New file.
3861         * config/tilegx/t-tilegx: New file.
3862         * config/tilegx/tilegx-builtins.h: New file.
3863         * config/tilegx/tilegx-c.c: New file.
3864         * config/tilegx/tilegx-generic.md: New file.
3865         * config/tilegx/tilegx-modes.def: New file.
3866         * config/tilegx/tilegx-multiply.h: New file.
3867         * config/tilegx/tilegx-protos.h: New file.
3868         * config/tilegx/tilegx.c: New file.
3869         * config/tilegx/tilegx.h: New file.
3870         * config/tilegx/tilegx.md: New file.
3871         * config/tilegx/tilegx.opt: New file.
3872         * config/tilepro/constraints.md: New file.
3873         * config/tilepro/gen-mul-tables.cc: New file.
3874         * config/tilepro/linux.h: New file.
3875         * config/tilepro/mul-tables.c: New file.
3876         * config/tilepro/predicates.md: New file.
3877         * config/tilepro/t-tilepro: New file.
3878         * config/tilepro/tilepro-builtins.h: New file.
3879         * config/tilepro/tilepro-c.c: New file.
3880         * config/tilepro/tilepro-generic.md: New file.
3881         * config/tilepro/tilepro-modes.def: New file.
3882         * config/tilepro/tilepro-multiply.h: New file.
3883         * config/tilepro/tilepro-protos.h: New file.
3884         * config/tilepro/tilepro.c: New file.
3885         * config/tilepro/tilepro.h: New file.
3886         * config/tilepro/tilepro.md: New file.
3887         * config/tilepro/tilepro.opt: New file.
3888
3889 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
3890
3891         PR tree-optimization/52210
3892         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
3893         vect_model_simple_cost with two entry vect_def_type array instead
3894         of an address of dt.
3895
3896 2012-02-14  Richard Guenther  <rguenther@suse.de>
3897
3898         PR lto/52178
3899         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
3900         Do not stream DECL_QUALIFIER.
3901         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
3902         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
3903         (find_decls_types_r): Do not walk DECL_QUALIFIER.
3904
3905 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
3906
3907         PR c/52181
3908         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
3909         newdecl.
3910
3911 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
3912
3913         PR bootstrap/52172
3914         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
3915         * cselib.c (cselib_subst_to_values_from_insn): New function.
3916         * sched-deps.c (add_insn_mem_dependence,
3917         sched_analyze_1, sched_analyze_2): Use it.
3918
3919 2012-02-13  Jan Hubicka  <jh@suse.cz>
3920
3921         PR middle-end/52214
3922         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
3923
3924 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3925
3926         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
3927         (GTM_SELF_SPECS): Define if not already defined.
3928         (driver_self_specs): Add GTM_SELF_SPECS.
3929         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
3930         (GTM_SELF_SPECS): Define.
3931         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
3932         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
3933
3934 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
3935
3936         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
3937         away if seen.
3938
3939         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
3940
3941         PR middle-end/52230
3942         * omp-low.c (expand_omp_for): If a static schedule without chunk size
3943         has NULL region->cont, force fd.chunk_size to be integer_zero_node.
3944
3945 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
3946
3947         PR c/52190
3948         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
3949
3950 2012-02-13  Richard Guenther  <rguenther@suse.de>
3951
3952         PR translation/52211
3953         * passes.c (enable_disable_pass): Fix typo.
3954
3955 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
3956
3957         PR middle-end/52209
3958         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
3959         XOR for reduce_bit_field if type is unsigned.
3960
3961 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3962
3963         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
3964         disallow changes from SFmode to mode with different size in FP regs.
3965
3966 2012-02-12  Robert Millan  <rmh@gnu.org>
3967             Gerald Pfeifer <gerald@pfeifer.com>
3968
3969         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
3970         Tweak comment.
3971
3972 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
3973
3974         PR rtl-optimization/52175
3975         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
3976         to frame-related instructions.
3977
3978 2012-02-10  Jason Merrill  <jason@redhat.com>
3979
3980         PR c++/51910
3981         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
3982         (demangle_new_symbols): Fill it.
3983         (scan_linker_output): Walk it.
3984         (start_tweaking): Split out from scan_linker_output.
3985         (maybe_tweak): Update sym->chosen.
3986         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
3987
3988 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
3989
3990         PR debug/52132
3991         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
3992
3993 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
3994
3995         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
3996         having the same mode as previous compare.
3997
3998 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
3999
4000         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
4001         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
4002         (nonlocal_goto_internal): Likewise.
4003         (nonlocal_goto): Emit a use and an indirect jump directly.
4004
4005 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
4006
4007         PR c/52190
4008         * doc/extend.texi : Update comments for __atomic_compare_exchange and
4009         __atomic_{is,always}_lock_free.
4010
4011 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
4012
4013         PR target/52146
4014         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
4015         negative constant address for x32.
4016
4017 2012-02-10  Richard Henderson  <rth@redhat.com>
4018
4019         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
4020         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
4021         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
4022
4023 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4024             Ira Rosen  <irar@il.ibm.com>
4025
4026         PR tree-optimization/50031
4027         * targhooks.c (default_builtin_vectorization_cost): Handle
4028         vec_promote_demote.
4029         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
4030         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
4031         all types of reduction and pattern statements.
4032         (vect_estimate_min_profitable_iters): Likewise.
4033         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
4034         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
4035         for explicit realigns.
4036         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
4037         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
4038         vec_promote_demote.
4039         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
4040         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
4041         vec_perm for VSX and handle vec_promote_demote.
4042
4043 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
4044
4045         PR middle-end/52177
4046         * builtins.c (fold_builtin_atomic_always_lock_free,
4047         expand_builtin_atomic_always_lock_free,
4048         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
4049         Return and/or test boolean_true_node/boolean_false_node instead of
4050         integer_one_node/integer_zero_node.
4051
4052 2012-02-10  Jan Hubicka  <jh@suse.cz>
4053
4054         PR middle-end/48600
4055         * predict.c (predict_paths_for_bb): Prevent looping.
4056         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
4057
4058 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
4059
4060         * config/arm/arm.c (output_move_double): In one case properly
4061         count number of instructions that will be emitted.
4062
4063 2012-02-10  Richard Guenther  <rguenther@suse.de>
4064
4065         PR translation/52193
4066         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
4067
4068 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
4069
4070         PR middle-end/52140
4071         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
4072
4073 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
4074
4075         PR debug/52165
4076         * var-tracking.c (emit_note_insn_var_location): If
4077         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
4078         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
4079         non-NOTE_DURING_CALL_P insn.
4080
4081 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
4082
4083         PR middle-end/51867
4084         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
4085
4086 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
4087
4088         PR driver/48524
4089         * gcc.c (switch_matches) Support switches with separated form,
4090         -D and -U.
4091
4092 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
4093
4094         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
4095         (SP_ADDR): Ditto.
4096         (RAMPZ_ADDR): Ditto.
4097         * config/avr/avr.c (avr_addr_t): New typedef.
4098         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
4099         (avr_init_expanders): Initialize it.
4100         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
4101         SREG_ADDR.
4102         (expand_epilogue): Ditto.
4103         (avr_print_operand): Ditto.
4104         (avr_file_start): Ditto.
4105         (avr_emit_movmemhi): Ditto.
4106
4107 2012-02-08  Richard Guenther  <rguenther@suse.de>
4108
4109         PR tree-optimization/46886
4110         * tree-flow.h (do_while_loop_p): Declare.
4111         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
4112         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
4113
4114 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
4115
4116         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
4117         always succeed for integers larger than a native word.
4118
4119 2012-02-08  Richard Guenther  <rguenther@suse.de>
4120
4121         PR rtl-optimization/52170
4122         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
4123         properly handle integer vector modes.
4124
4125 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
4126
4127         PR gcov-profile/52150
4128         * coverage.c: Include target.h.
4129         (build_var): Call targetm.strip_name_encoding on the assembler name.
4130         Change one _ into . or $ if the target allows it.
4131         * Makefile.in (coverage.o): Depend on $(TARGET_H).
4132
4133         PR rtl-optimization/52139
4134         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
4135         is a BARRIER after emit_insn_after_noloc, move BB_END
4136         to the last non-BARRIER insn before it.
4137
4138 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
4139
4140         PR middle-end/24306
4141         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
4142         (mips_gimplify_va_arg_expr): Call it instead of
4143         std_gimplify_va_arg_expr.
4144
4145 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
4146
4147         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
4148         message for -mno-pointers-to-nested-function.
4149
4150 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
4151
4152         PR middle-end/51994
4153         * expr.c (get_inner_reference): If there is an offset, add a negative
4154         bit position to it (if any).
4155
4156 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
4157
4158         PR rtl-optimization/52060
4159         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
4160         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
4161         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
4162         and/or i0src_copy2 when needed.
4163
4164 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
4165
4166         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
4167         or LTOPLUGINSONAME if have_c.
4168
4169         * config/freebsd-spec.h: Add comment about what macros can be defined
4170         in this header.
4171         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
4172         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
4173         here instead.
4174
4175 2012-02-07  Richard Guenther  <rguenther@suse.de>
4176
4177         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
4178         newline in -alias dumps.
4179
4180 2012-02-07  Kai Tietz  <ktietz@redhat.com>
4181             Dave Korn  <dave.korn.cygwin@gmail.com>
4182
4183         PR target/40068
4184         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
4185         Take care that typinfo gets dllexport-attribute.
4186
4187 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
4188
4189         PR middle-end/52074
4190         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
4191         if modifier < EXPAND_SUM call force_operand on the result.
4192
4193 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
4194
4195         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
4196         adding __forwarder_dst__ prefix if a forwarder_section attribute is
4197         present.
4198         (epiphany_function_type): Replace types for specific interrupts with
4199         EPIPHANY_FUNCTION_INTERRUPT.
4200         (EPIPHANY_INTERRUPT_P): Update.
4201         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
4202         New static function.
4203         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
4204         <disinterrupt>: Affects type identity.
4205         (epiphany_handle_interrupt_attribute): Handle variable number of
4206         arguments.
4207         (epiphany_compute_function_type): Update for new
4208         epiphany_function_type definition.
4209         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
4210         handlers with a longcall forwarder.
4211         (epiphany_start_function): Handle multiple interrupt arguments and/or
4212         forwarder_section attribute.
4213
4214         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
4215         libgloss.
4216
4217 2012-02-07  Alan Modra  <amodra@gmail.com>
4218
4219         PR target/52107
4220         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
4221         subregs of TFmode.
4222
4223 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4224
4225         PR tree-optimization/50969
4226         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
4227         use vec_perm rather than vector_stmt.
4228         (vect_model_load_cost): Likewise.
4229         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
4230         vec_perm to be the same as other vector statements.
4231         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
4232         cost of vec_perm for TARGET_VSX.
4233
4234 2012-02-06  Richard Guenther  <rguenther@suse.de>
4235
4236         PR tree-optimization/52115
4237         * tree-sra.c (access_has_replacements_p): New function.
4238         (sra_modify_assign): Use it to decide whether a use is uninitialized.
4239
4240 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
4241
4242         PR middle-end/52047
4243         * trans-mem.c (expand_call_tm): Add an assertion.
4244         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
4245         functions.
4246
4247 2012-02-06  Richard Guenther  <rguenther@suse.de>
4248
4249         PR tree-optimization/50955
4250         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
4251         raise cost of expressions that replace an address with an
4252         expression based on a different pointer.
4253
4254 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
4255
4256         PR target/52129
4257         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
4258         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
4259
4260 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
4261
4262         PR c++/48680
4263         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
4264         -Weffc++ and specify guidelines come from second edition.
4265
4266 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
4267
4268         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
4269         (sibcall_value_multiple_internal, call_split, call_internal_direct)
4270         (call_direct_split, call_value_split, call_value_internal_direct)
4271         (call_value_direct_split, call_value_multiple_split): Use jal and
4272         jal_macro attributes.
4273
4274 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
4275
4276         * reload1.c (reload_regs_reach_end_p): Replace with...
4277         (reload_reg_rtx_reaches_end_p): ...this function.
4278         (new_spill_reg_store): Update commentary.
4279         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
4280         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
4281         before setting new_spill_reg_store.
4282         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
4283         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
4284         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
4285         for non-spill reload registers.
4286
4287 2012-02-05  Ira Rosen  <irar@il.ibm.com>
4288
4289         PR tree-optimization/52091
4290         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
4291         (vect_is_simple_use_1): Likewise.
4292         * tree-vect-loop.c (vectorizable_reduction): Update calls
4293         to vect_is_simple_use_1 and vect_is_simple_use.
4294         (vectorizable_live_operation): Likewise.
4295         * tree-vect-patterns.c (widened_name_p,
4296         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
4297         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
4298         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4299         vectorizable_shift,vectorizable_operation, vectorizable_store,
4300         vectorizable_load): Likewise.
4301         (vect_is_simple_cond): Add an argument, pass it to
4302         vect_is_simple_use_1.
4303         (vectorizable_condition): Update calls to vect_is_simple_cond,
4304         vect_is_simple_use.
4305         (vect_is_simple_use): Add an argument, the statement in which
4306         OPERAND is used.  Check that if OPERAND's def stmt is a double
4307         reduction phi node, the use is a phi node too.
4308         (vect_is_simple_use_1): Add an argument, pass it to
4309         vect_is_simple_use.
4310         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
4311         to vect_is_simple_use.
4312
4313 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
4314
4315         PR rtl-optimization/52095
4316         * modulo-sched.c (dump_insn_locator): New function.
4317         (loop_canon_p, sms_schedule): Use it.
4318
4319         PR rtl-optimization/52113
4320         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
4321         even for decomposable shift/zext insns.
4322
4323 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
4324             Zdenek Dvorak  <ook@ucw.cz>
4325
4326         PR rtl-optimization/52092
4327         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
4328         on get_iv_value result.
4329
4330 2012-02-02  Andrew Pinski  <apinski@cavium.com>
4331
4332         PR middle-end/47982
4333         PR middle-end/43967
4334         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
4335
4336 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
4337
4338         PR middle-end/48071
4339         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
4340
4341 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
4342
4343         PR rtl-optimization/49800
4344         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
4345         (sched_finish): Call regstat_free_n_sets_and_refs.
4346
4347 2012-02-02  Jia Liu  <proljc@gmail.com>
4348
4349         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
4350         than operand 2.
4351
4352 2012-02-02  Jan Hubicka  <jh@suse.cz>
4353             Tom de Vries  <tom@codesourcery.com>
4354
4355         PR middle-end/51998
4356         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
4357         * varpool.c (varpool_analyze_pending_decls): Likewise.
4358
4359 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
4360             Jayant R Sonar <jayant.sonar@kpitcummins.com>
4361
4362         * config.gcc: Add cr16-* support.
4363
4364         * doc/extend.texi: Document cr16 extensions.
4365         * doc/install.texi: Document cr16 install.
4366         * doc/invoke.texi: Document cr16 options.
4367         * doc/md.texi: Document cr16 constraints.
4368
4369         * common/config/cr16/cr16-common.c: New file.
4370         * config/cr16/cr16.c: New file.
4371         * config/cr16/cr16.h: New file.
4372         * config/cr16/cr16.md: New file.
4373         * config/cr16/cr16.opt: New file.
4374         * config/cr16/cr16-protos.h: New file.
4375         * config/cr16/predicates.md: New file.
4376         * config/cr16/constraints.md: New file.
4377         * config/cr16/t-cr16: New file.
4378
4379 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
4380
4381         PR target/52086
4382         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
4383         that operands[2] is either immediate, or q_regs_operand.
4384
4385         PR tree-optimization/52073
4386         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
4387         a pattern stmt for pattern uses, ignore uses outside of the loop.
4388
4389 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
4390
4391         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
4392         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
4393         (OUT_AS1, OUT_AS2): Remove.
4394
4395 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
4396
4397         PR rtl-optimization/51374
4398         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
4399         to cross other volatile_refs_p insns.
4400
4401 2012-02-01  Richard Guenther  <rguenther@suse.de>
4402
4403         * doc/invoke.texi (fno-inline): Clarify documentation.
4404         (finline-small-functions): Likewise.
4405         (finline-functions): Likewise.
4406         * common.opt (finline): Adjust comment and documentation.
4407         (finline-small-functions): Clarify documentation.
4408         (finline-functions): Likewise.
4409         (finline-functions-called-once): Likewise.
4410
4411 2012-02-01  Tristan Gingold  <gingold@adacore.com>
4412
4413         * c-typeck.c (composite_type): Keep mode for pointers.
4414
4415 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
4416
4417         * function.h (regno_reg_rtx): Adjust comment.
4418         * reginfo.c (init_reg_modes_target): Only use the previous mode
4419         if it fits within one register.  Remove MIPS comment.
4420
4421 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
4422
4423         PR bootstrap/52058
4424         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
4425
4426 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4427
4428         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
4429         to srak instruction.
4430
4431 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
4432
4433         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
4434
4435 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
4436
4437         PR bootstrap/52041
4438         PR bootstrap/52039
4439         PR target/51974
4440         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
4441
4442 2012-01-31  Richard Guenther  <rguenther@suse.de>
4443
4444         PR tree-optimization/51528
4445         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
4446         assigns.
4447
4448 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
4449
4450         PR bootstrap/52041
4451         PR bootstrap/52039
4452         PR target/51974
4453         * ree.c (add_removable_extension): Change def_map argument
4454         to unsigned *, store in def_map 1 + offset into *insn_list vector
4455         instead of pointers into the vector.
4456         (find_removable_extensions): Adjust caller.
4457
4458 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
4459
4460         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
4461         Transform all "* quoted-c-code" to { c-code }.
4462         Remove redundant test for "optimize" in combine patterns.
4463         Move (include "avr-dimode.md") to end of file.
4464
4465 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
4466
4467         PR target/51835
4468         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4469         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
4470
4471 2012-01-30  Richard Guenther  <rguenther@suse.de>
4472
4473         PR tree-optimization/52028
4474         * tree-loop-distribution.c (ldist_gen): Properly update
4475         virtual SSA form.
4476
4477 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
4478
4479         PR debug/52027
4480         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
4481         set_cur_line_info_table if not emitting debug info.
4482
4483         PR tree-optimization/52046
4484         * tree-vect-patterns.c (check_bool_pattern): Give up if
4485         a comparison could throw.
4486
4487         PR debug/52048
4488         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
4489
4490 2012-01-30  Richard Guenther  <rguenther@suse.de>
4491
4492         PR tree-optimization/52045
4493         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
4494         SSA form if cfgcleanup did anything.
4495
4496 2012-01-30  Richard Guenther  <rguenther@suse.de>
4497
4498         PR tree-optimization/52045
4499         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
4500         before computing final todo.
4501
4502 2012-01-30  Richard Guenther  <rguenther@suse.de>
4503
4504         PR tree-optimization/51528
4505         * tree-sra.c (sra_modify_assign): Re-factor in preparation
4506         for PR51528 fix.
4507
4508 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
4509
4510         * df-problems.c (df_kill_notes): Check that the use refers
4511         to the note under examination.
4512
4513 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
4514
4515         PR target/51920
4516         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
4517         parameter and use short-lived pseudos.
4518         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
4519         (sparc_expand_vector_init): Const-ify local variables and adjust
4520         calls to above functions.
4521
4522 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
4523
4524         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
4525
4526 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
4527
4528         * doc/invoke.texi: Make usage of "compile time" and
4529         "run time"/"runtime" consistent throughout the file.
4530
4531 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
4532
4533         * config/alpha/alpha.c (alpha_option_override): Default to
4534         full IEEE compliance mode for Go language.
4535
4536 2011-01-29  Tijl Coosemans  <tijl@coosemans.org>
4537
4538         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
4539         (LINK_SSP_SPEC): Define.
4540
4541 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4542
4543         PR target/51871
4544         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
4545         stubs.
4546
4547 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
4548
4549         * doc/invoke.texi: Correct hyphenation of "floating point",
4550         "double precision", and related terminology throughout the file.
4551
4552 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
4553
4554         PR target/52006
4555         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
4556         arm_general_register_operand predicate for operand 2 instead of
4557         register_operand.
4558
4559 2012-01-27  Ian Lance Taylor  <iant@google.com>
4560
4561         PR go/47656
4562         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
4563         * builtins.c (expand_builtin_init_trampoline): Add onstack
4564         parameter.  Change caller.
4565         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
4566         * tree.c (build_common_builtin_nodes): Declare
4567         __builtin_init_heap_trampoline.
4568
4569 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
4570
4571         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
4572         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
4573         * config/avr/avr.c: Ditto.
4574         (avr_regnames): Remove because unused.
4575         * config/avr/avr.md (*cpse.ne): New peephole.
4576         (*cpse.eq): New peephole from former cpse peepholes.
4577
4578 2012-01-27  Michael Eager  <eager@eagercon.com>
4579
4580         * config/microblaze.c (microblaze_emit_compare): Correct
4581         test after pcmp instruction.
4582
4583 2012-01-27  Richard Guenther  <rguenther@suse.de>
4584
4585         PR tree-optimization/52020
4586         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
4587
4588 2012-01-27  Richard Guenther  <rguenther@suse.de>
4589
4590         * ipa-pure-const.c (check_stmt): Clobbers do not make a
4591         function non-const/pure.
4592
4593 2012-01-27  Richard Guenther  <rguenther@suse.de>
4594
4595         PR tree-optimization/50444
4596         * tree-sra.c (build_ref_for_offset): Properly adjust the
4597         MEM_REF type for unaligned accesses.
4598
4599 2012-01-27  Richard Guenther  <rguenther@suse.de>
4600
4601         PR tree-optimization/50444
4602         * expr.c (mem_ref_refers_to_non_mem_p): New function.
4603         (expand_assignment): Use it.  Properly handle misaligned
4604         bases when expanding stores to component references.
4605         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
4606         refactor that case.
4607
4608 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
4609
4610         PR middle-end/51389
4611         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
4612         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
4613         * tree-data-ref.c (find_data_references_in_loop): Make static.
4614         (compute_all_dependences): Change return type to bool.  Bail out
4615         for too many datarefs in a loop.  Move the hunk resetting the data
4616         dependences vector from ...
4617         (compute_data_dependences_for_loop): ... here.  Account for
4618         compute_all_dependences returning false.
4619         (compute_data_dependences_for_bb): Likewise.
4620         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
4621         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
4622
4623 2012-01-27  Richard Guenther  <rguenther@suse.de>
4624
4625         PR middle-end/51959
4626         * expr.c (store_field): Use the alias-set of the scratch memory
4627         for storing to it.
4628
4629 2012-01-27  Tom de Vries  <tom@codesourcery.com>
4630
4631         PR tree-optimization/51990
4632         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4633         WITH_SIZE_EXPR.
4634         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
4635
4636 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
4637
4638         PR debug/52001
4639         * var-tracking.c (reverse_op): Don't add any reverse operation
4640         if V already has any constant locations.
4641
4642 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
4643
4644         * doc/invoke.texi: Correct usage of "command line" (noun)
4645         vs "command-line" (adjective) throughout.
4646
4647 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
4648
4649         * doc/invoke.texi (Language Independent Options): Move
4650         -Wcoverage-mismatch blurb from here....
4651         (Warning Options): ...to here.
4652
4653 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
4654
4655         * config/rs6000/rs6000.c (rs6000_option_override_internal):
4656         Set rs6000_always_hint to false for 476.
4657
4658 2012-01-27  Matthias Klose  <doko@ubuntu.com>
4659
4660         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
4661           system root.
4662         * incpath.c (add_standard_paths): Likewise.
4663
4664 2012-01-27  Richard Henderson  <rth@redhat.com>
4665
4666         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
4667         * config/m68k/sync.md (atomic_test_and_set): Rename from
4668         sync_test_and_setqi and adjust the operands.
4669         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
4670         and unconditionally enable.
4671
4672 2012-01-27  Richard Henderson  <rth@redhat.com>
4673
4674         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
4675         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
4676         (ldstub): Rename from ldstubqi.
4677         (ldstub<I24MODE>): Remove.
4678
4679 2012-01-27  Richard Henderson  <rth@redhat.com>
4680
4681         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
4682         * c-cppbuiltin.c (cpp_atomic_builtins): Define
4683         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
4684         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
4685         * doc/tm.texi: Rebuild.
4686
4687 2012-01-27  Richard Henderson  <rth@redhat.com>
4688
4689         * optabs.c (gen_atomic_test_and_set): Remove default.
4690         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
4691
4692 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
4693
4694         PR rtl-optimization/51978
4695         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
4696         (combine_reaching_defs): Likewise.
4697         (struct re_info): Remove.
4698         (add_removable_extension): Remove x and data arguments,
4699         add insn, insn_list and def_map.  Use the arguments directly
4700         instead of using struct re_info.
4701         (find_removable_extensions): Don't call add_removable_extension
4702         through note_stores, instead just call it with single_set
4703         result if non-NULL.
4704         (find_and_remove_re): Pass curr_cand->expr instead of
4705         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
4706
4707 2012-01-26  Michael Matz  <matz@suse.de>
4708
4709         PR tree-optimization/46590
4710         * cfgexpand.c: Revert last change (r183305).
4711         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
4712         regs.
4713         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
4714         checking for emptiness.
4715
4716 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
4717
4718         PR middle-end/51895
4719         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
4720         non-addressable non-BLKmode base correctly.
4721
4722 2012-01-26  Michael Matz  <matz@suse.de>
4723
4724         PR tree-optimization/48794
4725         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
4726         regions referenced from RESX/EH_DISPATCH.
4727
4728 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4729
4730         * config/s390/s390.h: Make BRANCH_COST an option.
4731         * config/s390/s390.opt: New option -mbranch-cost.
4732
4733 2012-01-26  Richard Henderson  <rth@redhat.com>
4734
4735         Revert 2012-01-24 change:
4736         * trans-mem.c (requires_barrier): Do not instrument thread local
4737         variables and emit save/restore for them.
4738
4739 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
4740
4741         PR middle-end/51986
4742         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
4743         for pat == 0.
4744
4745 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
4746
4747         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
4748         ASM_OPERANDS.
4749
4750 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
4751
4752         PR target/49868
4753         Rename __pgm to __flash.
4754         Rename __pgm1 to __flash1.
4755         Rename __pgm2 to __flash2.
4756         Rename __pgm3 to __flash3.
4757         Rename __pgm4 to __flash4.
4758         Rename __pgm5 to __flash5.
4759         Rename __pgmx to __memx.
4760         * doc/extend.texi (AVR Named Address Spaces)
4761         Rename address space names as indicated above.
4762         * config/avr/avr.c (avr_addrspace): Ditto.
4763
4764         * config/avr/avr-protos.h
4765         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
4766         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
4767         * config/avr/predicates.md: Ditto.
4768         * config/avr/avr.c Ditto, and
4769         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
4770         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
4771
4772         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
4773         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
4774         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
4775         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
4776         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
4777         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
4778         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
4779         * config/avr/avr.c: Ditto.
4780         * config/avr/avr.md: Ditto.
4781
4782 2012-01-25  Jason Merrill  <jason@redhat.com>
4783
4784         PR c++/51992
4785         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
4786
4787 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
4788
4789         PR tree-optimization/51987
4790         * tree-data-ref.c (get_references_in_stmt): Handle references in
4791         non-volatile GIMPLE_ASM.
4792
4793 2012-01-25  Richard Guenther  <rguenther@suse.de>
4794
4795         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
4796         bases are dereferenced.
4797
4798 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
4799
4800         PR rtl-optimization/48374
4801         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
4802
4803 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
4804
4805         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
4806         compute_data_dependences_for_loop returns false.
4807         * tree-parloops.c (loop_parallel_p): Likewise.
4808
4809 2012-01-25  Richard Guenther  <rguenther@suse.de>
4810
4811         * tree.h (get_pointer_alignment_1): Declare.
4812         * builtins.c (get_pointer_alignment_1): New function.
4813         (get_pointer_alignment): Use it.
4814
4815 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4816
4817         PR rtl-optimization/48308
4818         * combine.c (enum undo_kind): Add UNDO_LINKS.
4819         (struct undo): Add member l to other_contents and where.
4820         (do_SUBST_LINK): New.
4821         (SUBST_LINK): New.
4822         (try_combine): Handle LOG_LINKS for the dummy i1 case.
4823         (undo_all): Handle UNDO_LINKS.
4824
4825 2012-01-25  Richard Henderson  <rth@redhat.com>
4826
4827         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
4828         mem inputs.
4829
4830 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
4831
4832         * optabs.c (gen_atomic_test_and_set): Use each argument.
4833
4834 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
4835
4836         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
4837         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
4838         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
4839         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
4840         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
4841         TARGET_PAIRED_SINGLE_FLOAT.
4842
4843 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
4844
4845         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
4846         (in_struct, return_val): Remove MEM documentation.
4847         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
4848         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
4849         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
4850         and MEM_SCALAR.
4851         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4852         * cfgexpand.c (add_alias_set_conflicts): Likewise.
4853         * expr.c (store_field): Likewise.
4854         * function.c (assign_stack_temp_for_type): Likewise.
4855         * ifcvt.c (noce_try_cmove_arith): Likewise.
4856         * reload1.c (reload): Likewise.
4857         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
4858         (alpha_set_memflags): Likewise.
4859         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
4860
4861 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
4862
4863         * rtl.h (true_dependence, canon_true_dependence): Remove varies
4864         parameter.
4865         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
4866         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
4867         (true_dependence_1, true_dependence, canon_true_dependence): Remove
4868         varies parameter.
4869         * cselib.c (cselib_rtx_varies_p): Delete.
4870         (cselib_invalidate_mem): Update call to canon_true_dependence.
4871         * dse.c (record_store, check_mem_read_rtx): Likewise.
4872         (scan_reads_nospill): Likewise.
4873         * cse.c (check_dependence): Likewise.
4874         (cse_rtx_varies_p): Delete.
4875         * expr.c (safe_from_p): Update call to true_dependence.
4876         * ira.c (validate_equiv_mem_from_store): Likewise.
4877         (memref_referenced_p): Likewise.
4878         * postreload-gcse.c (find_mem_conflicts): Likewise.
4879         * sched-deps.c (sched_analyze_2): Likewise.
4880         * store-motion.c (load_kills_store): Likewise.
4881         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
4882         * gcse.c (mems_conflict_for_gcse_p): Likewise.
4883         (compute_transp): Update call to canon_true_dependence.
4884
4885 2012-01-25  Richard Henderson  <rth@redhat.com>
4886
4887         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
4888         (maybe_emit_atomic_test_and_set): New.
4889         (expand_sync_lock_test_and_set): Use it.
4890         (expand_atomic_test_and_set): Likewise.
4891         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
4892         the implementation; clarify implementation defined details.
4893         * doc/md.texi (atomic_test_and_set): Document.
4894
4895 2012-01-25  Richard Henderson  <rth@redhat.com>
4896
4897         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
4898
4899 2012-01-25  Richard Henderson  <rth@redhat.com>
4900
4901         PR target/51968
4902         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
4903         to effect no-op split.
4904
4905 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
4906
4907         PR lto/51698
4908         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
4909         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
4910         (BT_FN_VOID_PTR_INT_SIZE): New.
4911         (BT_FN_UINT_UINT_VAR): Remove.
4912         (BT_FN_UINT32_UINT32_VAR): New.
4913         (BT_FN_DOUBLE_VPTR): Remove.
4914         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
4915
4916         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
4917         (_ITM_changeTransactionMode): Same.
4918         (_ITM_memmoveRtWt): Change return type to void.
4919         (_ITM_memcpyRtWt): Same.
4920         (_ITM_memsetW): Same.
4921         (_ITM_RaRD): Change types to double.
4922         (_ITM_RD): Same.
4923         (_ITM_RaWD): Same.
4924         (_ITM_RfWD): Same.
4925
4926         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
4927
4928 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
4929             Patrick Marlier  <patrick.marlier@gmail.com>
4930
4931         * trans-mem.c (requires_barrier): Do not instrument thread local
4932         variables and emit save/restore for them.
4933
4934 2012-01-24  Jason Merrill  <jason@redhat.com>
4935
4936         PR c++/51812
4937         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
4938         output static aliases.
4939
4940 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
4941
4942         PR driver/47249
4943         * common.opt (-pie, -shared, pie, shared): Change from Common to
4944         Driver.
4945         * gcc.c (display_help): Display help for -pie and -shared.
4946
4947 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
4948
4949         PR target/49868
4950         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
4951         Remove note on size/offset limitation.
4952         (AVR Variable Attributes): Add example how to read data located
4953         with progmem.  Refer to named address spaces.
4954         * doc/invoke.texi (AVR Options): Fix typo.
4955
4956 2012-01-24  Richard Guenther  <rguenther@suse.de>
4957
4958         Forward-port to trunk
4959         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
4960
4961         PR middle-end/45678
4962         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
4963         op0 isn't sufficiently aligned and there is movmisalignM
4964         insn for mode, use it to load op0 into a temporary register.
4965
4966 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
4967
4968         PR target/51957
4969         * target.def (const_not_ok_for_debug_p): New hook.
4970         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
4971         documentation.
4972         * doc/tm.texi: Regenerated.
4973         * dwarf2out.c (const_ok_for_output_1): If
4974         targetm.const_not_ok_for_debug_p returns true, fail.
4975         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
4976         function.
4977         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
4978
4979 2012-01-23  Kai Tietz  <ktietz@redhat.com>
4980
4981         PR target/51900
4982         * config/i386/predicates.md (symbolic_operand): Allow
4983         UNSPEC_PCREL as PIC expression for lea.
4984         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
4985         * config/i386/i386.c (ix86_delegitimize_address): Handle
4986         UNSPEC_PCREL for none-MEM, too.
4987
4988 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
4989
4990         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
4991         (ipa_tm_create_version_alias): Same.
4992
4993 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
4994
4995         PR libitm/51830
4996         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
4997         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
4998
4999 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
5000             Patrick Marlier  <patrick.marlier@gmail.com>
5001             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
5002
5003         PR lto/51916
5004         * lto-wrapper.c (run_gcc): Pass the LTO section name to
5005         simple_object_start_read.
5006
5007 2012-01-23  Richard Guenther  <rguenther@suse.de>
5008
5009
5010         PR tree-optimization/51895
5011         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
5012         parameter decomposition into BLKmode components.
5013
5014 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
5015
5016         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
5017         fake variables for restrict-qualified pointers whose pointed-to type
5018         contains a placeholder.
5019
5020 2012-01-23  Richard Guenther  <rguenther@suse.de>
5021
5022         PR tree-optimization/51949
5023         * ipa-split.c (execute_split_functions): Do not split malloc functions.
5024
5025 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
5026
5027         PR rtl-optimization/51933
5028         * ree.c (transform_ifelse): Return true right away if dstreg is
5029         already wider or equal to cand->mode.
5030         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
5031         (make_defs_and_copies_lists): Remove defs_list and copies_list
5032         arguments, add state argument, just truncate state->work_list
5033         instead of always allocating and freeing the vector.  Assert that
5034         get_defs succeeds instead of returning 2.  Changed return type to bool.
5035         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
5036         have ext_src_mode, see if it has been modified already with the
5037         right kind of extension and has been extended before from the
5038         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
5039         just return true.  Remember the original mode in state->modified array.
5040         (combine_reaching_defs): Add state argument.  Don't allocate and
5041         free here def_list, copied_list and vec vectors, instead just
5042         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
5043         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
5044         Add state variable, clear vectors in it, initialize state.modified
5045         if needed.  Free all the vectors at the end and state.modified too.
5046         Don't skip a candidate if the extension expression has been modified.
5047
5048 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
5049
5050         PR target/47096
5051         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
5052          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
5053         (extra_options) interix.opt -> i386/interix.opt"
5054         (extra_objs):Add winnt-stubs.o
5055         * configure.ac: Add interix to target_os .comm on PE check.
5056         * configure: Regenerate.
5057         * config/interix3.h: Delete and move bits to..
5058         * config/interix.h: Delete and move bits to..
5059         * config/i386/i386-interix3.h: Delete and move bits to..
5060         * config/i386/i386-interix.h: ..here.
5061         (TARGET_CPU_DEFAULT): Remove redefinition.
5062         (TARGET_ASM_CONSTRUCTOR): Undefine.
5063         (SUBTARGET_SWITCHES): Define for ms-bitfields.
5064         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
5065         (PTRDIFF_TYPE): Define.
5066         (LONG_DOUBLE_TYPE_SIZE): Define.
5067         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
5068         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
5069         (TARGET_SECTION_TYPE_FLAGS): Define.
5070         (ASM_DECLARE_FUNCTION_NAME): Define.
5071         (ASM_OUTPUT_EXTERNAL): Define.
5072         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
5073         (ASM_OUTPUT_ALIGNED_BSS): Define.
5074         (PCC_BITFIELD_TYPE_MATTERS): Define.
5075         (USE_CONST_SECTION): Define.
5076         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
5077         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
5078         (SUPPORTS_ONE_ONLY): Remove.
5079         (I386_PE_STRIP_ENCODING): Define.
5080         * config/interix.opt: Delete and move bits to..
5081         * config/i386/interix.opt: ..here. New.
5082         (mpe-aligned-commons): Add.
5083         * config/i386/t-interix: Add copyright header.
5084         (winnt-stubs.o): Add rule.
5085
5086 2012-01-22  Jason Merrill  <jason@redhat.com>
5087
5088         PR c++/51832
5089         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
5090         for extra name aliases.
5091
5092 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
5093
5094         PR rtl-optimization/51924
5095         * ree.c (combine_set_extension): Improve debugging message.
5096         (combine_reaching_defs): Likewise.
5097         (get_defs): Rename confusingly named variable.
5098         (find_and_remove_re): Skip a candidate if the extension expression has
5099         been modified.
5100
5101 2012-01-21  Robert Millan  <rmh@gnu.org>
5102             Gerald Pfeifer  <gerald@pfeifer.com>
5103
5104         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
5105         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
5106
5107 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
5108
5109         PR tree-optimization/51914
5110         * tree-vect-stmts.c (vectorizable_conversion): For
5111         cvt_type && modifier == WIDEN, put temporary with cvt_type
5112         at the beginning of vec_dsts and set vec_dest to temporary
5113         with vectype_out.
5114
5115 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
5116
5117         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
5118
5119 2011-01-20  Tijl Coosemans  <tijl@coosemans.org>
5120
5121         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
5122         * config/rs6000/rs6000.c: Likewise.
5123
5124 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
5125
5126         PR target/51915
5127         * config/arm/arm.c (arm_count_output_move_double_insns): Call
5128         output_move_double on a copy of operands array.
5129
5130 2012-01-20  Cary Coutant  <ccoutant@google.com>
5131             Dodji Seketeli  <dodji@redhat.com>
5132
5133         PR debug/45682
5134         * dwarf2out.c (copy_declaration_context): Return ref to parent
5135         of declaration DIE, if necessary.
5136         (remove_child_or_replace_with_skeleton): Add new parameter; update
5137         caller.  Place skeleton DIE under parent DIE of original declaration.
5138         Move call to copy_declaration_context to here ...
5139         (break_out_comdat_types): ... from here.
5140
5141 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5142
5143         PR rtl-optimization/51856
5144         * reload.c (find_reloads_subreg_address): Set the address_reloaded
5145         flag to reloaded.
5146
5147 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5148
5149         PR target/51819
5150         * config/arm/arm.c (arm_print_operand): Correct output of alignment
5151         hints for neon loads and stores.
5152
5153 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
5154
5155         PR target/49868
5156         PR target/50887
5157         * doc/extend.texi (Named Address Spaces): Split into subsections.
5158         (AVR Named Address Spaces): New subsection.
5159         (M32C Named Address Spaces): New subsection.
5160         (RL78 Named Address Spaces): New subsection.
5161         (SPU Named Address Spaces): New subsection.
5162         (Variable Attributes): New anchor "AVR Variable Attributes".
5163         (AVR Variable Attributes): Rewrite and avoid wording
5164         "address space" in this context.
5165         * doc/invoke.texi (AVR Options): Rewrite and add documentation
5166         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
5167         (AVR Built-in Macros): New subsubsection therein.
5168         * doc/md.texi (AVR constraints): Remove "C04", "R".
5169
5170 2012-01-20  Richard Guenther  <rguenther@suse.de>
5171
5172         PR tree-optimization/51903
5173         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
5174         when removing stmts.
5175
5176 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5177
5178         PR target/50313
5179         * config/arm/arm.c (arm_load_pic_register): Use
5180         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
5181         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
5182         (arm_pic_static_addr): Likewise.
5183         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
5184         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
5185         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
5186         (pic_load_addr_unified): New.
5187
5188 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
5189
5190         PR target/51106
5191         * function.c (instantiate_virtual_regs_in_insn): Use
5192         delete_insn_and_edges when removing a wrong asm insn.
5193
5194 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
5195
5196         PR rtl-optimization/40761
5197         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
5198         Add new member loop_num.
5199         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
5200         (ira_build): Remove the parameter.
5201
5202         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
5203         (ira.c): Do not build CFG loops for one region allocation.  Remove
5204         argument from ira_build call.
5205
5206         * ira-build.c (init_loop_tree_node): New function.
5207         (create_loop_tree_nodes): Use it.  Separate the case when CFG
5208         loops are not built.
5209         (more_one_region_p): Check current_loops.
5210         (finish_loop_tree_nodes): Separate the case when CFG loops are not
5211         built.
5212         (add_loop_to_tree): Process loop equal to NULL too.
5213         (form_loop_tree): Separate the case when CFG loops are not built.
5214         Use explicitly number for the root.
5215         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
5216         an assertion.
5217         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
5218         instead of loop->num.
5219         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
5220         (mark_all_loops_for_removal): Ditto.
5221         (remove_unnecessary_regions): Separate the case when CFG loops
5222         are not built.
5223         (ira_build): Remove the parameter.  Use explicit number of regions
5224         when CFG loops are not built.
5225
5226         * ira-color.c (print_loop_title): Separate the case for the root node.
5227         Use loop_num instead of loop->num.
5228         (move_spill_restore): Use loop_num instead of loop->num.
5229
5230         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
5231         (change_loop): Ditto.
5232         (change_loop): Use loop_num instead of loop->num.
5233
5234         * ira-lives.c (process_bb_node_lives): Ditto.
5235
5236         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
5237
5238         * ira-conflicts.c (print_allocno_conflicts): Ditto.
5239
5240 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
5241
5242         PR libmudflap/40778
5243         * tree-mudflap.c (mf_artificial): New function.
5244         (execute_mudflap_function_ops, execute_mudflap_function_decls,
5245         mx_register_decls, mudflap_enqueue_decl): Use it.
5246
5247         PR target/51876
5248         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
5249         numbers in the insn pattern.
5250
5251 2012-01-19  Michael Matz  <matz@suse.de>
5252
5253         PR tree-optimization/46590
5254         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
5255         use it in remembering which conflicts we already created.
5256         (add_scope_conflicts): Adjust call to above, (de)allocate helper
5257         bitmap.
5258
5259 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
5260
5261         PR lto/51280
5262         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
5263         (merge_and_complain): Same.
5264
5265 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
5266
5267         PR bootstrap/50237
5268         * config/initfini-array.h: Guard content of the header
5269         with #ifdef HAVE_INITFINI_ARRAY.
5270         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
5271         Add initfini-array.h to tm_file here.
5272         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
5273         * config.gcc: Don't add initfini-array.h to tm_file here.
5274         * configure: Regenerated.
5275
5276 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
5277
5278         PR rtl-optimization/51505
5279         * df-problems.c (df_kill_notes): New parameter live. Update comment.
5280         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
5281         (df_note_bb_compute): Update the call to df_kill_notes.
5282
5283 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
5284
5285         * trans-mem.c (requires_barrier): Remove call to is_global_var.
5286
5287 2012-01-18  Richard Guenther  <rguenther@suse.de>
5288
5289         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
5290         of conversions to void *.
5291
5292 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5293             Richard Sandiford  <rdsandiford@googlemail.com>
5294
5295         PR middle-end/50325
5296         PR middle-end/51192
5297         * optabs.h (simplify_expand_binop): Declare.
5298         * optabs.c (simplify_expand_binop): Make global.
5299         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
5300         endian targets if the source cannot be exactly covered by word
5301         mode chunks.
5302
5303 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
5304
5305         PR bootstrap/51872
5306         * hard-reg-set.h (struct hard_reg_set_container): New type.
5307         * target.h (struct hard_reg_set_container): Forward declare.
5308         * target.def (set_up_by_prologue): New target hook.
5309         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
5310         * doc/tm.texi: Regenerated.
5311         * function.c (thread_prologue_and_epilogue_insns): Change
5312         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
5313         Call targetm.set_up_by_prologue on it.
5314         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
5315         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
5316
5317 2012-01-17  Nick Clifton  <nickc@redhat.com>
5318
5319         * config/rx/rx.c (rx_can_use_simple_return): New function.
5320         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
5321         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
5322
5323 2012-01-17  Richard Guenther  <rguenther@suse.de>
5324
5325         PR middle-end/51782
5326         * expr.c (expand_assignment): Take address-space information
5327         from the address operand of MEM_REF and TARGET_MEM_REF.
5328         (expand_expr_real_1): Likewise.
5329
5330 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5331
5332         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
5333         reload dump is requested.
5334
5335 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
5336
5337         PR other/51165
5338         * trans-mem.c (requires_barrier): Call may_be_aliased.
5339
5340 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
5341
5342         PR tree-optimization/51877
5343         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
5344         call arguments and fndecls compare equal, instead return false if they
5345         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
5346         both SSA_NAMEs that are valueized the same, or they satisfy
5347         operand_equal_p.
5348
5349 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5350
5351         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
5352         Solaris 11+.
5353         * configure: Regenerate.
5354
5355 2012-01-16  Jan Hubicka  <jh@suse.cz>
5356
5357         PR c/12245
5358         PR c++/14179
5359         * convert.c (convert_to_integer): Use fold_convert for
5360         converting an INTEGER_CST to integer type.
5361
5362 2012-01-16  Jason Merrill  <jason@redhat.com>
5363
5364         PR c++/14179
5365         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
5366
5367 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
5368
5369         PR bootstrap/51860
5370         * config/s390/s390.c (s390_chunkify_start): Don't skip
5371         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
5372         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
5373         If insn is followed by NOTE_INSN_VAR_LOCATION or
5374         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
5375         Don't use location of note insns.
5376
5377         PR tree-optimization/51865
5378         * tree-inline.c (tree_function_versioning): Call remap_decl
5379         on DECL_RESULT whenever it has VOID_TYPE_P type.
5380
5381 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
5382
5383         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
5384         for calls to locally-binding MIPS16 functions if only the return
5385         type uses float regs.
5386
5387 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
5388             Richard Sandiford  <rdsandiford@googlemail.com>
5389
5390         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
5391         (SYMBOL_32_HIGH): Likewise.
5392         (mips_output_tls_reloc_directive): Declare.
5393         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
5394         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
5395         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
5396         (mips_lo_relocs, mips_hi_relocs): Make extern.
5397         (mips16_stub_function): Move up file.
5398         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
5399         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
5400         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
5401         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
5402         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
5403         (mips_get_tp): Add MIPS16 support.
5404         (mips_legitimize_tls_address): Remove MIPS16 sorry().
5405         Generalize DTPREL and TPREL handling.
5406         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
5407         Add MIPS16 TLS support.
5408         (mips_output_tls_reloc_directive): New function.
5409         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
5410         * config/mips/predicates.md (symbolic_operand_with_high)
5411         (tls_reloc_operand): New predicates.
5412         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
5413         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
5414         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
5415         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
5416         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
5417         (*tls_get_tp_mips16_call_<mode>): Likewise.
5418
5419 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
5420
5421         PR rtl-optimization/51821
5422         * recog.c (peep2_find_free_register): Determine clobbered registers
5423         from insn pattern.
5424
5425 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
5426
5427         PR target/50925
5428         * config/avr/avr-protos.h: Revert change of 2012-01-09.
5429         * config/avr/avr.c: Likewise.
5430         * config/avr/avr.h: Likewise.
5431
5432 2012-01-13  Ian Lance Taylor  <iant@google.com>
5433
5434         PR c++/50012
5435         * tree.h (TYPE_QUALS): Add cast to int.
5436         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
5437
5438 2012-01-13  Ian Lance Taylor  <iant@google.com>
5439
5440         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
5441         comparing param_index to VEC_length result.
5442
5443 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
5444
5445         * c-decl.c: Do not include tree-mudflap.h
5446         * tree-optimize.c: Likewise.
5447         * Makefile.in: Update dependencies.
5448
5449 2012-01-13  Richard Guenther  <rguenther@suse.de>
5450
5451         PR middle-end/8081
5452         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
5453         variable-sized result always use RSO.
5454
5455 2012-01-12  DJ Delorie  <dj@redhat.com>
5456
5457         * cfgexpand.c (convert_debug_memory_address): Allow any valid
5458         pointer type, not just the default pointer type.
5459
5460 2012-01-09  Richard Henderson  <rth@redhat.com>
5461             Denis Chertykov  <chertykov@gmail.com>
5462
5463         PR target/50925
5464         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
5465         * config/avr/avr.c (avr_can_eliminate): Simplify.
5466         (avr_initial_elimination_offset): Likewise.
5467         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
5468         (expand_epilogue): Likewise.
5469         (avr_legitimize_address): Gut.
5470         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
5471         (avr_hard_regno_nregs): New.
5472         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
5473         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
5474         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
5475         add soft frame pointer.
5476         (CALL_USED_REGISTERS): Likewise.
5477         (REG_CLASS_CONTENTS): Likewise.
5478         (REGISTER_NAMES): Likewise.
5479         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
5480         (HARD_FRAME_POINTER_REGNUM): New.
5481         (FRAME_POINTER_REGNUM): Use soft frame pointer.
5482         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
5483         remove the HARD_FRAME_POINTER self-elimination.
5484
5485 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
5486
5487         PR target/51756
5488         * config/avr/avr.c (avr_encode_section_info): Test for absence of
5489         DECL_EXTERNAL when checking for initializers of progmem variables.
5490
5491 2012-01-12  Ira Rosen  <irar@il.ibm.com>
5492
5493         PR tree-optimization/51799
5494         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
5495         that the last operation is a type demotion.
5496
5497 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
5498
5499         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
5500         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
5501
5502 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
5503
5504         PR bootstrap/51796
5505         * combine.c (distribute_notes): If i3 is a noreturn call,
5506         allow old_size to be equal to args_size and make sure the
5507         noreturn call gets REG_ARGS_SIZE note.
5508         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
5509         on noreturn calls even when the delta is 0.
5510
5511 2012-01-11  Nathan Sidwell  <nathan@acm.org>
5512
5513         * gcov.c (STRING_SIZE): Remove.
5514         (generate_results): Erase annotations for source files with no
5515         coverage information.
5516         (read_line): New.
5517         (output_lines): Use it.
5518
5519 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
5520
5521         * gimple.h (gimplify_body): Remove first argument.
5522         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
5523         pointer set here, instead just pass DATA to walk_tree.
5524         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
5525         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
5526         (unvisit_body): Likewise, but with unmark_visited.
5527         (gimplify_body): Remove BODY_P argument and adjust.
5528         (gimplify_function_tree): Adjust call to gimplify_body.
5529         * omp-low.c (finalize_task_copyfn): Likewise.
5530
5531 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
5532
5533         * tree.h (build_function_decl_skip_args): Add boolean parameter.
5534         (build_function_type_skip_args): Delete.
5535         * tree.c (build_function_type_skip_args): Make static and add
5536         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
5537         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
5538         pass it to build_function_type_skip_args.
5539         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
5540         (tree_function_versioning): Likewise.
5541         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
5542         build_function_decl_skip_args.
5543         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
5544         and pass it to build_function_decl_skip_args/tree_function_versioning.
5545         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
5546         * ipa-inline-transform.c (save_inline_function_body): Likewise.
5547         * trans-mem.c (ipa_tm_create_version): Likewise.
5548         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
5549         * tree-inline.c (declare_return_variable): Remove always-true test.
5550         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
5551         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
5552         * ipa-split.c (split_function): Skip the return value for the split
5553         part if it doesn't return.
5554
5555 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5556
5557         PR tree-optimization/49642
5558         * ipa-split.c (forbidden_dominators): New variable.
5559         (check_forbidden_calls): New function.
5560         (dominated_by_forbidden): Likewise.
5561         (consider_split): Check for forbidden dominators.
5562         (execute_split_functions): Initialize and free forbidden
5563         dominators info; call check_forbidden_calls.
5564
5565 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
5566
5567         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
5568
5569 2012-01-11  Nick Clifton  <nickc@redhat.com>
5570
5571         * config/rx/rx.md (return): Define pattern.
5572
5573 2012-01-11  Richard Guenther  <rguenther@suse.de>
5574
5575         * doc/extend.texi (malloc attribute): Adjust according to
5576         implementation.
5577
5578 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
5579             Patrick Marlier  <patrick.marlier@gmail.com>
5580
5581         PR middle-end/51516
5582         * trans-mem.c (get_cg_data): Traverse aliases if requested.
5583         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
5584         (ipa_tm_note_irrevocable): Same.
5585         (ipa_tm_scan_irr_block): Same.
5586         (ipa_tm_decrement_clone_counts): Same.
5587         (ipa_tm_scan_irr_function): Same.
5588         (ipa_tm_create_version_alias): Same.
5589         (ipa_tm_create_version): Same.
5590         (ipa_tm_transform_calls_redirect): Same.
5591         (ipa_tm_transform_calls): Same.
5592         (ipa_tm_transform_transaction): Same.
5593         (ipa_tm_execute): Same.
5594
5595 2012-01-10  Richard Guenther  <rguenther@suse.de>
5596
5597         PR middle-end/51806
5598         * opts.c (common_handle_option): Handle -Werror.
5599
5600 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
5601
5602         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
5603         operand number.
5604
5605 2012-01-10  Jason Merrill  <jason@redhat.com>
5606
5607         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
5608         information.
5609
5610 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5611
5612         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
5613         supports R_386_TLS_GD_PLT reloc.
5614         (gcc_cv_as_ix86_tlsldmplt): Check if linker
5615         supports R_386_TLS_LDM_PLT reloc.
5616         * configure: Regenerate.
5617         * config.in: Regenerate.
5618
5619 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
5620
5621         PR target/49868
5622         Extend __pgmx semantics to linearize memory.
5623         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
5624         determine if code comes inline or from libgcc.
5625         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
5626         (movmem_qi, movmem_qi): Set constraint #2 to "n".
5627         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
5628         (movmemx_qi, movmemx_hi): New insns.
5629         (xload_<mode>_libgcc): Rewrite to new insn condition.
5630         (xload_<mode>): Remove insns.
5631         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
5632         cases that don't satisfy avr_xload_libgcc_p().
5633         (avr_addr_space_convert): Allow converting in any direction.
5634         (avr_addr_space_subset_p): Return always true.
5635         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
5636         (avr_emit_movmemhi): Ditto.
5637         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
5638         (avr_out_movmem): Ditto.
5639         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
5640         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
5641         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
5642         (avr_encode_section_info): Encode 'progmem' in symbol flags.
5643         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
5644
5645 2012-01-10  Richard Guenther  <rguenther@suse.de>
5646
5647         PR tree-optimization/50913
5648         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
5649         Require data-refs to be representable by Graphite with respect
5650         to any loop nest.
5651
5652 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
5653
5654         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
5655         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
5656
5657 2012-01-10  Tom de Vries  <tom@codesourcery.com>
5658
5659         PR rtl-optimization/51271
5660         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
5661         handling annulled branch.
5662
5663 2012-01-10  Richard Henderson  <rth@redhat.com>
5664
5665         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
5666         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
5667         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
5668         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
5669         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
5670         arm_expand_vec_perm_const): New.
5671         * config/arm/arm-protos.h: Update.
5672         * config/arm/neon.md (UNSPEC_VCONCAT): New.
5673         (*neon_vswp<VDQX>): New.
5674         (neon_vcombine<VDX>): Use neon_split_vcombine.
5675         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
5676         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
5677         (vec_perm<VE>): New.
5678
5679 2012-01-10  Richard Henderson  <rth@redhat.com>
5680
5681         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
5682         use it if reload_completed.
5683         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
5684         arm_output_asm_insn, arm_process_output_memory_barrier,
5685         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
5686         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
5687         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
5688         arm_process_output_sync_insn, arm_output_sync_insn,
5689         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
5690         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
5691         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
5692         (emit_unlikely_jump): New.
5693         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
5694         (arm_split_atomic_op): New.
5695         * config/arm/arm-protos.h: Update.
5696         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
5697         (struct arm_sync_generator): Remove.
5698         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
5699         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
5700         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
5701         (VUNSPEC_LL, VUNSPEC_SC): New.
5702         (sync_result, sync_memory, sync_required_value, sync_new_value,
5703         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
5704         (attr length): Don't use arm_sync_loop_insns.
5705         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
5706         (movsfcc, movdfcc): Likewise.
5707         * config/arm/constraints.md (Ua): New.
5708         * config/arm/prediates.md (mem_noofs_operand): New.
5709         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
5710         (sync_clobber, sync_t2_reqd): Remove.
5711         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
5712         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
5713         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
5714         (arm_sync_compare_and_swap<SIDI>): Remove.
5715         (arm_sync_compare_and_swap<NARROW>): Remove.
5716         (arm_sync_lock_test_and_set<SIDI>): Remove.
5717         (arm_sync_lock_test_and_set<NARROW>): Remove.
5718         (arm_sync_new_<syncop><SIDI>): Remove.
5719         (arm_sync_new_<syncop><NARROW>): Remove.
5720         (arm_sync_new_nand<SIDI>): Remove.
5721         (arm_sync_new_nand<NARROW>): Remove.
5722         (arm_sync_old_<syncop><SIDI>): Remove.
5723         (arm_sync_old_<syncop><NARROW>): Remove.
5724         (arm_sync_old_nand<SIDI>): Remove.
5725         (arm_sync_old_nand<NARROW>): Remove.
5726         (*memory_barrier): Merge arm_output_memory_barrier.
5727         (atomic_compare_and_swap<QHSD>): New.
5728         (atomic_compare_and_swap<NARROW>_1): New.
5729         (atomic_compare_and_swap<SIDI>_1): New.
5730         (atomic_exchange<QHSD>): New.
5731         (cas_cmp_operand, cas_cmp_str): New.
5732         (atomic_op_operand, atomic_op_str): New.
5733         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
5734         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
5735         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
5736         (arm_load_exclusive<NARROW>): New.
5737         (arm_load_exclusivesi, arm_load_exclusivedi): New.
5738         (arm_store_exclusive<QHSD>): New.
5739
5740 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5741
5742         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
5743         reload patterns if -mvsx-scalar-memory.
5744
5745         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
5746         generated, even -mno-vsx-scalar-double was used.
5747         (vsx_xscvdpsp_scalar): Likewise.
5748         (vsx_xscvspdp_scalar2): Likewise.
5749
5750 2012-01-09  Tom de Vries  <tom@codesourcery.com>
5751             Andrew Pinski  <apinski@cavium.com>
5752
5753         PR debug/51471
5754         * reorg.c (fill_slots_from_thread): Don't speculate
5755         frame-related insns.
5756
5757 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
5758
5759         * sched-int.h (bb_note): Move to...
5760         * basic-block.h: ...here.
5761         * haifa-sched.c (bb_note): Move to...
5762         * cfgrtl.c: ...here.
5763         * function.c (next_block_for_reg): New function.
5764         (move_insn_for_shrink_wrap): Likewise.
5765         (prepare_shrink_wrap): Rewrite to use the above.
5766
5767 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
5768
5769         * gimple.c (is_gimple_non_addressable): Remove.
5770         * gimple.h: Remove is_gimple_non_addressable.
5771         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
5772         is_gimple_non_addressable.
5773         * trans-mem.c (expand_assign_tm): Same.
5774
5775 2012-01-09  Richard Guenther  <rguenther@suse.de>
5776
5777         PR tree-optimization/51775
5778         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
5779         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
5780
5781 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
5782
5783         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
5784         tuning parameters.
5785         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
5786
5787 2012-01-09  Richard Guenther  <rguenther@suse.de>
5788
5789         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
5790
5791 2012-01-08  Jan Hubicka  <jh@suse.cz>
5792
5793         PR tree-optimize/51680
5794         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
5795         on when known_vals needs to be computed; cleanup.
5796
5797 2012-01-08  Jan Hubicka  <jh@suse.cz>
5798
5799         PR tree-optimize/51694
5800         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
5801
5802 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
5803
5804         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
5805         for -std=c++98 and -std=c++11 too.
5806
5807 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
5808
5809         * cfgloop.c (cancel_loop): Add free() of bbs array.
5810
5811 2012-01-07  Jan Hubicka  <jh@suse.cz>
5812
5813         PR tree-optimization/51600
5814         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
5815         that benefits small functions.
5816
5817 2012-01-07  Jan Hubicka  <jh@suse.cz>
5818
5819         * ipa-inline.c (want_inline_small_function_p): Fix formating.
5820
5821 2012-01-07  Jan Hubicka  <jh@suse.cz>
5822
5823         PR tree-optimization/51680
5824         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
5825         whose inlining reduce unit size.
5826
5827 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
5828
5829         PR bootstrap/51725
5830         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
5831         Add canonical node to containing_mem chain after the non-canonical
5832         one, even if there weren't any locs to propagate.
5833         (remove_useless_values): Keep only canonical values.
5834         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
5835         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
5836         canonicalize mem_chain elements that are not discarded.
5837
5838 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
5839
5840         PR target/47333
5841         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
5842         before emitting functions.
5843
5844         PR gcov-profile/50127
5845         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
5846         clear_aux_for_blocks.
5847
5848 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
5849
5850         PR debug/51746
5851         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
5852
5853 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
5854
5855         * c-decl.c (ext_block): Moved up.
5856         (collect_all_refs, for_each_global_decl): Take ext_block into account.
5857
5858 2012-01-06  Han Shen  <shenhan@google.com>
5859
5860         Translate built-in include paths for sysroot.
5861         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
5862         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
5863
5864         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
5865         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
5866
5867         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
5868         control whether sysroot should be prepended to gxx include dir.
5869
5870         * configure: Regenerate.
5871
5872 2012-01-06  Torvald Riegel  <triegel@redhat.com>
5873
5874         PR rtl-optimization/51771
5875         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
5876         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
5877
5878 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5879
5880         PR tree-optimization/51315
5881         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
5882         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
5883
5884 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
5885
5886         PR target/51681
5887         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
5888         for shrp pattern.  Correctly handle and fixup shift variable.
5889         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
5890
5891 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
5892
5893         PR debug/51762
5894         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
5895         note when !ACCUMULATE_OUTGOING_ARGS.
5896
5897 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
5898
5899         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
5900         condition.
5901         (extract_range_from_unary_expr_1): Avoid useless computations.
5902
5903 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
5904
5905         PR rtl-optimization/51767
5906         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
5907         of jump_block and add an extra edge for degenerated asm gotos.
5908
5909         PR middle-end/51768
5910         * stmt.c (check_unique_operand_names): Don't ICE during error
5911         reporting if i is from labels chain.
5912
5913         PR middle-end/44777
5914         * profile.c (branch_prob): Split bbs that have exit edge
5915         and need a fake entry edge too.
5916
5917 2012-01-05  Jan Hubicka  <jh@suse.cz>
5918
5919         PR middle-end/49710
5920         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
5921         unlooping loops.
5922
5923 2012-01-05  Richard Guenther  <rguenther@suse.de>
5924
5925         PR lto/50490
5926         * tree-streamer-out.c (write_ts_optimization): New function.
5927         (streamer_write_tree_body): Call it.
5928         * tree-streamer-in.c (lto_input_ts_optimization): New function.
5929         (streamer_read_tree_body): Call it.
5930         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
5931
5932 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
5933
5934         PR middle-end/51761
5935         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
5936         * gimplify.c (gimplify_cleanup_point_expr): Save and set
5937         in_cleanup_point_expr before gimplify_stmt call and restore it
5938         afterwards.
5939         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
5940         in_cleanup_point_expr is false.
5941
5942 2012-01-05  Richard Guenther  <rguenther@suse.de>
5943
5944         PR middle-end/51764
5945         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
5946         to c.opt.
5947         * toplev.c (process_options): Reject combining mudflap and LTO.
5948         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
5949
5950 2012-01-05  Richard Guenther  <rguenther@suse.de>
5951
5952         PR tree-optimization/51760
5953         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
5954         not VARYING.
5955         (bit_value_unop): Handle UNDEFINED operands.
5956         (bit_value_binop): Likewise.
5957
5958 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
5959
5960         * config/avr/avr.c (avr_replace_prefix): Remove.
5961         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
5962         (avr_asm_function_rodata_section): Ditto.
5963         (avr_asm_select_section): Ditto.
5964
5965 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5966
5967         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
5968         insertion.
5969
5970 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
5971
5972         PR bootstrap/51648
5973         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
5974         calls that have any non-fake successor edges.
5975
5976         PR debug/51746
5977         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
5978
5979 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
5980
5981         PR tree-optimization/51624
5982         * tree-sra.c (build_ref_for_model): When replicating a chain of
5983         COMPONENT_REFs, stop as soon as the offset would become negative.
5984
5985 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
5986
5987         PR debug/51695
5988         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
5989         in .debug_loc on the floor.
5990
5991 2012-01-04  Andrew Pinski  <apinski@cavium.com>
5992
5993         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
5994
5995 2012-01-04  Andrew Pinski  <apinski@cavium.com>
5996             Adam Nemet  <anemet@caviumnetworks.com>
5997
5998         * config/mips/mips.md (size): Add SI and DI.
5999         (SIZE): New mode attribute.
6000         (U): New code attribute.
6001         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
6002         (mips_lbux_<mode>): Delete.
6003         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
6004         (mips_lhx): Use gen_mips_lhx_extsi.
6005         (mips_lhx_<mode>): Delete.
6006         (mips_lwx): Delete.
6007         (mips_l<size>x): New expand.
6008         (mips_lwx_<mode>): Delete.
6009         (mips_l<GPR:size>x_<P:mode>): New pattern.
6010         (*mips_lw<u>x_<P:mode>_ext): Likewise.
6011         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
6012         * config/mips/mips.c (mips_lx_address_p): New function.
6013         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
6014         (dsp64): New availability predicate.
6015         (mips_builtins): Add an entry for __builtin_mips_ldx.
6016         * config/mips/mips.h (ISA_HAS_LBX): New define.
6017         (ISA_HAS_LBUX): Likewise.
6018         (ISA_HAS_LHX): Likewise.
6019         (ISA_HAS_LHUX): Likewise.
6020         (ISA_HAS_LWX): Likewise.
6021         (ISA_HAS_LWUX): Likewise.
6022         (ISA_HAS_LDX): Likewise.
6023         * doc/extend.texi (__builtin_mips_ldx): Document.
6024
6025 2012-01-04  Tristan Gingold  <gingold@adacore.com>
6026
6027         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
6028         when long pointers are used.
6029         * config.build (*-*-*vms*): Handle all OpenVMS targets.
6030         (alpha64-dec-*vms*, alpha*-dec-*vms*)
6031         (ia64-hp-*vms*): Remove.
6032         * config/vms/xm-vms64.h: Delete.
6033
6034 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
6035
6036         PR middle-end/51472
6037         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
6038
6039 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
6040
6041         * opts.c (finish_options): Remove duplicate sorry.
6042
6043 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
6044
6045         PR middle-end/51696
6046         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
6047         correctly.
6048
6049 2012-01-04  Richard Guenther  <rguenther@suse.de>
6050
6051         PR middle-end/51750
6052         * tree.c (size_low_cst): New function.
6053         * tree.h (size_low_cst): Declare.
6054         * fold-const.c (fold_comparison): Use it to extract the low
6055         part of the POINTER_PLUS_EXPR offset.
6056
6057 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
6058
6059         Fix clearing ZERO_REG
6060         * config/avr/avr.md (cc): Add alternative "ldi".
6061         (movqi_insn): Use it in cc attribute.
6062         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
6063         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
6064         (output_reload_insisf): Use ZERO_REG to pre-clear register.
6065
6066 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6067
6068         * configure: Regenerate.
6069
6070 2012-01-04  Richard Guenther  <rguenther@suse.de>
6071
6072         PR tree-optimization/49651
6073         * tree-ssa-structalias.c (type_can_have_subvars): New function.
6074         (var_can_have_subvars): Use it.
6075         (get_constraint_for_1): Only consider subfields if there can be any.
6076
6077 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
6078
6079         PR bootstrap/51725
6080         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
6081         to its new canonical_cselib_val and the cselib_val was in
6082         first_containing_mem chain, but the canonical_cselib_val was not,
6083         add the latter into the chain.
6084         (cselib_invalidate_mem): Compare canonical_cselib_val of
6085         addr_list chain elt with v.
6086
6087         PR pch/51722
6088         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
6089         dwarf2out_undef): Allocate e.info using ggc_strdup instead
6090         of xstrdup.
6091         (output_macinfo_op): Don't ggc_strdup fd->filename.
6092         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
6093         then ggc_strdup it.  Don't free inc->info or cur->info.
6094         (output_macinfo): Don't free ref->info or file->info.
6095
6096 2012-01-03  Ira Rosen  <irar@il.ibm.com>
6097
6098         PR tree-optimization/51269
6099         * tree-vect-loop-manip.c (set_prologue_iterations): Make
6100         first_niters a pointer.
6101         (slpeel_tree_peel_loop_to_edge): Likewise.
6102         (vect_do_peeling_for_loop_bound): Update call to
6103         slpeel_tree_peel_loop_to_edge.
6104         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
6105         here.  Remove it from the parameters list.
6106         (vect_do_peeling_for_alignment): Update calls and compute
6107         wide_prolog_niters.
6108
6109 2012-01-03  Richard Guenther  <rguenther@suse.de>
6110
6111         PR tree-optimization/51070
6112         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
6113         Properly handle calls.
6114
6115 2012-01-03  Richard Guenther  <rguenther@suse.de>
6116
6117         PR tree-optimization/51692
6118         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
6119         the LHS of allocation stmts.
6120
6121 2012-01-03  Olivier Hainque  <hainque@adacore.com>
6122
6123         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
6124
6125 2012-01-03  Olivier Hainque  <hainque@adacore.com>
6126
6127         * collect2.c (main): In AIX specific computations for vector
6128         insertions, use CONST_CAST2 to cast from char ** to const char **.
6129
6130 2012-01-03  Richard Guenther  <rguenther@suse.de>
6131
6132         PR debug/51650
6133         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
6134         the context of a limbo DIE when it does not already exist.
6135
6136 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
6137
6138         PR tree-optimization/51719
6139         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
6140         but direct call is, clear direct call's lhs and don't add fallthrough
6141         edge from dcall_bb to join_bb and PHIs.
6142
6143 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6144
6145         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
6146         the instructions emitted by the pattern.
6147         ("*TDC_insn_<mode>"): Add comment.
6148
6149 2012-01-03  Richard Guenther  <rguenther@suse.de>
6150
6151         PR middle-end/51730
6152         * fold-const.c (fold_comparison): Properly canonicalize
6153         tree offset and HOST_WIDE_INT bit position.
6154
6155 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
6156
6157         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
6158         operands for extzv pattern.
6159
6160 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
6161
6162         PR bootstrap/51725
6163         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
6164         on mem_elt first.
6165
6166 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
6167
6168         * doc/invoke.texi (-flto and related options): Copy-edit.
6169
6170 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6171
6172         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
6173
6174 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
6175
6176         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
6177         New patterns.
6178
6179 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6180
6181         * expr.h (move_by_pieces_ninsns): Declare.
6182         * expr.c (move_by_pieces_ninsns): Make external.
6183         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
6184         (mips_store_by_pieces_p): Likewise.
6185         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
6186         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
6187         * config/mips/mips.c (mips_move_by_pieces_p): New function.
6188         (mips_store_by_pieces_p): Likewise.
6189
6190 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
6191
6192         * passes.c (register_one_dump_file): Free full_name.
6193
6194         * reload1.c (reload): Don't allocate reg_max_ref_width here.
6195         (calculate_elim_costs_all_insns): Free offsets_at and
6196         offsets_known_at at the end and clear the pointers.
6197
6198 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
6199
6200         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
6201         this option introduced in r180739.
6202
6203 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
6204
6205         PR target/51345
6206         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
6207         (tmake_file target=avr): Add avr/t-multilib.
6208
6209         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
6210         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
6211         * config/avr/genmultilib.awk: New file.
6212         * config/avr/t-multilib: New auto-generated file.
6213         * config/avr/multilib.h: New auto-generated file.
6214         * config/avr/t-avr (AVR_MCUS): New variable.
6215         (genopt.sh): Use it.
6216         (s-mlib): Depend on t-multilib.
6217         (t-multilib, multilib.h): New dependencies.
6218         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
6219         (MULTILIB_OPTIONS): Remove.
6220         (MULTILIB_MATCHES): Remove.
6221         (MULTILIB_DIRNAMES): Remove.
6222         (MULTILIB_EXCEPTIONS): Remove:
6223         * config/avr/genopt.sh: Don't use hard coded file name;
6224         pass AVR_MCUS from t-avr instead.
6225
6226 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
6227
6228         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
6229
6230 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
6231
6232         Implement light-weight DImode support.
6233         * config/avr/avr-dimode.md: New file.
6234         * config/avr/avr.md: Include it.
6235         (adjust_len): Add plus64, compare64.
6236         (HIDI): Remove code iterator.
6237         (code_stdname): New code attribute.
6238         (rotx, rotsmode): Remove DI.
6239         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
6240         as code iterator.
6241         * config/avr/avr-protos.h (avr_have_dimode): New.
6242         (avr_out_plus64, avr_out_compare64): New.
6243         * config/avr/avr.c (avr_out_compare): Handle DImode.
6244         (avr_have_dimode): New variable definition and initialization.
6245         (avr_out_compare64, avr_out_plus64): New functions.
6246         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
6247         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
6248         (avr_compare_pattern): Skip DImode comparisons.
6249
6250 2012-01-02  Revital Eres  <revital.eres@linaro.org>
6251
6252         * ddg.c (def_has_ccmode_p): New function.
6253         (add_cross_iteration_register_deps,
6254         create_ddg_dep_from_intra_loop_link): Call it.
6255
6256 2012-01-02  Richard Guenther  <rguenther@suse.de>
6257
6258         PR other/51679
6259         * invoke.texi (fassociative-math): Remove spurious paranthesis.
6260
6261 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
6262
6263         * gcc.c (process_command): Update copyright notice dates.
6264         * gcov.c (print_version): Likewise.
6265         * gcov-dump.c (print_version): Likewise.
6266         * mips-tfile.c (main): Likewise.
6267         * mips-tdump.c (main): Likewise.
6268
6269 2012-01-01  Ira Rosen  <irar@il.ibm.com>
6270
6271         PR tree-optimization/51704
6272         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
6273         a use is inside the basic block or loop before accessing its vect info.
6274
6275 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
6276
6277         PR rtl-optimization/51069
6278         * cfgloopmanip.c (remove_path): Removing path making irreducible
6279         region unconditional makes BB part of the region.
6280
6281 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
6282
6283         PR tree-optimization/51683
6284         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
6285         calls with side-effects.
6286         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6287 \f
6288 Copyright (C) 2012 Free Software Foundation, Inc.
6289
6290 Copying and distribution of this file, with or without modification,
6291 are permitted in any medium without royalty provided the copyright
6292 notice and this notice are preserved.