re PR rtl-optimization/52060 (Invalid constant simplification in combine with paralle...
[gcc.git] / gcc / ChangeLog
1 2012-02-07 Jakub Jelinek <jakub@redhat.com>
2
3 PR rtl-optimization/52060
4 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
5 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
6 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
7 and/or i0src_copy2 when needed.
8
9 2012-02-07 Jakub Jelinek <jakub@redhat.com>
10
11 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
12 or LTOPLUGINSONAME if have_c.
13
14 * config/freebsd-spec.h: Add comment about what macros can be defined
15 in this header.
16 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
17 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
18 here instead.
19
20 2012-02-07 Richard Guenther <rguenther@suse.de>
21
22 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
23 newline in -alias dumps.
24
25 2012-02-07 Kai Tietz <ktietz@redhat.com>
26 Dave Korn <dave.korn.cygwin@gmail.com>
27
28 PR target/40068
29 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
30 Take care that typinfo gets dllexport-attribute.
31
32 2012-02-07 Jakub Jelinek <jakub@redhat.com>
33
34 PR middle-end/52074
35 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
36 if modifier < EXPAND_SUM call force_operand on the result.
37
38 2012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
39
40 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
41 adding __forwarder_dst__ prefix if a forwarder_section attribute is
42 present.
43 (epiphany_function_type): Replace types for specific interrupts with
44 EPIPHANY_FUNCTION_INTERRUPT.
45 (EPIPHANY_INTERRUPT_P): Update.
46 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
47 New static function.
48 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
49 <disinterrupt>: Affects type identity.
50 (epiphany_handle_interrupt_attribute): Handle variable number of
51 arguments.
52 (epiphany_compute_function_type): Update for new
53 epiphany_function_type definition.
54 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
55 handlers with a longcall forwarder.
56 (epiphany_start_function): Handle multiple interrupt arguments and/or
57 forwarder_section attribute.
58
59 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after libgloss.
60
61 2012-02-07 Alan Modra <amodra@gmail.com>
62
63 PR target/52107
64 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
65 subregs of TFmode.
66
67 2012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
68
69 PR tree-optimization/50969
70 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
71 use vec_perm rather than vector_stmt.
72 (vect_model_load_cost): Likewise.
73 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
74 vec_perm to be the same as other vector statements.
75 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
76 cost of vec_perm for TARGET_VSX.
77
78 2012-02-06 Richard Guenther <rguenther@suse.de>
79
80 PR tree-optimization/52115
81 * tree-sra.c (access_has_replacements_p): New function.
82 (sra_modify_assign): Use it to decide whether a use is uninitialized.
83
84 2012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
85
86 PR middle-end/52047
87 * trans-mem.c (expand_call_tm): Add an assertion.
88 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
89 functions.
90
91 2012-02-06 Richard Guenther <rguenther@suse.de>
92
93 PR tree-optimization/50955
94 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
95 raise cost of expressions that replace an address with an
96 expression based on a different pointer.
97
98 2012-02-06 Jakub Jelinek <jakub@redhat.com>
99
100 PR target/52129
101 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
102 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
103
104 2012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
105
106 PR c++/48680
107 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
108 -Weffc++ and specify guidelines come from second edition.
109
110 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
111
112 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
113 (sibcall_value_multiple_internal, call_split, call_internal_direct)
114 (call_direct_split, call_value_split, call_value_internal_direct)
115 (call_value_direct_split, call_value_multiple_split): Use jal and
116 jal_macro attributes.
117
118 2012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
119
120 * reload1.c (reload_regs_reach_end_p): Replace with...
121 (reload_reg_rtx_reaches_end_p): ...this function.
122 (new_spill_reg_store): Update commentary.
123 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
124 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
125 before setting new_spill_reg_store.
126 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
127 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
128 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
129 for non-spill reload registers.
130
131 2012-02-05 Ira Rosen <irar@il.ibm.com>
132
133 PR tree-optimization/52091
134 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
135 (vect_is_simple_use_1): Likewise.
136 * tree-vect-loop.c (vectorizable_reduction): Update calls
137 to vect_is_simple_use_1 and vect_is_simple_use.
138 (vectorizable_live_operation): Likewise.
139 * tree-vect-patterns.c (widened_name_p,
140 vect_recog_vector_vector_shift_pattern, check_bool_pattern):
141 Likewise.
142 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
143 vectorizable_call, vectorizable_conversion,
144 vectorizable_assignment, vectorizable_shift,
145 vectorizable_operation, vectorizable_store, vectorizable_load):
146 Likewise.
147 (vect_is_simple_cond): Add an argument, pass it to
148 vect_is_simple_use_1.
149 (vectorizable_condition): Update calls to vect_is_simple_cond,
150 vect_is_simple_use.
151 (vect_is_simple_use): Add an argument, the statement in which
152 OPERAND is used. Check that if OPERAND's def stmt is a double
153 reduction phi node, the use is a phi node too.
154 (vect_is_simple_use_1): Add an argument, pass it to
155 vect_is_simple_use.
156 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
157 to vect_is_simple_use.
158
159 2012-02-04 Jakub Jelinek <jakub@redhat.com>
160
161 PR rtl-optimization/52095
162 * modulo-sched.c (dump_insn_locator): New function.
163 (loop_canon_p, sms_schedule): Use it.
164
165 PR rtl-optimization/52113
166 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
167 even for decomposable shift/zext insns.
168
169 2012-02-03 Jakub Jelinek <jakub@redhat.com>
170 Zdenek Dvorak <ook@ucw.cz>
171
172 PR rtl-optimization/52092
173 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
174 on get_iv_value result.
175
176 2012-02-02 Andrew Pinski <apinski@cavium.com>
177
178 PR middle-end/47982
179 PR middle-end/43967
180 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
181
182 2012-02-02 Jakub Jelinek <jakub@redhat.com>
183
184 PR middle-end/48071
185 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
186
187 2012-02-02 Vladimir Makarov <vmakarov@redhat.com>
188
189 PR rtl-optimization/49800
190 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
191 (sched_finish): Call regstat_free_n_sets_and_refs.
192
193 2012-02-02 Jia Liu <proljc@gmail.com>
194
195 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
196 than operand 2.
197
198 2012-02-02 Jan Hubicka <jh@suse.cz>
199 Tom de Vries <tom@codesourcery.com>
200
201 PR middle-end/51998
202 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
203 * varpool.c (varpool_analyze_pending_decls): Likewise.
204
205 2012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
206 Jayant R Sonar <jayant.sonar@kpitcummins.com>
207
208 * config.gcc: Add cr16-* support.
209
210 * doc/extend.texi: Document cr16 extensions.
211 * doc/install.texi: Document cr16 install.
212 * doc/invoke.texi: Document cr16 options.
213 * doc/md.texi: Document cr16 constraints.
214
215 * common/config/cr16/cr16-common.c: New file.
216 * config/cr16/cr16.c: New file.
217 * config/cr16/cr16.h: New file.
218 * config/cr16/cr16.md: New file.
219 * config/cr16/cr16.opt: New file.
220 * config/cr16/cr16-protos.h: New file.
221 * config/cr16/predicates.md: New file.
222 * config/cr16/constraints.md: New file.
223 * config/cr16/t-cr16: New file.
224
225 2012-02-02 Jakub Jelinek <jakub@redhat.com>
226
227 PR target/52086
228 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
229 that operands[2] is either immediate, or q_regs_operand.
230
231 PR tree-optimization/52073
232 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
233 a pattern stmt for pattern uses, ignore uses outside of the loop.
234
235 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
236
237 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
238 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
239 (OUT_AS1, OUT_AS2): Remove.
240
241 2012-02-01 Georg-Johann Lay <avr@gjlay.de>
242
243 PR rtl-optimization/51374
244 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
245 to cross other volatile_refs_p insns.
246
247 2012-02-01 Richard Guenther <rguenther@suse.de>
248
249 * doc/invoke.texi (fno-inline): Clarify documentation.
250 (finline-small-functions): Likewise.
251 (finline-functions): Likewise.
252 * common.opt (finline): Adjust comment and documentation.
253 (finline-small-functions): Clarify documentation.
254 (finline-functions): Likewise.
255 (finline-functions-called-once): Likewise.
256
257 2012-02-01 Tristan Gingold <gingold@adacore.com>
258
259 * c-typeck.c (composite_type): Keep mode for pointers.
260
261 2012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
262
263 * function.h (regno_reg_rtx): Adjust comment.
264 * reginfo.c (init_reg_modes_target): Only use the previous mode
265 if it fits within one register. Remove MIPS comment.
266
267 2012-01-31 Jakub Jelinek <jakub@redhat.com>
268
269 PR bootstrap/52058
270 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
271
272 2012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
273
274 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
275 to srak instruction.
276
277 2012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
278
279 config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true
280 condition.
281
282 2012-01-31 Jakub Jelinek <jakub@redhat.com>
283
284 PR bootstrap/52041
285 PR bootstrap/52039
286 PR target/51974
287 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
288
289 2012-01-31 Richard Guenther <rguenther@suse.de>
290
291 PR tree-optimization/51528
292 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
293 assigns.
294
295 2012-01-31 Jakub Jelinek <jakub@redhat.com>
296
297 PR bootstrap/52041
298 PR bootstrap/52039
299 PR target/51974
300 * ree.c (add_removable_extension): Change def_map argument
301 to unsigned *, store in def_map 1 + offset into *insn_list vector
302 instead of pointers into the vector.
303 (find_removable_extensions): Adjust caller.
304
305 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
306
307 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
308 Transform all "* quoted-c-code" to { c-code }.
309 Remove redundant test for "optimize" in combine patterns.
310 Move (include "avr-dimode.md") to end of file.
311
312 2012-01-30 Bin Cheng <bin.cheng@arm.com>
313
314 PR target/51835
315 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
316 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
317
318 2012-01-30 Richard Guenther <rguenther@suse.de>
319
320 PR tree-optimization/52028
321 * tree-loop-distribution.c (ldist_gen): Properly update
322 virtual SSA form.
323
324 2012-01-30 Jakub Jelinek <jakub@redhat.com>
325
326 PR debug/52027
327 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
328 set_cur_line_info_table if not emitting debug info.
329
330 PR tree-optimization/52046
331 * tree-vect-patterns.c (check_bool_pattern): Give up if
332 a comparison could throw.
333
334 PR debug/52048
335 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
336
337 2012-01-30 Richard Guenther <rguenther@suse.de>
338
339 PR tree-optimization/52045
340 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
341 SSA form if cfgcleanup did anything.
342
343 2012-01-30 Richard Guenther <rguenther@suse.de>
344
345 PR tree-optimization/52045
346 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
347 before computing final todo.
348
349 2012-01-30 Richard Guenther <rguenther@suse.de>
350
351 PR tree-optimization/51528
352 * tree-sra.c (sra_modify_assign): Re-factor in preparation
353 for PR51528 fix.
354
355 2012-01-30 Paolo Bonzini <bonzini@gnu.org>
356
357 * df-problems.c (df_kill_notes): Check that the use refers
358 to the note under examination.
359
360 2012-01-30 Eric Botcazou <ebotcazou@adacore.com>
361
362 PR target/51920
363 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
364 parameter and use short-lived pseudos.
365 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
366 (sparc_expand_vector_init): Const-ify local variables and adjust
367 calls to above functions.
368
369 2012-01-30 Georg-Johann Lay <avr@gjlay.de>
370
371 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
372
373 2012-01-29 Sandra Loosemore <sandra@codesourcery.com>
374
375 * doc/invoke.texi: Make usage of "compile time" and
376 "run time"/"runtime" consistent throughout the file.
377
378 2012-01-29 Uros Bizjak <ubizjak@gmail.com>
379
380 * config/alpha/alpha.c (alpha_option_overrride): Default to
381 full IEEE compliance mode for Go language.
382
383 2011-01-29 Tijl Coosemans <tijl@coosemans.org>
384
385 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
386 (LINK_SSP_SPEC): Define.
387
388 2012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
389
390 PR target/51871
391 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
392 stubs.
393
394 2012-01-28 Sandra Loosemore <sandra@codesourcery.com>
395
396 * doc/invoke.texi: Correct hyphenation of "floating point",
397 "double precision", and related terminology throughout the file.
398
399 2012-01-28 Jakub Jelinek <jakub@redhat.com>
400
401 PR target/52006
402 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
403 arm_general_register_operand predicate for operand 2 instead of
404 register_operand.
405
406 2012-01-27 Ian Lance Taylor <iant@google.com>
407
408 PR go/47656
409 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
410 * builtins.c (expand_builtin_init_trampoline): Add onstack
411 parameter. Change caller.
412 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
413 * tree.c (build_common_builtin_nodes): Declare
414 __builtin_init_heap_trampoline.
415
416 2012-01-27 Georg-Johann Lay <avr@gjlay.de>
417
418 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
419 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
420 * config/avr/avr.c: Ditto.
421 (avr_regnames): Remove because unused.
422 * config/avr/avr.md (*cpse.ne): New peephole.
423 (*cpse.eq): New peephole from former cpse peepholes.
424
425 2012-01-27 Michael Eager <eager@eagercon.com>
426
427 * config/microblaze.c (microblaze_emit_compare): Correct
428 test after pcmp instruction.
429
430 2012-01-27 Richard Guenther <rguenther@suse.de>
431
432 PR tree-optimization/52020
433 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
434
435 2012-01-27 Richard Guenther <rguenther@suse.de>
436
437 * ipa-pure-const.c (check_stmt): Clobbers do not make a
438 function non-const/pure.
439
440 2012-01-27 Richard Guenther <rguenther@suse.de>
441
442 PR tree-optimization/50444
443 * tree-sra.c (build_ref_for_offset): Properly adjust the
444 MEM_REF type for unaligned accesses.
445
446 2012-01-27 Richard Guenther <rguenther@suse.de>
447
448 PR tree-optimization/50444
449 * expr.c (mem_ref_refers_to_non_mem_p): New function.
450 (expand_assignment): Use it. Properly handle misaligned
451 bases when expanding stores to component references.
452 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
453 refactor that case.
454
455 2012-01-27 Andrey Belevantsev <abel@ispras.ru>
456
457 PR middle-end/51389
458 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
459 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
460 * tree-data-ref.c (find_data_references_in_loop): Make static.
461 (compute_all_dependences): Change return type to bool. Bail out
462 for too many datarefs in a loop. Move the hunk resetting the data
463 dependences vector from ...
464 (compute_data_dependences_for_loop): ... here. Account for
465 compute_all_dependences returning false.
466 (compute_data_dependences_for_bb): Likewise.
467 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
468 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
469
470 2012-01-27 Richard Guenther <rguenther@suse.de>
471
472 PR middle-end/51959
473 * expr.c (store_field): Use the alias-set of the scratch memory
474 for storing to it.
475
476 2012-01-27 Tom de Vries <tom@codesourcery.com>
477
478 PR tree-optimization/51990
479 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
480 WITH_SIZE_EXPR.
481 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
482
483 2012-01-27 Jakub Jelinek <jakub@redhat.com>
484
485 PR debug/52001
486 * var-tracking.c (reverse_op): Don't add any reverse operation
487 if V already has any constant locations.
488
489 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
490
491 * doc/invoke.texi: Correct usage of "command line" (noun)
492 vs "command-line" (adjective) throughout.
493
494 2012-01-27 Sandra Loosemore <sandra@codesourcery.com>
495
496 * doc/invoke.texi (Language Independent Options): Move
497 -Wcoverage-mismatch blurb from here....
498 (Warning Options): ...to here.
499
500 2012-01-27 Peter Bergner <bergner@vnet.ibm.com>
501
502 * config/rs6000/rs6000.c (rs6000_option_override_internal):
503 Set rs6000_always_hint to false for 476.
504
505 2012-01-27 Matthias Klose <doko@ubuntu.com>
506
507 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
508 system root.
509 * incpath.c (add_standard_paths): Likewise.
510
511 2012-01-27 Richard Henderson <rth@redhat.com>
512
513 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
514 * config/m68k/sync.md (atomic_test_and_set): Rename from
515 sync_test_and_setqi and adjust the operands.
516 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
517 and unconditionally enable.
518
519 2012-01-27 Richard Henderson <rth@redhat.com>
520
521 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
522 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
523 (ldstub): Rename from ldstubqi.
524 (ldstub<I24MODE>): Remove.
525
526 2012-01-27 Richard Henderson <rth@redhat.com>
527
528 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
529 * c-cppbuiltin.c (cpp_atomic_builtins): Define
530 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
531 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
532 * doc/tm.texi: Rebuild.
533
534 2012-01-27 Richard Henderson <rth@redhat.com>
535
536 * optabs.c (gen_atomic_test_and_set): Remove default.
537 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
538
539 2012-01-26 Jakub Jelinek <jakub@redhat.com>
540
541 PR rtl-optimization/51978
542 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
543 (combine_reaching_defs): Likewise.
544 (struct re_info): Remove.
545 (add_removable_extension): Remove x and data arguments,
546 add insn, insn_list and def_map. Use the arguments directly
547 instead of using struct re_info.
548 (find_removable_extensions): Don't call add_removable_extension
549 through note_stores, instead just call it with single_set
550 result if non-NULL.
551 (find_and_remove_re): Pass curr_cand->expr instead of
552 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
553
554 2012-01-26 Michael Matz <matz@suse.de>
555
556 PR tree-optimization/46590
557 * cfgexpand.c: Revert last change (r183305).
558 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
559 regs.
560 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
561 checking for emptiness.
562
563 2012-01-26 Jakub Jelinek <jakub@redhat.com>
564
565 PR middle-end/51895
566 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
567 non-addressable non-BLKmode base correctly.
568
569 2012-01-26 Michael Matz <matz@suse.de>
570
571 PR tree-optimization/48794
572 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
573 regions referenced from RESX/EH_DISPATCH.
574
575 2012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
576
577 * config/s390/s390.h: Make BRANCH_COST an option.
578 * config/s390/s390.opt: New option -mbranch-cost.
579
580 2012-01-26 Richard Henderson <rth@redhat.com>
581
582 Revert 2012-01-24 change:
583 * trans-mem.c (requires_barrier): Do not instrument thread local
584 variables and emit save/restore for them.
585
586 2012-01-25 Jakub Jelinek <jakub@redhat.com>
587
588 PR middle-end/51986
589 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
590 for pat == 0.
591
592 2012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
593
594 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
595 ASM_OPERANDS.
596
597 2012-01-25 Georg-Johann Lay <avr@gjlay.de>
598
599 PR target/49868
600 Rename __pgm to __flash.
601 Rename __pgm1 to __flash1.
602 Rename __pgm2 to __flash2.
603 Rename __pgm3 to __flash3.
604 Rename __pgm4 to __flash4.
605 Rename __pgm5 to __flash5.
606 Rename __pgmx to __memx.
607 * doc/extend.texi (AVR Named Address Spaces)
608 Rename address space names as indicated above.
609 * config/avr/avr.c (avr_addrspace): Ditto.
610
611 * config/avr/avr-protos.h
612 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
613 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
614 * config/avr/predicates.md: Ditto.
615 * config/avr/avr.c Ditto, and
616 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
617 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
618
619 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
620 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
621 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
622 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
623 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
624 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
625 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
626 * config/avr/avr.c: Ditto.
627 * config/avr/avr.md: Ditto.
628
629 2012-01-25 Jason Merrill <jason@redhat.com>
630
631 PR c++/51992
632 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
633
634 2012-01-25 Jakub Jelinek <jakub@redhat.com>
635
636 PR tree-optimization/51987
637 * tree-data-ref.c (get_references_in_stmt): Handle references in
638 non-volatile GIMPLE_ASM.
639
640 2012-01-25 Richard Guenther <rguenther@suse.de>
641
642 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
643 bases are dereferenced.
644
645 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
646
647 PR rtl-optimization/48374
648 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
649
650 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
651
652 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
653 compute_data_dependences_for_loop returns false.
654 * tree-parloops.c (loop_parallel_p): Likewise.
655
656 2012-01-25 Richard Guenther <rguenther@suse.de>
657
658 * tree.h (get_pointer_alignment_1): Declare.
659 * builtins.c (get_pointer_alignment_1): New function.
660 (get_pointer_alignment): Use it.
661
662 2012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
663
664 PR rtl-optimization/48308
665 * combine.c (enum undo_kind): Add UNDO_LINKS.
666 (struct undo): Add member l to other_contents and where.
667 (do_SUBST_LINK): New.
668 (SUBST_LINK): New.
669 (try_combine): Handle LOG_LINKS for the dummy i1 case.
670 (undo_all): Handle UNDO_LINKS.
671
672 2012-01-25 Richard Henderson <rth@redhat.com>
673
674 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
675 mem inputs.
676
677 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
678
679 * optabs.c (gen_atomic_test_and_set): Use each argument.
680
681 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
682
683 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
684 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
685 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
686 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
687 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
688 TARGET_PAIRED_SINGLE_FLOAT.
689
690 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
691
692 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
693 (in_struct, return_val): Remove MEM documentation.
694 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
695 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
696 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
697 and MEM_SCALAR.
698 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
699 * cfgexpand.c (add_alias_set_conflicts): Likewise.
700 * expr.c (store_field): Likewise.
701 * function.c (assign_stack_temp_for_type): Likewise.
702 * ifcvt.c (noce_try_cmove_arith): Likewise.
703 * reload1.c (reload): Likewise.
704 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
705 (alpha_set_memflags): Likewise.
706 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
707
708 2012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
709
710 * rtl.h (true_dependence, canon_true_dependence): Remove varies
711 parameter.
712 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
713 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
714 (true_dependence_1, true_dependence, canon_true_dependence): Remove
715 varies parameter.
716 * cselib.c (cselib_rtx_varies_p): Delete.
717 (cselib_invalidate_mem): Update call to canon_true_dependence.
718 * dse.c (record_store, check_mem_read_rtx): Likewise.
719 (scan_reads_nospill): Likewise.
720 * cse.c (check_dependence): Likewise.
721 (cse_rtx_varies_p): Delete.
722 * expr.c (safe_from_p): Update call to true_dependence.
723 * ira.c (validate_equiv_mem_from_store): Likewise.
724 (memref_referenced_p): Likewise.
725 * postreload-gcse.c (find_mem_conflicts): Likewise.
726 * sched-deps.c (sched_analyze_2): Likewise.
727 * store-motion.c (load_kills_store): Likewise.
728 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
729 * gcse.c (mems_conflict_for_gcse_p): Likewise.
730 (compute_transp): Update call to canon_true_dependence.
731
732 2012-01-25 Richard Henderson <rth@redhat.com>
733
734 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
735 (maybe_emit_atomic_test_and_set): New.
736 (expand_sync_lock_test_and_set): Use it.
737 (expand_atomic_test_and_set): Likewise.
738 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
739 the implementation; clarify implementation defined details.
740 * doc/md.texi (atomic_test_and_set): Document.
741
742 2012-01-25 Richard Henderson <rth@redhat.com>
743
744 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
745
746 2012-01-25 Richard Henderson <rth@redhat.com>
747
748 PR target/51968
749 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
750 to effect no-op split.
751
752 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
753
754 PR lto/51698
755 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
756 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
757 (BT_FN_VOID_PTR_INT_SIZE): New.
758 (BT_FN_UINT_UINT_VAR): Remove.
759 (BT_FN_UINT32_UINT32_VAR): New.
760 (BT_FN_DOUBLE_VPTR): Remove.
761 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
762
763 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
764 (_ITM_changeTransactionMode): Same.
765 (_ITM_memmoveRtWt): Change return type to void.
766 (_ITM_memcpyRtWt): Same.
767 (_ITM_memsetW): Same.
768 (_ITM_RaRD): Change types to double.
769 (_ITM_RD): Same.
770 (_ITM_RaWD): Same.
771 (_ITM_RfWD): Same.
772
773 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
774
775 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
776 Patrick Marlier <patrick.marlier@gmail.com>
777
778 * trans-mem.c (requires_barrier): Do not instrument thread local
779 variables and emit save/restore for them.
780
781 2012-01-24 Jason Merrill <jason@redhat.com>
782
783 PR c++/51812
784 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
785 output static aliases.
786
787 2012-01-24 Jakub Jelinek <jakub@redhat.com>
788
789 PR driver/47249
790 * common.opt (-pie, -shared, pie, shared): Change from Common to
791 Driver.
792 * gcc.c (display_help): Display help for -pie and -shared.
793
794 2012-01-24 Georg-Johann Lay <avr@gjlay.de>
795
796 PR target/49868
797 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
798 Remove note on size/offset limitation.
799 (AVR Variable Attributes): Add example how to read data located
800 with progmem. Refer to named address spaces.
801 * doc/invoke.texi (AVR Options): Fix typo.
802
803 2012-01-24 Richard Guenther <rguenther@suse.de>
804
805 Forward-port to trunk
806 2010-09-21 Jakub Jelinek <jakub@redhat.com>
807
808 PR middle-end/45678
809 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
810 op0 isn't sufficiently aligned and there is movmisalignM
811 insn for mode, use it to load op0 into a temporary register.
812
813 2012-01-24 Jakub Jelinek <jakub@redhat.com>
814
815 PR target/51957
816 * target.def (const_not_ok_for_debug_p): New hook.
817 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
818 documentation.
819 * doc/tm.texi: Regenerated.
820 * dwarf2out.c (const_ok_for_output_1): If
821 targetm.const_not_ok_for_debug_p returns true, fail.
822 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
823 function.
824 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
825
826 2012-01-23 Kai Tietz <ktietz@redhat.com>
827
828 PR target/51900
829 * config/i386/predicates.md (symbolic_operand): Allow
830 UNSPEC_PCREL as PIC expression for lea.
831 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
832 * config/i386/i386.c (ix86_delegitimize_address): Handle
833 UNSPEC_PCREL for none-MEM, too.
834
835 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
836
837 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
838 (ipa_tm_create_version_alias): Same.
839
840 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
841
842 PR libitm/51830
843 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
844 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
845
846 2012-01-23 Aldy Hernandez <aldyh@redhat.com>
847 Patrick Marlier <patrick.marlier@gmail.com>
848 Iain Sandoe <developer@sandoe-acoustics.co.uk>
849
850 PR lto/51916
851 * lto-wrapper.c (run_gcc): Pass the LTO section name to
852 simple_object_start_read.
853
854 2012-01-23 Richard Guenther <rguenther@suse.de>
855
856
857 PR tree-optimization/51895
858 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
859 parameter decomposition into BLKmode components.
860
861 2012-01-23 Eric Botcazou <ebotcazou@adacore.com>
862
863 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
864 fake variables for restrict-qualified pointers whose pointed-to type
865 contains a placeholder.
866
867 2012-01-23 Richard Guenther <rguenther@suse.de>
868
869 PR tree-optimization/51949
870 * ipa-split.c (execute_split_functions): Do not split malloc functions.
871
872 2012-01-23 Jakub Jelinek <jakub@redhat.com>
873
874 PR rtl-optimization/51933
875 * ree.c (transform_ifelse): Return true right away if dstreg is
876 already wider or equal to cand->mode.
877 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
878 (make_defs_and_copies_lists): Remove defs_list and copies_list
879 arguments, add state argument, just truncate state->work_list
880 instead of always allocating and freeing the vector. Assert that
881 get_defs succeeds instead of returning 2. Changed return type to bool.
882 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
883 have ext_src_mode, see if it has been modified already with the
884 right kind of extension and has been extended before from the
885 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
886 just return true. Remember the original mode in state->modified array.
887 (combine_reaching_defs): Add state argument. Don't allocate and
888 free here def_list, copied_list and vec vectors, instead just
889 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
890 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
891 Add state variable, clear vectors in it, initialize state.modified
892 if needed. Free all the vectors at the end and state.modified too.
893 Don't skip a candidate if the extension expression has been modified.
894
895 2012-01-22 Douglas B Rupp <rupp@gnat.com>
896
897 PR target/47096
898 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
899 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
900 (extra_options) interix.opt -> i386/interix.opt"
901 (extra_objs):Add winnt-stubs.o
902 * configure.ac: Add interix to target_os .comm on PE check.
903 * configure: Regenerate.
904 * config/interix3.h: Delete and move bits to..
905 * config/interix.h: Delete and move bits to..
906 * config/i386/i386-interix3.h: Delete and move bits to..
907 * config/i386/i386-interix.h: ..here.
908 (TARGET_CPU_DEFAULT): Remove redefinition.
909 (TARGET_ASM_CONSTRUCTOR): Undefine.
910 (SUBTARGET_SWITCHES): Define for ms-bitfields.
911 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
912 (PTRDIFF_TYPE): Define.
913 (LONG_DOUBLE_TYPE_SIZE): Define.
914 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
915 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
916 (TARGET_SECTION_TYPE_FLAGS): Define.
917 (ASM_DECLARE_FUNCTION_NAME): Define.
918 (ASM_OUTPUT_EXTERNAL): Define.
919 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
920 (ASM_OUTPUT_ALIGNED_BSS): Define.
921 (PCC_BITFIELD_TYPE_MATTERS): Define.
922 (USE_CONST_SECTION): Define.
923 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
924 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
925 (SUPPORTS_ONE_ONLY): Remove.
926 (I386_PE_STRIP_ENCODING): Define.
927 * config/interix.opt: Delete and move bits to..
928 * config/i386/interix.opt: ..here. New.
929 (mpe-aligned-commons): Add.
930 * config/i386/t-interix: Add copyright header.
931 (winnt-stubs.o): Add rule.
932
933 2012-01-22 Jason Merrill <jason@redhat.com>
934
935 PR c++/51832
936 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
937 for extra name aliases.
938
939 2012-01-22 Eric Botcazou <ebotcazou@adacore.com>
940
941 PR rtl-optimization/51924
942 * ree.c (combine_set_extension): Improve debugging message.
943 (combine_reaching_defs): Likewise.
944 (get_defs): Rename confusingly named variable.
945 (find_and_remove_re): Skip a candidate if the extension expression has
946 been modified.
947
948 2012-01-21 Robert Millan <rmh@gnu.org>
949 Gerald Pfeifer <gerald@pfeifer.com>
950
951 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
952 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
953
954 2012-01-20 Jakub Jelinek <jakub@redhat.com>
955
956 PR tree-optimization/51914
957 * tree-vect-stmts.c (vectorizable_conversion): For
958 cvt_type && modifier == WIDEN, put temporary with cvt_type
959 at the beginning of vec_dsts and set vec_dest to temporary
960 with vectype_out.
961
962 2012-01-20 Eric Botcazou <ebotcazou@adacore.com>
963
964 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
965
966 2011-01-20 Tijl Coosemans <tijl@coosemans.org>
967
968 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
969 * config/rs6000/rs6000.c: Likewise.
970
971 2012-01-20 Jakub Jelinek <jakub@redhat.com>
972
973 PR target/51915
974 * config/arm/arm.c (arm_count_output_move_double_insns): Call
975 output_move_double on a copy of operands array.
976
977 2012-01-20 Cary Coutant <ccoutant@google.com>
978 Dodji Seketeli <dodji@redhat.com>
979
980 PR debug/45682
981 * dwarf2out.c (copy_declaration_context): Return ref to parent
982 of declaration DIE, if necessary.
983 (remove_child_or_replace_with_skeleton): Add new parameter; update
984 caller. Place skeleton DIE under parent DIE of original declaration.
985 Move call to copy_declaration_context to here ...
986 (break_out_comdat_types): ... from here.
987
988 2012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
989
990 PR rtl-optimization/51856
991 * reload.c (find_reloads_subreg_address): Set the address_reloaded
992 flag to reloaded.
993
994 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
995
996 PR target/51819
997 * config/arm/arm.c (arm_print_operand): Correct output of alignment
998 hints for neon loads and stores.
999
1000 2012-01-20 Georg-Johann Lay <avr@gjlay.de>
1001
1002 PR target/49868
1003 PR target/50887
1004 * doc/extend.texi (Named Address Spaces): Split into subsections.
1005 (AVR Named Address Spaces): New subsection.
1006 (M32C Named Address Spaces): New subsection.
1007 (RL78 Named Address Spaces): New subsection.
1008 (SPU Named Address Spaces): New subsection.
1009 (Variable Attributes): New anchor "AVR Variable Attributes".
1010 (AVR Variable Attributes): Rewrite and avoid wording
1011 "address space" in this context.
1012 * doc/invoke.texi (AVR Options): Rewrite and add documentation
1013 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
1014 (AVR Built-in Macros): New subsubsection therein.
1015 * doc/md.texi (AVR constraints): Remove "C04", "R".
1016
1017 2012-01-20 Richard Guenther <rguenther@suse.de>
1018
1019 PR tree-optimization/51903
1020 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
1021 when removing stmts.
1022
1023 2012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1024
1025 PR target/50313
1026 * config/arm/arm.c (arm_load_pic_register): Use
1027 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
1028 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
1029 (arm_pic_static_addr): Likewise.
1030 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
1031 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
1032 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
1033 (pic_load_addr_unified): New.
1034
1035 2012-01-20 Andrey Belevantsev <abel@ispras.ru>
1036
1037 PR target/51106
1038 * function.c (instantiate_virtual_regs_in_insn): Use
1039 delete_insn_and_edges when removing a wrong asm insn.
1040
1041 2012-01-19 Vladimir Makarov <vmakarov@redhat.com>
1042
1043 PR rtl-optimization/40761
1044 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
1045 Add new member loop_num.
1046 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
1047 (ira_build): Remove the parameter.
1048
1049 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
1050 (ira.c): Do not build CFG loops for one region allocation. Remove
1051 argument from ira_build call.
1052
1053 * ira-build.c (init_loop_tree_node): New function.
1054 (create_loop_tree_nodes): Use it. Separate the case when CFG
1055 loops are not built.
1056 (more_one_region_p): Check current_loops.
1057 (finish_loop_tree_nodes): Separate the case when CFG loops are not
1058 built.
1059 (add_loop_to_tree): Process loop equal to NULL too.
1060 (form_loop_tree): Separate the case when CFG loops are not built.
1061 Use explicitly number for the root.
1062 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
1063 an assertion.
1064 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
1065 instead of loop->num.
1066 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
1067 (mark_all_loops_for_removal): Ditto.
1068 (remove_unnecessary_regions): Separate the case when CFG loops
1069 are not built.
1070 (ira_build): Remove the parameter. Use explicit number of regions
1071 when CFG loops are not built.
1072
1073 * ira-color.c (print_loop_title): Separate the case for the root node.
1074 Use loop_num instead of loop->num.
1075 (move_spill_restore): Use loop_num instead of loop->num.
1076
1077 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
1078 (change_loop): Ditto.
1079 (change_loop): Use loop_num instead of loop->num.
1080
1081 * ira-lives.c (process_bb_node_lives): Ditto.
1082
1083 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
1084
1085 * ira-conflicts.c (print_allocno_conflicts): Ditto.
1086
1087 2012-01-19 Jakub Jelinek <jakub@redhat.com>
1088
1089 PR libmudflap/40778
1090 * tree-mudflap.c (mf_artificial): New function.
1091 (execute_mudflap_function_ops, execute_mudflap_function_decls,
1092 mx_register_decls, mudflap_enqueue_decl): Use it.
1093
1094 PR target/51876
1095 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
1096 numbers in the insn pattern.
1097
1098 2012-01-19 Michael Matz <matz@suse.de>
1099
1100 PR tree-optimization/46590
1101 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
1102 use it in remembering which conflicts we already created.
1103 (add_scope_conflicts): Adjust call to above, (de)allocate helper
1104 bitmap.
1105
1106 2012-01-19 Aldy Hernandez <aldyh@redhat.com>
1107
1108 PR lto/51280
1109 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
1110 (merge_and_complain): Same.
1111
1112 2012-01-19 Jakub Jelinek <jakub@redhat.com>
1113
1114 PR bootstrap/50237
1115 * config/initfini-array.h: Guard content of the header
1116 with #ifdef HAVE_INITFINI_ARRAY.
1117 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
1118 Add initfini-array.h to tm_file here.
1119 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
1120 * config.gcc: Don't add initfini-array.h to tm_file here.
1121 * configure: Regenerated.
1122
1123 2012-01-19 Andrey Belevantsev <abel@ispras.ru>
1124
1125 PR rtl-optimization/51505
1126 * df-problems.c (df_kill_notes): New parameter live. Update comment.
1127 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
1128 (df_note_bb_compute): Update the call to df_kill_notes.
1129
1130 2012-01-18 Aldy Hernandez <aldyh@redhat.com>
1131
1132 * trans-mem.c (requires_barrier): Remove call to is_global_var.
1133
1134 2012-01-18 Richard Guenther <rguenther@suse.de>
1135
1136 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
1137 of conversions to void *.
1138
1139 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1140 Richard Sandiford <rdsandiford@googlemail.com>
1141
1142 PR middle-end/50325
1143 PR middle-end/51192
1144 * optabs.h (simplify_expand_binop): Declare.
1145 * optabs.c (simplify_expand_binop): Make global.
1146 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
1147 endian targets if the source cannot be exactly covered by word
1148 mode chunks.
1149
1150 2012-01-17 Jakub Jelinek <jakub@redhat.com>
1151
1152 PR bootstrap/51872
1153 * hard-reg-set.h (struct hard_reg_set_container): New type.
1154 * target.h (struct hard_reg_set_container): Forward declare.
1155 * target.def (set_up_by_prologue): New target hook.
1156 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
1157 * doc/tm.texi: Regenerated.
1158 * function.c (thread_prologue_and_epilogue_insns): Change
1159 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
1160 Call targetm.set_up_by_prologue on it.
1161 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
1162 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
1163
1164 2012-01-17 Nick Clifton <nickc@redhat.com>
1165
1166 * config/rx/rx.c (rx_can_use_simple_return): New function.
1167 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
1168 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
1169
1170 2012-01-17 Richard Guenther <rguenther@suse.de>
1171
1172 PR middle-end/51782
1173 * expr.c (expand_assignment): Take address-space information
1174 from the address operand of MEM_REF and TARGET_MEM_REF.
1175 (expand_expr_real_1): Likewise.
1176
1177 2012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1178
1179 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
1180 reload dump is requested.
1181
1182 2012-01-17 Aldy Hernandez <aldyh@redhat.com>
1183
1184 PR other/51165
1185 * trans-mem.c (requires_barrier): Call may_be_aliased.
1186
1187 2012-01-17 Jakub Jelinek <jakub@redhat.com>
1188
1189 PR tree-optimization/51877
1190 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
1191 call arguments and fndecls compare equal, instead return false if they
1192 don't. Return true only if lhs1 and lhs2 are either both NULL, or
1193 both SSA_NAMEs that are valueized the same, or they satisfy
1194 operand_equal_p.
1195
1196 2012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1197
1198 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
1199 Solaris 11+.
1200 * configure: Regenerate.
1201
1202 2012-01-16 Jan Hubicka <jh@suse.cz>
1203
1204 PR c/12245
1205 PR c++/14179
1206 * convert.c (convert_to_integer): Use fold_convert for
1207 converting an INTEGER_CST to integer type.
1208
1209 2012-01-16 Jason Merrill <jason@redhat.com>
1210
1211 PR c++/14179
1212 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
1213
1214 2012-01-16 Jakub Jelinek <jakub@redhat.com>
1215
1216 PR bootstrap/51860
1217 * config/s390/s390.c (s390_chunkify_start): Don't skip
1218 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
1219 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
1220 If insn is followed by NOTE_INSN_VAR_LOCATION or
1221 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
1222 Don't use location of note insns.
1223
1224 PR tree-optimization/51865
1225 * tree-inline.c (tree_function_versioning): Call remap_decl
1226 on DECL_RESULT whenever it has VOID_TYPE_P type.
1227
1228 2012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
1229
1230 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
1231 for calls to locally-binding MIPS16 functions if only the return
1232 type uses float regs.
1233
1234 2012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
1235 Richard Sandiford <rdsandiford@googlemail.com>
1236
1237 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
1238 (SYMBOL_32_HIGH): Likewise.
1239 (mips_output_tls_reloc_directive): Declare.
1240 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
1241 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
1242 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
1243 (mips_lo_relocs, mips_hi_relocs): Make extern.
1244 (mips16_stub_function): Move up file.
1245 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
1246 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
1247 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
1248 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
1249 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
1250 (mips_get_tp): Add MIPS16 support.
1251 (mips_legitimize_tls_address): Remove MIPS16 sorry().
1252 Generalize DTPREL and TPREL handling.
1253 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
1254 Add MIPS16 TLS support.
1255 (mips_output_tls_reloc_directive): New function.
1256 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
1257 * config/mips/predicates.md (symbolic_operand_with_high)
1258 (tls_reloc_operand): New predicates.
1259 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
1260 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
1261 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
1262 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
1263 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
1264 (*tls_get_tp_mips16_call_<mode>): Likewise.
1265
1266 2012-01-15 Uros Bizjak <ubizjak@gmail.com>
1267
1268 PR rtl-optimization/51821
1269 * recog.c (peep2_find_free_register): Determine clobbered registers
1270 from insn pattern.
1271
1272 2012-01-14 Denis Chertykov <chertykov@gmail.com>
1273
1274 PR target/50925
1275 * config/avr/avr-protos.h: Revert change of 2012-01-09.
1276 * config/avr/avr.c: Likewise.
1277 * config/avr/avr.h: Likewise.
1278
1279 2012-01-13 Ian Lance Taylor <iant@google.com>
1280
1281 PR c++/50012
1282 * tree.h (TYPE_QUALS): Add cast to int.
1283 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
1284
1285 2012-01-13 Ian Lance Taylor <iant@google.com>
1286
1287 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
1288 comparing param_index to VEC_length result.
1289
1290 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
1291
1292 * c-decl.c: Do not include tree-mudflap.h
1293 * tree-optimize.c: Likewise.
1294 * Makefile.in: Update dependencies.
1295
1296 2012-01-13 Richard Guenther <rguenther@suse.de>
1297
1298 PR middle-end/8081
1299 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
1300 variable-sized result always use RSO.
1301
1302 2012-01-12 DJ Delorie <dj@redhat.com>
1303
1304 * cfgexpand.c (convert_debug_memory_address): Allow any valid
1305 pointer type, not just the default pointer type.
1306
1307 2012-01-09 Richard Henderson <rth@redhat.com>
1308 Denis Chertykov <chertykov@gmail.com>
1309
1310 PR target/50925
1311 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
1312 * config/avr/avr.c (avr_can_eliminate): Simplify.
1313 (avr_initial_elimination_offset): Likewise.
1314 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
1315 (expand_epilogue): Likewise.
1316 (avr_legitimize_address): Gut.
1317 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
1318 (avr_hard_regno_nregs): New.
1319 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
1320 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
1321 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
1322 add soft frame pointer.
1323 (CALL_USED_REGISTERS): Likewise.
1324 (REG_CLASS_CONTENTS): Likewise.
1325 (REGISTER_NAMES): Likewise.
1326 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
1327 (HARD_FRAME_POINTER_REGNUM): New.
1328 (FRAME_POINTER_REGNUM): Use soft frame pointer.
1329 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
1330 remove the HARD_FRAME_POINTER self-elimination.
1331
1332 2012-01-12 Georg-Johann Lay <avr@gjlay.de>
1333
1334 PR target/51756
1335 * config/avr/avr.c (avr_encode_section_info): Test for absence of
1336 DECL_EXTERNAL when checking for initializers of progmem variables.
1337
1338 2012-01-12 Ira Rosen <irar@il.ibm.com>
1339
1340 PR tree-optimization/51799
1341 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
1342 that the last operation is a type demotion.
1343
1344 2012-01-12 Uros Bizjak <ubizjak@gmail.com>
1345
1346 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
1347 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
1348
1349 2012-01-11 Jakub Jelinek <jakub@redhat.com>
1350
1351 PR bootstrap/51796
1352 * combine.c (distribute_notes): If i3 is a noreturn call,
1353 allow old_size to be equal to args_size and make sure the
1354 noreturn call gets REG_ARGS_SIZE note.
1355 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
1356 on noreturn calls even when the delta is 0.
1357
1358 2012-01-11 Nathan Sidwell <nathan@acm.org>
1359
1360 * gcov.c (STRING_SIZE): Remove.
1361 (generate_results): Erase annotations for source files with no
1362 coverage information.
1363 (read_line): New.
1364 (output_lines): Use it.
1365
1366 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
1367
1368 * gimple.h (gimplify_body): Remove first argument.
1369 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
1370 pointer set here, instead just pass DATA to walk_tree.
1371 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
1372 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
1373 (unvisit_body): Likewise, but with unmark_visited.
1374 (gimplify_body): Remove BODY_P argument and adjust.
1375 (gimplify_function_tree): Adjust call to gimplify_body.
1376 * omp-low.c (finalize_task_copyfn): Likewise.
1377
1378 2012-01-11 Eric Botcazou <ebotcazou@adacore.com>
1379
1380 * tree.h (build_function_decl_skip_args): Add boolean parameter.
1381 (build_function_type_skip_args): Delete.
1382 * tree.c (build_function_type_skip_args): Make static and add
1383 SKIP_RETURN parameter. Fix thinko in the handling of variants.
1384 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
1385 pass it to build_function_type_skip_args.
1386 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
1387 (tree_function_versioning): Likewise.
1388 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
1389 build_function_decl_skip_args.
1390 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
1391 and pass it to build_function_decl_skip_args/tree_function_versioning.
1392 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
1393 * ipa-inline-transform.c (save_inline_function_body): Likewise.
1394 * trans-mem.c (ipa_tm_create_version): Likewise.
1395 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
1396 * tree-inline.c (declare_return_variable): Remove always-true test.
1397 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
1398 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
1399 * ipa-split.c (split_function): Skip the return value for the split
1400 part if it doesn't return.
1401
1402 2012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1403
1404 PR tree-optimization/49642
1405 * ipa-split.c (forbidden_dominators): New variable.
1406 (check_forbidden_calls): New function.
1407 (dominated_by_forbidden): Likewise.
1408 (consider_split): Check for forbidden dominators.
1409 (execute_split_functions): Initialize and free forbidden
1410 dominators info; call check_forbidden_calls.
1411
1412 2012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1413
1414 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
1415
1416 2012-01-11 Nick Clifton <nickc@redhat.com>
1417
1418 * config/rx/rx.md (return): Define pattern.
1419
1420 2012-01-11 Richard Guenther <rguenther@suse.de>
1421
1422 * doc/extend.texi (malloc attribute): Adjust according to
1423 implementation.
1424
1425 2012-01-10 Aldy Hernandez <aldyh@redhat.com>
1426 Patrick Marlier <patrick.marlier@gmail.com>
1427
1428 PR middle-end/51516
1429 * trans-mem.c (get_cg_data): Traverse aliases if requested.
1430 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
1431 (ipa_tm_note_irrevocable): Same.
1432 (ipa_tm_scan_irr_block): Same.
1433 (ipa_tm_decrement_clone_counts): Same.
1434 (ipa_tm_scan_irr_function): Same.
1435 (ipa_tm_create_version_alias): Same.
1436 (ipa_tm_create_version): Same.
1437 (ipa_tm_transform_calls_redirect): Same.
1438 (ipa_tm_transform_calls): Same.
1439 (ipa_tm_transform_transaction): Same.
1440 (ipa_tm_execute): Same.
1441
1442 2012-01-10 Richard Guenther <rguenther@suse.de>
1443
1444 PR middle-end/51806
1445 * opts.c (common_handle_option): Handle -Werror.
1446
1447 2012-01-10 Andreas Schwab <schwab@linux-m68k.org>
1448
1449 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
1450 operand number.
1451
1452 2012-01-10 Jason Merrill <jason@redhat.com>
1453
1454 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
1455 information.
1456
1457 2012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1458
1459 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
1460 supports R_386_TLS_GD_PLT reloc.
1461 (gcc_cv_as_ix86_tlsldmplt): Check if linker
1462 supports R_386_TLS_LDM_PLT reloc.
1463 * configure: Regenerate.
1464 * config.in: Regenerate.
1465
1466 2012-01-10 Georg-Johann Lay <avr@gjlay.de>
1467
1468 PR target/49868
1469 Extend __pgmx semantics to linearize memory.
1470 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
1471 determine if code comes inline or from libgcc.
1472 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
1473 (movmem_qi, movmem_qi): Set constraint #2 to "n".
1474 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
1475 (movmemx_qi, movmemx_hi): New insns.
1476 (xload_<mode>_libgcc): Rewrite to new insn condition.
1477 (xload_<mode>): Remove insns.
1478 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
1479 cases that don't satisfy avr_xload_libgcc_p().
1480 (avr_addr_space_convert): Allow converting in any direction.
1481 (avr_addr_space_subset_p): Return always true.
1482 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
1483 (avr_emit_movmemhi): Ditto.
1484 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
1485 (avr_out_movmem): Ditto.
1486 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
1487 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
1488 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
1489 (avr_encode_section_info): Encode 'progmem' in symbol flags.
1490 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
1491
1492 2012-01-10 Richard Guenther <rguenther@suse.de>
1493
1494 PR tree-optimization/50913
1495 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
1496 Require data-refs to be representable by Graphite with respect
1497 to any loop nest.
1498
1499 2012-01-10 Uros Bizjak <ubizjak@gmail.com>
1500
1501 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
1502 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
1503
1504 2012-01-10 Tom de Vries <tom@codesourcery.com>
1505
1506 PR rtl-optimization/51271
1507 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
1508 handling annulled branch.
1509
1510 2012-01-10 Richard Henderson <rth@redhat.com>
1511
1512 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
1513 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
1514 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
1515 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
1516 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
1517 arm_expand_vec_perm_const): New.
1518 * config/arm/arm-protos.h: Update.
1519 * config/arm/neon.md (UNSPEC_VCONCAT): New.
1520 (*neon_vswp<VDQX>): New.
1521 (neon_vcombine<VDX>): Use neon_split_vcombine.
1522 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
1523 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
1524 (vec_perm<VE>): New.
1525
1526 2012-01-10 Richard Henderson <rth@redhat.com>
1527
1528 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
1529 use it if reload_completed.
1530 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
1531 arm_output_asm_insn, arm_process_output_memory_barrier,
1532 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
1533 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
1534 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
1535 arm_process_output_sync_insn, arm_output_sync_insn,
1536 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
1537 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
1538 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
1539 (emit_unlikely_jump): New.
1540 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
1541 (arm_split_atomic_op): New.
1542 * config/arm/arm-protos.h: Update.
1543 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
1544 (struct arm_sync_generator): Remove.
1545 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
1546 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
1547 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
1548 (VUNSPEC_LL, VUNSPEC_SC): New.
1549 (sync_result, sync_memory, sync_required_value, sync_new_value,
1550 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
1551 (attr length): Don't use arm_sync_loop_insns.
1552 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
1553 (movsfcc, movdfcc): Likewise.
1554 * config/arm/constraints.md (Ua): New.
1555 * config/arm/prediates.md (mem_noofs_operand): New.
1556 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
1557 (sync_clobber, sync_t2_reqd): Remove.
1558 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
1559 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
1560 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
1561 (arm_sync_compare_and_swap<SIDI>): Remove.
1562 (arm_sync_compare_and_swap<NARROW>): Remove.
1563 (arm_sync_lock_test_and_set<SIDI>): Remove.
1564 (arm_sync_lock_test_and_set<NARROW>): Remove.
1565 (arm_sync_new_<syncop><SIDI>): Remove.
1566 (arm_sync_new_<syncop><NARROW>): Remove.
1567 (arm_sync_new_nand<SIDI>): Remove.
1568 (arm_sync_new_nand<NARROW>): Remove.
1569 (arm_sync_old_<syncop><SIDI>): Remove.
1570 (arm_sync_old_<syncop><NARROW>): Remove.
1571 (arm_sync_old_nand<SIDI>): Remove.
1572 (arm_sync_old_nand<NARROW>): Remove.
1573 (*memory_barrier): Merge arm_output_memory_barrier.
1574 (atomic_compare_and_swap<QHSD>): New.
1575 (atomic_compare_and_swap<NARROW>_1): New.
1576 (atomic_compare_and_swap<SIDI>_1): New.
1577 (atomic_exchange<QHSD>): New.
1578 (cas_cmp_operand, cas_cmp_str): New.
1579 (atomic_op_operand, atomic_op_str): New.
1580 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
1581 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
1582 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
1583 (arm_load_exclusive<NARROW>): New.
1584 (arm_load_exclusivesi, arm_load_exclusivedi): New.
1585 (arm_store_exclusive<QHSD>): New.
1586
1587 2012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
1588
1589 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
1590 reload patterns if -mvsx-scalar-memory.
1591
1592 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
1593 generated, even -mno-vsx-scalar-double was used.
1594 (vsx_xscvdpsp_scalar): Likewise.
1595 (vsx_xscvspdp_scalar2): Likewise.
1596
1597 2012-01-09 Tom de Vries <tom@codesourcery.com>
1598 Andrew Pinski <apinski@cavium.com>
1599
1600 PR debug/51471
1601 * reorg.c (fill_slots_from_thread): Don't speculate
1602 frame-related insns.
1603
1604 2012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
1605
1606 * sched-int.h (bb_note): Move to...
1607 * basic-block.h: ...here.
1608 * haifa-sched.c (bb_note): Move to...
1609 * cfgrtl.c: ...here.
1610 * function.c (next_block_for_reg): New function.
1611 (move_insn_for_shrink_wrap): Likewise.
1612 (prepare_shrink_wrap): Rewrite to use the above.
1613
1614 2012-01-09 Aldy Hernandez <aldyh@redhat.com>
1615
1616 * gimple.c (is_gimple_non_addressable): Remove.
1617 * gimple.h: Remove is_gimple_non_addressable.
1618 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
1619 is_gimple_non_addressable.
1620 * trans-mem.c (expand_assign_tm): Same.
1621
1622 2012-01-09 Richard Guenther <rguenther@suse.de>
1623
1624 PR tree-optimization/51775
1625 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
1626 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
1627
1628 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1629
1630 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
1631 tuning parameters.
1632 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
1633
1634 2012-01-09 Richard Guenther <rguenther@suse.de>
1635
1636 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
1637
1638 2012-01-08 Jan Hubicka <jh@suse.cz>
1639
1640 PR tree-optimize/51680
1641 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
1642 on when known_vals needs to be computed; cleanup.
1643
1644 2012-01-08 Jan Hubicka <jh@suse.cz>
1645
1646 PR tree-optimize/51694
1647 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
1648
1649 2012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
1650
1651 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
1652 for -std=c++98 and -std=c++11 too.
1653
1654 2012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
1655
1656 * cfgloop.c (cancel_loop): Add free() of bbs array.
1657
1658 2012-01-07 Jan Hubicka <jh@suse.cz>
1659
1660 PR tree-optimization/51600
1661 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
1662 that benefits small functions.
1663
1664 2012-01-07 Jan Hubicka <jh@suse.cz>
1665
1666 * ipa-inline.c (want_inline_small_function_p): Fix formating.
1667
1668 2012-01-07 Jan Hubicka <jh@suse.cz>
1669
1670 PR tree-optimization/51680
1671 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
1672 whose inlining reduce unit size.
1673
1674 2012-01-07 Alexandre Oliva <aoliva@redhat.com>
1675
1676 PR bootstrap/51725
1677 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
1678 Add canonical node to containing_mem chain after the non-canonical
1679 one, even if there weren't any locs to propagate.
1680 (remove_useless_values): Keep only canonical values.
1681 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
1682 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
1683 canonicalize mem_chain elements that are not discarded.
1684
1685 2012-01-06 Jakub Jelinek <jakub@redhat.com>
1686
1687 PR target/47333
1688 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
1689 before emitting functions.
1690
1691 PR gcov-profile/50127
1692 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
1693 clear_aux_for_blocks.
1694
1695 2012-01-06 Alexandre Oliva <aoliva@redhat.com>
1696
1697 PR debug/51746
1698 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
1699
1700 2012-01-06 Arnaud Charlet <charlet@adacore.com>
1701
1702 * c-decl.c (ext_block): Moved up.
1703 (collect_all_refs, for_each_global_decl): Take ext_block into account.
1704
1705 2012-01-06 Han Shen <shenhan@google.com>
1706
1707 Translate built-in include paths for sysroot.
1708 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
1709 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
1710
1711 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
1712 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
1713
1714 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
1715 control whether sysroot should be prepended to gxx include dir.
1716
1717 * configure: Regenerate.
1718
1719 2012-01-06 Torvald Riegel <triegel@redhat.com>
1720
1721 PR rtl-optimization/51771
1722 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
1723 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
1724
1725 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
1726
1727 PR tree-optimization/51315
1728 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
1729 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
1730
1731 2012-01-05 Uros Bizjak <ubizjak@gmail.com>
1732
1733 PR target/51681
1734 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
1735 for shrp pattern. Correctly handle and fixup shift variable.
1736 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
1737
1738 2012-01-05 Jakub Jelinek <jakub@redhat.com>
1739
1740 PR debug/51762
1741 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
1742 note when !ACCUMULATE_OUTGOING_ARGS.
1743
1744 2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
1745
1746 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
1747 condition.
1748 (extract_range_from_unary_expr_1): Avoid useless computations.
1749
1750 2012-01-05 Jakub Jelinek <jakub@redhat.com>
1751
1752 PR rtl-optimization/51767
1753 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
1754 of jump_block and add an extra edge for degenerated asm gotos.
1755
1756 PR middle-end/51768
1757 * stmt.c (check_unique_operand_names): Don't ICE during error
1758 reporting if i is from labels chain.
1759
1760 PR middle-end/44777
1761 * profile.c (branch_prob): Split bbs that have exit edge
1762 and need a fake entry edge too.
1763
1764 2012-01-05 Jan Hubicka <jh@suse.cz>
1765
1766 PR middle-end/49710
1767 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
1768 unlooping loops.
1769
1770 2012-01-05 Richard Guenther <rguenther@suse.de>
1771
1772 PR lto/50490
1773 * tree-streamer-out.c (write_ts_optimization): New function.
1774 (streamer_write_tree_body): Call it.
1775 * tree-streamer-in.c (lto_input_ts_optimization): New function.
1776 (streamer_read_tree_body): Call it.
1777 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
1778
1779 2012-01-05 Jakub Jelinek <jakub@redhat.com>
1780
1781 PR middle-end/51761
1782 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
1783 * gimplify.c (gimplify_cleanup_point_expr): Save and set
1784 in_cleanup_point_expr before gimplify_stmt call and restore it
1785 afterwards.
1786 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
1787 in_cleanup_point_expr is false.
1788
1789 2012-01-05 Richard Guenther <rguenther@suse.de>
1790
1791 PR middle-end/51764
1792 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
1793 to c.opt.
1794 * toplev.c (process_options): Reject combining mudflap and LTO.
1795 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
1796
1797 2012-01-05 Richard Guenther <rguenther@suse.de>
1798
1799 PR tree-optimization/51760
1800 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
1801 not VARYING.
1802 (bit_value_unop): Handle UNDEFINED operands.
1803 (bit_value_binop): Likewise.
1804
1805 2012-01-05 Georg-Johann Lay <avr@gjlay.de>
1806
1807 * config/avr/avr.c (avr_replace_prefix): Remove.
1808 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
1809 (avr_asm_function_rodata_section): Ditto.
1810 (avr_asm_select_section): Ditto.
1811
1812 2012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1813
1814 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
1815 insertion.
1816
1817 2012-01-05 Jakub Jelinek <jakub@redhat.com>
1818
1819 PR bootstrap/51648
1820 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
1821 calls that have any non-fake successor edges.
1822
1823 PR debug/51746
1824 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
1825
1826 2012-01-04 Eric Botcazou <ebotcazou@adacore.com>
1827
1828 PR tree-optimization/51624
1829 * tree-sra.c (build_ref_for_model): When replicating a chain of
1830 COMPONENT_REFs, stop as soon as the offset would become negative.
1831
1832 2012-01-04 Jakub Jelinek <jakub@redhat.com>
1833
1834 PR debug/51695
1835 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
1836 in .debug_loc on the floor.
1837
1838 2012-01-04 Andrew Pinski <apinski@cavium.com>
1839
1840 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
1841
1842 2012-01-04 Andrew Pinski <apinski@cavium.com>
1843 Adam Nemet <anemet@caviumnetworks.com>
1844
1845 * config/mips/mips.md (size): Add SI and DI.
1846 (SIZE): New mode attribute.
1847 (U): New code attribute.
1848 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
1849 (mips_lbux_<mode>): Delete.
1850 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
1851 (mips_lhx): Use gen_mips_lhx_extsi.
1852 (mips_lhx_<mode>): Delete.
1853 (mips_lwx): Delete.
1854 (mips_l<size>x): New expand.
1855 (mips_lwx_<mode>): Delete.
1856 (mips_l<GPR:size>x_<P:mode>): New pattern.
1857 (*mips_lw<u>x_<P:mode>_ext): Likewise.
1858 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
1859 * config/mips/mips.c (mips_lx_address_p): New function.
1860 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
1861 (dsp64): New availability predicate.
1862 (mips_builtins): Add an entry for __builtin_mips_ldx.
1863 * config/mips/mips.h (ISA_HAS_LBX): New define.
1864 (ISA_HAS_LBUX): Likewise.
1865 (ISA_HAS_LHX): Likewise.
1866 (ISA_HAS_LHUX): Likewise.
1867 (ISA_HAS_LWX): Likewise.
1868 (ISA_HAS_LWUX): Likewise.
1869 (ISA_HAS_LDX): Likewise.
1870 * doc/extend.texi (__builtin_mips_ldx): Document.
1871
1872 2012-01-04 Tristan Gingold <gingold@adacore.com>
1873
1874 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
1875 when long pointers are used.
1876 * config.build (*-*-*vms*): Handle all OpenVMS targets.
1877 (alpha64-dec-*vms*, alpha*-dec-*vms*)
1878 (ia64-hp-*vms*): Remove.
1879 * config/vms/xm-vms64.h: Delete.
1880
1881 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
1882
1883 PR middle-end/51472
1884 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
1885
1886 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
1887
1888 * opts.c (finish_options): Remove duplicate sorry.
1889
1890 2012-01-04 Aldy Hernandez <aldyh@redhat.com>
1891
1892 PR middle-end/51696
1893 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
1894 correctly.
1895
1896 2012-01-04 Richard Guenther <rguenther@suse.de>
1897
1898 PR middle-end/51750
1899 * tree.c (size_low_cst): New function.
1900 * tree.h (size_low_cst): Declare.
1901 * fold-const.c (fold_comparison): Use it to extract the low
1902 part of the POINTER_PLUS_EXPR offset.
1903
1904 2012-01-04 Georg-Johann Lay <avr@gjlay.de>
1905
1906 Fix clearing ZERO_REG
1907 * config/avr/avr.md (cc): Add alternative "ldi".
1908 (movqi_insn): Use it in cc attribute.
1909 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
1910 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
1911 (output_reload_insisf): Use ZERO_REG to pre-clear register.
1912
1913 2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1914
1915 * configure: Regenerate.
1916
1917 2012-01-04 Richard Guenther <rguenther@suse.de>
1918
1919 PR tree-optimization/49651
1920 * tree-ssa-structalias.c (type_can_have_subvars): New function.
1921 (var_can_have_subvars): Use it.
1922 (get_constraint_for_1): Only consider subfields if there can be any.
1923
1924 2012-01-03 Jakub Jelinek <jakub@redhat.com>
1925
1926 PR bootstrap/51725
1927 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
1928 to its new canonical_cselib_val and the cselib_val was in
1929 first_containing_mem chain, but the canonical_cselib_val was not,
1930 add the latter into the chain.
1931 (cselib_invalidate_mem): Compare canonical_cselib_val of
1932 addr_list chain elt with v.
1933
1934 PR pch/51722
1935 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
1936 dwarf2out_undef): Allocate e.info using ggc_strdup instead
1937 of xstrdup.
1938 (output_macinfo_op): Don't ggc_strdup fd->filename.
1939 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
1940 then ggc_strdup it. Don't free inc->info or cur->info.
1941 (output_macinfo): Don't free ref->info or file->info.
1942
1943 2012-01-03 Ira Rosen <irar@il.ibm.com>
1944
1945 PR tree-optimization/51269
1946 * tree-vect-loop-manip.c (set_prologue_iterations): Make
1947 first_niters a pointer.
1948 (slpeel_tree_peel_loop_to_edge): Likewise.
1949 (vect_do_peeling_for_loop_bound): Update call to
1950 slpeel_tree_peel_loop_to_edge.
1951 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
1952 here. Remove it from the parameters list.
1953 (vect_do_peeling_for_alignment): Update calls and compute
1954 wide_prolog_niters.
1955
1956 2012-01-03 Richard Guenther <rguenther@suse.de>
1957
1958 PR tree-optimization/51070
1959 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
1960 Properly handle calls.
1961
1962 2012-01-03 Richard Guenther <rguenther@suse.de>
1963
1964 PR tree-optimization/51692
1965 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
1966 the LHS of allocation stmts.
1967
1968 2012-01-03 Olivier Hainque <hainque@adacore.com>
1969
1970 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
1971
1972 2012-01-03 Olivier Hainque <hainque@adacore.com>
1973
1974 * collect2.c (main): In AIX specific computations for vector
1975 insertions, use CONST_CAST2 to cast from char ** to const char **.
1976
1977 2012-01-03 Richard Guenther <rguenther@suse.de>
1978
1979 PR debug/51650
1980 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
1981 the context of a limbo DIE when it does not already exist.
1982
1983 2012-01-03 Jakub Jelinek <jakub@redhat.com>
1984
1985 PR tree-optimization/51719
1986 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
1987 but direct call is, clear direct call's lhs and don't add fallthrough
1988 edge from dcall_bb to join_bb and PHIs.
1989
1990 2012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1991
1992 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
1993 the instructions emitted by the pattern.
1994 ("*TDC_insn_<mode>"): Add comment.
1995
1996 2012-01-03 Richard Guenther <rguenther@suse.de>
1997
1998 PR middle-end/51730
1999 * fold-const.c (fold_comparison): Properly canonicalize
2000 tree offset and HOST_WIDE_INT bit position.
2001
2002 2012-01-02 Uros Bizjak <ubizjak@gmail.com>
2003
2004 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
2005 operands for extzv pattern.
2006
2007 2012-01-02 Jakub Jelinek <jakub@redhat.com>
2008
2009 PR bootstrap/51725
2010 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
2011 on mem_elt first.
2012
2013 2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
2014
2015 * doc/invoke.texi (-flto and related options): Copy-edit.
2016
2017 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2018
2019 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
2020
2021 2012-01-02 Jakub Jelinek <jakub@redhat.com>
2022
2023 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
2024 New patterns.
2025
2026 2012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2027
2028 * expr.h (move_by_pieces_ninsns): Declare.
2029 * expr.c (move_by_pieces_ninsns): Make external.
2030 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
2031 (mips_store_by_pieces_p): Likewise.
2032 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
2033 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
2034 * config/mips/mips.c (mips_move_by_pieces_p): New function.
2035 (mips_store_by_pieces_p): Likewise.
2036
2037 2012-01-02 Jakub Jelinek <jakub@redhat.com>
2038
2039 * passes.c (register_one_dump_file): Free full_name.
2040
2041 * reload1.c (reload): Don't allocate reg_max_ref_width here.
2042 (calculate_elim_costs_all_insns): Free offsets_at and
2043 offsets_known_at at the end and clear the pointers.
2044
2045 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
2046
2047 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
2048 this option introduced in r180739.
2049
2050 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
2051
2052 PR target/51345
2053 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
2054 (tmake_file target=avr): Add avr/t-multilib.
2055
2056 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
2057 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
2058 * config/avr/genmultilib.awk: New file.
2059 * config/avr/t-multilib: New auto-generated file.
2060 * config/avr/multilib.h: New auto-generated file.
2061 * config/avr/t-avr (AVR_MCUS): New variable.
2062 (genopt.sh): Use it.
2063 (s-mlib): Depend on t-multilib.
2064 (t-multilib, multilib.h): New dependencies.
2065 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
2066 (MULTILIB_OPTIONS): Remove.
2067 (MULTILIB_MATCHES): Remove.
2068 (MULTILIB_DIRNAMES): Remove.
2069 (MULTILIB_EXCEPTIONS): Remove:
2070 * config/avr/genopt.sh: Don't use hard coded file name;
2071 pass AVR_MCUS from t-avr instead.
2072
2073 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
2074
2075 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
2076
2077 2012-01-02 Georg-Johann Lay <avr@gjlay.de>
2078
2079 Implement light-weight DImode support.
2080 * config/avr/avr-dimode.md: New file.
2081 * config/avr/avr.md: Include it.
2082 (adjust_len): Add plus64, compare64.
2083 (HIDI): Remove code iterator.
2084 (code_stdname): New code attribute.
2085 (rotx, rotsmode): Remove DI.
2086 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
2087 as code iterator.
2088 * config/avr/avr-protos.h (avr_have_dimode): New.
2089 (avr_out_plus64, avr_out_compare64): New.
2090 * config/avr/avr.c (avr_out_compare): Handle DImode.
2091 (avr_have_dimode): New variable definition and initialization.
2092 (avr_out_compare64, avr_out_plus64): New functions.
2093 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
2094 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
2095 (avr_compare_pattern): Skip DImode comparisons.
2096
2097 2012-01-02 Revital Eres <revital.eres@linaro.org>
2098
2099 * ddg.c (def_has_ccmode_p): New function.
2100 (add_cross_iteration_register_deps,
2101 create_ddg_dep_from_intra_loop_link): Call it.
2102
2103 2012-01-02 Richard Guenther <rguenther@suse.de>
2104
2105 PR other/51679
2106 * invoke.texi (fassociative-math): Remove spurious paranthesis.
2107
2108 2012-01-01 Jakub Jelinek <jakub@redhat.com>
2109
2110 * gcc.c (process_command): Update copyright notice dates.
2111 * gcov.c (print_version): Likewise.
2112 * gcov-dump.c (print_version): Likewise.
2113 * mips-tfile.c (main): Likewise.
2114 * mips-tdump.c (main): Likewise.
2115
2116 2012-01-01 Ira Rosen <irar@il.ibm.com>
2117
2118 PR tree-optimization/51704
2119 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
2120 a use is inside the basic block or loop before accessing its vect info.
2121
2122 2012-01-01 Jan Hubicka <jhjh@suse.cz>
2123
2124 PR rtl-optimization/51069
2125 * cfgloopmanip.c (remove_path): Removing path making irreducible
2126 region unconditional makes BB part of the region.
2127
2128 2012-01-01 Jakub Jelinek <jakub@redhat.com>
2129
2130 PR tree-optimization/51683
2131 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
2132 calls with side-effects.
2133 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
2134 \f
2135 Copyright (C) 2012 Free Software Foundation, Inc.
2136
2137 Copying and distribution of this file, with or without modification,
2138 are permitted in any medium without royalty provided the copyright
2139 notice and this notice are preserved.