]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* Makefile.in: Fix many dependencies.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
eb3dd80d 12012-05-30 Steven Bosscher <steven@gcc.gnu.org>
2
3 * Makefile.in: Fix many dependencies.
4 (DWARF2_H): Depend on dwarf2.def.
5 (RTL_ERROR_H): Depend on rtl-error.h.
6 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
7 all gimple-pretty-print.h and tree-pretty-print.h references.
8
22bcc33d 92012-05-30 Marc Glisse <marc.glisse@inria.fr>
10
11 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
12 concatenations.
13
20ecc3c4 142012-05-30 Richard Guenther <rguenther@suse.de>
15
16 PR middle-end/53522
17 * tree-emutls.c (gen_emutls_addr): Do not add globals to
18 referenced-vars.
19
15b37e31 202012-05-30 Eric Botcazou <ebotcazou@adacore.com>
21
22 * explow.c (probe_stack_range): Restore simple control flow and stop
23 again when the probe cannot be generated if HAVE_check_stack.
24
77b4556a 252012-05-30 Jakub Jelinek <jakub@redhat.com>
26
27 PR rtl-optimization/53519
28 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
29 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
30
e8f3287f 312012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
32
33 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
34
effa044f 352012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
36
37 PR debug/53453
38 * doc/tm.texi: Update.
39 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
40 * target.def (force_at_comp_dir): New hook.
41 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
42 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
43
41f5b5b0 442012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
4c654fa7 45
46 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
47 Darwin >= 10.
48 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
49 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
50
de9013ac 512012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
52
53 PR target/51340
54 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
55 flag_unsafe_math_optimizations is set.
56 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
57 Update description of -mfused-madd.
58
e10782c9 592012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
60
61 PR target/52941
62 * config/sh/predicates.md (atomic_arith_operand,
63 atomic_logical_operand): New predicates.
64 * config/sh/sh.c (sh_option_override): Check atomic options.
65 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
66 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
67 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
68 UNSUPPORTED_HARD_ATOMIC_CPU.
69 * config/sh/sync.md: Update description comments.
70 (I12): New mode iterator.
71 (fetchop_predicate, fetchop_constraint): New code attributes.
72 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
73 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
74 atomic_fetch_<fetchop_name>si_hard,
75 atomic_fetch_<fetchop_name><mode>_hard,
76 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
77 atomic_<fetchop_name>_fetchsi_hard,
78 atomic_<fetchop_name>_fetch<mode>_hard,
79 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
80 atomic_test_and_set_hard): New insns.
81 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
82 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
83 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
84 atomic_test_and_set_soft): Use same formatting for the first line of
85 the asm block as in new insns above.
86 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
87 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
88 atomic_test_and_set): Integrate new *_hard insns into expanders.
89 * config/sh/sh.opt (mhard-atomic): New option.
90 * doc/invoke.texi (SH Options): Document it.
91
e4a33abd 922012-05-29 Meador Inge <meadori@codesourcery.com>
93
94 * c-decl.c (c_push_function_context): Always create a new language
95 function.
96 (c_pop_function_context): Clear the language function created in
97 c_push_function_context.
98
9315255d 992012-05-29 Matt Turner <mattst88@gmail.com>
100
101 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
102 (define_bypass "ev6_fcmov"): New.
103
ea1760a3 1042012-05-29 Steven Bosscher <steven@gcc.gnu.org>
105
106 * integrate.c: Remove.
107 * integrate.h: Remove.
108 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
109 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
110 * config/rs6000/t-rs6000: Likewise
111 * config/spu/t-spu-elf: Likewise.
112 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
113 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
114 from integrate.h to here.
115 (initial_value_entry): New prototype.
116 * reload.h (allocate_initial_values): Remove prototype.
117 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
118 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
119 integrate.c.
120 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
121 set_decl_abstract_flags, set_block_abstract_flags): Move from
122 integrate.c to here, the only user.
123 * expmed.c (extract_fixed_bit_field): Remove outdated comment
124 about integrate.c.
125 * function.c: Don't include integrate.h.
126 (struct initial_value_pair, struct initial_value_struct,
127 get_hard_reg_initial_val, has_hard_reg_initial_val,
128 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
129 integrate.c to here.
130 (initial_value_entry): New function.
131 * genemit.c (main): Don't print integrate.h include line.
132 * ira.c: Don't include integrate.h.
133 (allocate_initial_values): Move from integrate.c to here.
134 (ira): Update allocate_initial_values call.
135 * tree-inline.c: Don't include integrate.h.
136 (function_attribute_inlinable_p): Moved from integrate.c to here.
137 * cfgexpand.c: Don't include integrate.h.
138 * except.c: Likewise.
139 * langhooks.c: Likewise.
140 * passes.c: Likewise.
141 * toplev.c: Likewise.
142 * config/frv/frv.c: Likewise.
143 * config/pa/pa.c: Likewise.
144 * config/spu/spu.c: Likewise.
145 * config/epiphany/epiphany.c: Likewise.
146 * config/mep/mep.c: Likewise.
147 * config/score/score.c: Likewise.
148 * config/picochip/picochip.c: Likewise.
149 * config/sh/sh.c: Likewise.
150 * config/alpha/alpha.c: Likewise.
151 * config/microblaze/microblaze.c: Likewise.
152 * config/mips/mips.c: Likewise.
153 * config/v850/v850.c: Likewise.
154 * config/mmix/mmix.c: Likewise.
155 * config/bfin/bfin.c: Likewise.
156 * config/arm/arm.c: Likewise.
157 * config/s390/s390.c: Likewise.
158 * config/m32r/m32r.c: Likewise.
159 * config/rs6000/rs6000.c: Likewise.
160 * config/c6x/c6x.c: Include function.h instead of integrate.h.
161 * config/tilegx/tilegx.c: Likewise.
162 * config/tilepro/tilepro.c: Likewise.
163
234d19a4 1642012-05-29 Georg-Johann Lay <avr@gjlay.de>
165
166 * config/avr/t-avr (s-avr-mmcu-texi): Call
167 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
168
0ab48139 1692012-05-29 Michael Matz <matz@suse.de>
170
171 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
172 assign_temp): Remove 'keep' argument.
173 (mark_temp_addr_taken): Remove prototype.
174 * tree.h (expand_decl): Remove prototype.
175 * function.c (struct temp_slot): Remove addr_taken and keep
176 member.
177 (assign_stack_temp_for_type) Don't initialize above, remove
178 keep argument.
179 (assign_stack_temp, assign_temp): Remove keep argument.
180 (mark_temp_addr_taken): Remove.
181 (preserve_temp_slots): Remove handling of addr_taken and keep
182 members.
183 (free_temp_slots): Ditto.
184 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
185 dead code.
186 * stmt.c (expand_asm_operands): Remove dead code.
187 (expand_decl): Remove.
188 * c-decl.c (finish_struct): Don't call expand_decl.
189 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
190 and assign_stack_temp.
191 * calls.c (save_fixed_argument_area, initialize_argument_information,
192 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
193 * expmed.c (extract_bit_field_1): Ditto.
194 * expr.c (emit_group_load_1, emit_group_store,
195 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
196 store_field, expand_constructor, expand_cond_expr_using_cmove,
197 expand_expr_real_2, expand_expr_real_1): Ditto.
198 * stmt.c (expand_asm_operands, expand_return): Ditto.
199
200 * function.c (pop_temp_slots): Call free_temp_slots.
201 * calls.c (store_one_arg): Don't call preserve_temp_slots or
202 free_temp_slots.
203 * expr.c (expand_assignment): Don't call free_temp_slots.
204
205 * config/arm/arm.c (neon_expand_vector_init): Ditto.
206 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
207 (ix86_expand_vector_extract): Ditto.
208 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
209 ia64_expand_movxf_movrf): Ditto.
210 * config/mips/mips.c (mips_expand_vi_general): Ditto.
211 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
212 extendsfdf2): Ditto.
213 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
214 rs6000_expand_vector_set, rs6000_expand_vector_extract,
215 rs6000_allocate_stack_temp): Ditto.
216 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
217 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
218 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
219 sparc_expand_vector_init): Ditto.
220
7843e4bc 2212012-05-29 Michael Matz <matz@suse.de>
222
223 * c-tree.h (c_expand_decl): Remove prototype.
224
225 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
226 a kept temp.
227 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
228 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
229 COMPOUND_LITERAL_EXPR.
230 * function.c (expand_function_start): Don't call expand_decl,
231 instead assert that we have RTL assigned.
232 * tree-ssa-live.c (remove_unused_locals): Clear
233 nonlocal_goto_save_area if its backing variable is removed.
234 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
235 as mem inputs.
236 (expand_decl): Assert that this does nothing.
237 * calls.c (expand_call): Don't call mark_temp_addr_taken.
238
87c952b8 2392012-05-29 Richard Guenther <rguenther@suse.de>
240
241 PR tree-optimization/53516
242 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
243 bitfield accesses.
244 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
245
9d75589a 2462012-05-29 Joseph Myers <joseph@codesourcery.com>
247
248 * LANGUAGES: Fix typos.
249 * Makefile.in: Fix typos.
250 * alias.c: Fix typos.
251 * auto-inc-dec.c: Fix typos.
252 * bb-reorder.c: Fix typos.
253 * cfgcleanup.c: Fix typos.
254 * cgraph.c: Fix typos.
255 * cgraph.h: Fix typos.
256 * cgraphunit.c: Fix typos.
257 * collect2-aix.h: Fix typos.
258 * collect2.c: Fix typos.
259 * compare-elim.c: Fix typos.
260 * config/alpha/vms.h: Fix typos.
261 * config/arm/README-interworking: Fix typos.
262 * config/arm/arm.c: Fix typos.
263 * config/arm/iterators.md: Fix typos.
264 * config/arm/vxworks.h: Fix typos.
265 * config/avr/avr.c: Fix typos.
266 * config/avr/avr.h: Fix typos.
267 * config/avr/avr.md: Fix typos.
268 * config/avr/builtins.def: Fix typos.
269 * config/c6x/c6x.c: Fix typos.
270 * config/cr16/cr16.c: Fix typos.
271 * config/cr16/cr16.md: Fix typos.
272 * config/cris/cris.md: Fix typos.
273 * config/darwin.c: Fix typos.
274 * config/darwin.opt: Fix typos.
275 * config/i386/i386-c.c: Fix typos.
276 * config/i386/i386.c: Fix typos.
277 * config/ia64/ia64.c: Fix typos.
278 * config/m68k/cf.md: Fix typos.
279 * config/mep/mep.c: Fix typos.
280 * config/microblaze/microblaze.c: Fix typos.
281 * config/microblaze/microblaze.h: Fix typos.
282 * config/mn10300/mn10300.c: Fix typos.
283 * config/mn10300/mn10300.md: Fix typos.
284 * config/pa/pa.c: Fix typos.
285 * config/picochip/picochip.h: Fix typos.
286 * config/rs6000/a2.md: Fix typos.
287 * config/rs6000/rs6000.c: Fix typos.
288 * config/rs6000/vector.md: Fix typos.
289 * config/rx/rx.md: Fix typos.
290 * config/rx/rx.opt: Fix typos.
291 * config/s390/2097.md: Fix typos.
292 * config/s390/s390.c: Fix typos.
293 * config/s390/s390.h: Fix typos.
294 * config/sh/sh.c: Fix typos.
295 * config/sh/sh.md: Fix typos.
296 * config/sparc/sync.md: Fix typos.
297 * config/spu/spu.c: Fix typos.
298 * config/spu/spu.md: Fix typos.
299 * config/vms/vms.c: Fix typos.
300 * config/vxworks-dummy.h: Fix typos.
301 * config/vxworks.h: Fix typos.
302 * cselib.c: Fix typos.
303 * df-scan.c: Fix typos.
304 * df.h: Fix typos.
305 * doc/extend.texi: Fix typos.
306 * doc/install.texi: Fix typos.
307 * doc/invoke.texi: Fix typos.
308 * doc/md.texi: Fix typos.
309 * doc/plugins.texi: Fix typos.
310 * doc/rtl.texi: Fix typos.
311 * dse.c: Fix typos.
312 * dwarf2asm.c: Fix typos.
313 * dwarf2out.c: Fix typos.
314 * except.h: Fix typos.
315 * expr.c: Fix typos.
316 * fold-const.c: Fix typos.
317 * gcc.c: Fix typos.
318 * gcse.c: Fix typos.
319 * genautomata.c: Fix typos.
320 * gengtype-state.c: Fix typos.
321 * gengtype.c: Fix typos.
322 * genhooks.c: Fix typos.
323 * gimple-fold.c: Fix typos.
324 * gimple-pretty-print.c: Fix typos.
325 * gimple.c: Fix typos.
326 * gimple.h: Fix typos.
327 * gimplify.c: Fix typos.
328 * graphite-interchange.c: Fix typos.
329 * graphite-sese-to-poly.c: Fix typos.
330 * ifcvt.c: Fix typos.
331 * input.c: Fix typos.
332 * ipa-cp.c: Fix typos.
333 * ipa-inline-analysis.c: Fix typos.
334 * ipa-inline-transform.c: Fix typos.
335 * ipa-inline.c: Fix typos.
336 * ipa-pure-const.c: Fix typos.
337 * ipa-ref.h: Fix typos.
338 * ipa-reference.c: Fix typos.
339 * ipa-utils.c: Fix typos.
340 * ipa.c: Fix typos.
341 * ira-emit.c: Fix typos.
342 * ira-lives.c: Fix typos.
343 * lto-streamer.c: Fix typos.
344 * lto-streamer.h: Fix typos.
345 * lto-wrapper.c: Fix typos.
346 * mcf.c: Fix typos.
347 * mode-switching.c: Fix typos.
348 * modulo-sched.c: Fix typos.
349 * plugin.c: Fix typos.
350 * postreload.c: Fix typos.
351 * sched-deps.c: Fix typos.
352 * sel-sched-ir.c: Fix typos.
353 * sel-sched-ir.h: Fix typos.
354 * sel-sched.c: Fix typos.
355 * sese.c: Fix typos.
356 * stor-layout.c: Fix typos.
357 * target-hooks-macros.h: Fix typos.
358 * target.def: Fix typos.
359 * trans-mem.c: Fix typos.
360 * tree-eh.c: Fix typos.
361 * tree-predcom.c: Fix typos.
362 * tree-sra.c: Fix typos.
363 * tree-ssa-address.c: Fix typos.
364 * tree-ssa-loop-ivopts.c: Fix typos.
365 * tree-ssa-loop-niter.c: Fix typos.
366 * tree-ssa-math-opts.c: Fix typos.
367 * tree-ssa-pre.c: Fix typos.
368 * tree-ssa-propagate.c: Fix typos.
369 * tree-ssa-reassoc.c: Fix typos.
370 * tree-ssa-sccvn.c: Fix typos.
371 * tree-ssa-ter.c: Fix typos.
372 * tree-ssa-uninit.c: Fix typos.
373 * tree-ssanames.c: Fix typos.
374 * tree-vect-generic.c: Fix typos.
375 * tree-vect-slp.c: Fix typos.
376 * tree.c: Fix typos.
377 * tree.h: Fix typos.
378 * varasm.c: Fix typos.
379 * varpool.c: Fix typos.
380
d668316d 3812012-05-29 Joseph Myers <joseph@codesourcery.com>
382
383 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
384
134f0957 3852012-05-29 Richard Guenther <rguenther@suse.de>
386
387 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
388 for globals.
389 (add_referenced_var_1): Re-organize. Assert we are not
390 called for globals.
391 (remove_referenced_var): Likewise.
392 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
393 * tree-mudflap.c (execute_mudflap_function_ops): Do not
394 call add_referenced_var on globals.
395 * matrix-reorg.c (transform_access_sites): Likewise.
396
d6443ebe 3972012-05-29 Steven Bosscher <steven@gcc.gnu.org>
398
399 * alias.c (reg_known_value): Make this a VEC.
400 (reg_known_equiv_p): Make this an sbitmap.
401 (reg_known_value_size): Remove.
402 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
403 set_reg_known_equiv_p): Update for reg_known_value and
404 reg_known_value_size data structure change.
405 (init_alias_analysis, end_alias_analysis): Likewise.
406
c306fbbf 4072012-05-29 Jakub Jelinek <jakub@redhat.com>
408
409 PR middle-end/53510
410 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
411 to avoid leaking memory. No need to handle memory allocation
412 failure. Double string_len on each reallocation instead of
413 adding 2.
414 * gcov.c (read_line): Likewise.
415
2cfdd775 4162012-05-29 Hans-Peter Nilsson <hp@axis.com>
417
418 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
419 New macros.
420 * config/cris/cris.md ("trap"): Define, enabled for
421 TARGET_TRAP_USING_BREAK8.
422 * config/cris/cris.opt (mtrap-using-break8): New option.
423
8b64dc3c 4242012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
425
426 PR c++/25137
427 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
428 for C++.
429
e67780f7 4302012-05-28 Hans-Peter Nilsson <hp@axis.com>
431
91e2d327 432 * doc/md.texi (stack_protect_test): Remove negation of branch to
433 label.
3ed894b7 434 (Standard Names): Fix typos in documentation of atomic patterns.
e67780f7 435
b3a0814b 4362012-05-27 Nathan Sidwell <nathan@acm.org>
437
438 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
439
eb5d9b7b 4402012-05-26 Jason Merrill <jason@redhat.com>
441
442 PR c++/53220
443 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
444 about array compound literals.
445
8ddad41d 4462012-05-26 Eric Botcazou <ebotcazou@adacore.com>
447
448 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
449 if CLEANUP_NO_INSN_DEL.
450 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
451 from cfg_layout_merge_blocks.
452 (emit_nop_for_unique_locus_between): New function.
453 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
454 (cfg_layout_merge_blocks): Likewise.
455
f7583c76 4562012-05-26 Dimitrios Apostolou <jimis@gmx.net>
457 Paolo Bonzini <bonzini@gnu.org>
458
459 * df-scan.c (df_def_record_1): Assert a parallel must contain an
460 EXPR_LIST at this point. Receive the LOC and move its extraction...
461 (df_defs_record): ... here. Change if-else to a switch statement.
462 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
463 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
464 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
465 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
466 regs_invalidated_by_call.
467 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
468 df_get_call_refs().
469
eaf1e576 4702012-05-25 Eric Botcazou <ebotcazou@adacore.com>
471
472 PR lto/52178
473 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
474 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
475
e684d543 4762012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
477
478 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
479 software floating point emulation. No longer build the multilibs
480 with -mstrict-align.
481
709ed320 4822012-05-25 Aldy Hernandez <aldyh@redhat.com>
483
484 PR middle-end/53008
485 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
486 accessed indirectly.
487 (ipa_tm_create_version): Same.
488
45476806 4892012-05-25 Uros Bizjak <ubizjak@gmail.com>
490
491 PR target/53474
492 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
493 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
494
b04c1b7f 4952012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
496
497 PR target/53435
498 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
499 (ix86_expand_vec_perm): Use int mode instead of float.
500 (expand_vec_perm_pshufb): Remove handling of useseless type
501 conversion.
502
8ffcff2e 5032012-05-25 Eric Botcazou <ebotcazou@adacore.com>
504
505 PR ada/52362
506 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
507 gnu_ld variables to yes.
508 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
509 (HAVE_GNU_AS): Likewise.
510 * config.in: Regenerate.
511 * configure: Likewise.
512
5bb035a3 5132012-05-25 Tristan Gingold <gingold@adacore.com>
514
515 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
516 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
517 and preferred_alignment.
518
bfde030e 5192012-05-25 Tristan Gingold <gingold@adacore.com>
520
521 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
522
5253ef2b 5232012-05-25 Thomas Schwinge <thomas@codesourcery.com>
524
525 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
526 volatile bitfields case.
527
5282012-05-24 Pat Haugen <pthaugen@us.ibm.com>
409e1a55 529
530 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
531 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
532 (adjacent_mem_locations): Move some code to and call...
533 (get_memref_parts): ...new function.
534 (mem_locations_overlap): New function.
535 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
536 (is_mem_ref): Rename to...
537 (find_mem_ref): ...this. Return MEM rtx.
538 (get_store_dest): Remove function.
539 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
540 new parameter and adjust calls.
541 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
542 mem refs overlap for true_store_to_load_dep_costly.
543 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
544 passed to adjacent_mem_locations.
545 (is_costly_group): Walk resolved dependency list.
546 (force_new_group): Emit group ending nop for Power6/Power7.
547 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
548 (group_ending_nop): New define_insn.
549
8ae39fa8 5502012-05-24 Dodji Seketeli <dodji@redhat.com>
551
552 Make unwound macro expansion trace less redundant
553 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
554 context of macro definition in the trace, when it's redundant.
555 Update comments.
556
141de90e 5572012-05-24 Richard Guenther <rguenther@suse.de>
558
559 PR middle-end/53460
560 * tree-profile.c (tree_profiling): Cleanup the CFG if
561 execute_fixup_cfg requests it.
562
1b55a29e 5632012-05-24 Richard Guenther <rguenther@suse.de>
564
565 * tree-flow.h (create_var_ann): Remove.
566 * tree-dfa.c (create_var_ann): Remove and inline into its
567 single caller ...
568 (add_referenced_var_1): ... here.
569 * varpool.c (add_new_static_var): Do not call add_referenced_var
570 for global vars.
571 * gimple-fold.c (canonicalize_constructor_val): Likewise.
572 * tree-switch-conversion.c (build_one_array): Likewise.
573 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
574 * tree-flow-inline.h (gimple_referenced_vars): Guard against
575 NULL fn argument.
576 * tree-inline.c (remap_gimple_op_r): Likewise. Check
577 gimple_referenced_vars instead of gimple_in_ssa_p.
578 (copy_tree_body_r): Likewise.
579 (setup_one_parameter): Likewise.
580 (declare_return_variable): Likewise.
581 (tree_function_versioning): Likewise.
582
a2623f6b 5832012-05-24 Jakub Jelinek <jakub@redhat.com>
584
585 PR tree-optimization/53465
586 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
587 vr0 into *vr, then vrp_meet that.
588 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
589 have any equivalences.
590 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
591 first time.
592
5932012-05-24 Jim MacArthur <jim.macarthur@arm.com>
71e16a8f 594
595 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
596 hard registers.
597 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
598 check end_regno - 1 is a hard register.
599
cc3f82be 6002012-05-24 Richard Guenther <rguenther@suse.de>
601
602 * varpool.c (add_new_static_var): Remove call to create_var_ann.
603 * tree-ssa-operands.c (create_vop_var): Likewise.
604
2887c015 6052012-05-24 Richard Guenther <rguenther@suse.de>
606
607 PR bootstrap/53466
608 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
609 handle globals.
610 (remove_unused_locals): Pass global_unused_vars to
611 remove_unused_scope_block_p. Restore code walking all
612 referenced vars and pruning them.
613
afea39ad 6142012-05-23 Jan Hubicka <jh@suse.cz>
615
616 * tree.h (alias_diag_flags): Remove.
617 (alias_pair): Remove emitted_diags.
618 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
619 symbol_alias_set_t, symbol_alias_set_destroy,
620 symbol_alias_set_contains, propagate_aliases_backward): Remove.
621 * toplev.c (compile_file): Do not call finish_aliases_2
45476806 622 * cgraphunit.c (cgraph_process_new_functions): Do not call
623 finish_aliases_1.
afea39ad 624 (handle_alias_pairs): Output diagnostics about aliases to externals.
625 (assemble_thunks_and_aliases): Use do_assemble_alias.
626 (output_weakrefs): Likewise.
627 (finalize_compilation_unit): Do not call finish_aliases_1.
45476806 628 * ipa.c (symtab_remove_unreachable_nodes): De not call
629 remove_unreachable_alias_pairs.
afea39ad 630 * varasm.c (do_assemble_alias): Export.
45476806 631 (symbol_alias_set_create, symbol_alias_set_destroy,
632 symbol_alias_set_contains, symbol_alias_set_insert,
633 propagate_aliases_forward, propagate_aliases_backward,
634 propagate_aliases_backward, trivially_visible_alias,
635 trivially_defined_alias, remove_unreachable_alias_pairs,
636 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
afea39ad 637 * output.h (do_assemble_alias): Declare.
45476806 638 * varpool.c (varpool_remove_unreferenced_decls): Do not call
639 finish_aliases_1.
afea39ad 640
9d68bc02 6412012-05-23 Martin Jambor <mjambor@suse.cz>
642
643 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
644
4190f293 6452012-05-23 Eric Botcazou <ebotcazou@adacore.com>
646
647 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
648 size handling.
649 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
650 (iterative_hash_gimple_type): Adjust comment.
651 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
652 domain for an array type instead of the domain type itself.
653
53b5b75f 6542012-05-23 Richard Guenther <rguenther@suse.de>
655
656 PR tree-optimization/53438
657 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
658
7ce72b61 6592012-05-23 Georg-Johann Lay <avr@gjlay.de>
660
661 PR target/53448
662 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
663 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
664 ASM_OUTPUT_ALIGN.
665
ad75582e 6662012-05-23 Richard Guenther <rguenther@suse.de>
667
668 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
669 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
670 via the global_unused_vars bitmap.
671 (remove_unused_locals): Handle global vars in local-decls via
672 a global_unused_vars bitmap instead of the used flag in the
673 var annotation. Simplify global variable handling and removal.
674
f963f90b 6752012-05-22 Jan Hubicka <jh@suse.cz>
676
677 PR middle-end/53426
ad75582e 678 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
679 from other partitions.
f963f90b 680
ad0fe105 6812012-05-22 Jan Hubicka <jh@suse.cz>
682
683 PR middle-end/53161
684 * symtab.c (symtab_register_node): Fix ordering issue.
685
c93570ad 6862012-05-22 Steven Drake <sbd@NetBSD.org>
687
688 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
689
f8efdac8 6902012-05-22 David Edelsohn <dje.gcc@gmail.com>
691
692 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
693 Use strip_name_encoding target hook.
694
5084b2e4 6952012-05-22 Richard Guenther <rguenther@suse.de>
696
697 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
698 (init_function_for_compilation): Remove.
699 * tree-dfa.c (find_vars_r): Take struct function argument.
700 (find_referenced_vars_in): Adjust.
701 * tree-ssa-operands.c (clobber_stats): Remove.
702 (create_vop_var): Take struct function argument. Mark
703 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
704 (init_ssa_operands): Take struct function argument.
705 (fini_ssa_operands): Do not dump dead stats.
706 * tree-ssa-operands.h (init_ssa_operands): Take struct function
707 argument.
708 * cgraphunit.c (init_lowered_empty_function): Adjust.
709 * lto-streamer-in.c (input_cfg): Likewise.
710 * tree-inline.c (initialize_cfun): Likewise.
711 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
45476806 712 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
5084b2e4 713 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
714 virtual operands are not registers.
715
22ba4121 7162012-05-22 Richard Guenther <rguenther@suse.de>
717
45476806 718 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
22ba4121 719
6084b64c 7202012-05-22 Richard Guenther <rguenther@suse.de>
721
722 PR middle-end/53437
723 * tree-inline.c (setup_one_parameter): Create a dummy init
724 statement for unused parameters when not optimizing.
725
665507eb 7262012-05-22 Richard Guenther <rguenther@suse.de>
727
728 * tree-flow.h (add_referenced_var_1): Declare.
729 (add_referenced_var): Define.
45476806 730 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
665507eb 731 (add_referenced_var): Rename to ...
732 (add_referenced_var_1): ... this. Take struct function argument.
733
f9aa4160 7342012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
735
736 PR target/53334
737 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
738 * config/arm/arm.c (arm_validize_comparison): Define.
739 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
740 arm_validize_comparison.
741 ("cbranchdi4"): Likewise.
742 ("cstoredi4"): Likewise.
743 ("movsicc"): Likewise.
744 ("movsfcc"): Likewise.
745 ("movdfcc"): Likewise.
746
6940c58b 7472012-05-22 Dimitrios Apostolou <jimis@gmx.net>
748
749 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
f9aa4160 750 the mw_reg_pool size.
6940c58b 751
3f55c2b5 7522012-05-22 Paolo Bonzini <bonzini@gnu.org>
753
754 PR tree-optimization/53336
755 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
756 non-integer integral types to offset type and vice versa.
757
07f7357d 7582012-05-22 Alan Modra <amodra@gmail.com>
759
53845569 760 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
761 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
762 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
763 V_SAVE_INLINE): Delete.
07f7357d 764 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
765 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
766 For ELF targets, use out-of-line restores for -Os and any number
767 of regs if the restore exits, and out-of-line gp save for two or
768 more regs. Use save_reg_p to test for holes in reg restore set.
769 Replace "#if" with "if".
770
1988c1c3 7712012-05-22 Alan Modra <amodra@gmail.com>
772
773 * config/rs6000/rs6000.c (save_reg_p): New function.
774 (first_reg_to_save, first_fp_reg_to_save): Use it here.
775 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
776 (emit_frame_save): Use gen_frame_store.
777 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
778 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
779 vrsave and toc.
780 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
781 vrsave, toc, gp and fp restores.
782
5afb4a41 7832012-05-22 Alan Modra <amodra@gmail.com>
784
785 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
786 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
787 Move function pointer variables after forward declarations.
788 (rs6000_builtin_support_vector_misalignment): Make static.
789 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
790 (rs6000_function_value, rs6000_can_eliminate): Likewise.
791
d73df292 7922012-05-21 Bernd Schmidt <bernds@codesourcery.com>
793
794 PR rtl-optimization/53373
795 * caller-save.c (save_call_clobbered_regs): Look into a possible
796 PARALLEL manually rather than using single_set on a call insn.
797
445d06b6 7982012-05-21 Jakub Jelinek <jakub@redhat.com>
799
800 PR tree-optimization/53436
801 * omp-low.c (omp_build_component_ref): New function.
802 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
803
04275edf 8042012-05-21 Uros Bizjak <ubizjak@gmail.com>
805
806 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
807 arguments to bool.
808 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
809 Do not print '.' here. Output operand lossage error for unhandled
810 sizes. Move.
811 <case '*'>: Move.
812 <case '&'>: Ditto.
813 <case 'Y'>: Ditto.
814 <case 'z'>: Hardcode "code" argument into error strings.
815 <case 'Z'>: Ditto.
816 <case 'D'>: Merge AVX and non-AVX codes.
817 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
818 Update call to put_condition_code.
819
eddf6a68 8202012-05-21 Andreas Schwab <schwab@linux-m68k.org>
821
822 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
823 CC_STATUS_INIT.
824 (clzsi2): New expander.
825 (*clzsi2_68k): New insn.
04275edf 826 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
eddf6a68 827
6ad451f8 8282012-05-21 Aldy Hernandez <aldyh@redhat.com>
829
830 * gimple.h (gimple_set_in_transaction): Remove.
831 (gimple_in_transaction): Look in BB instead.
832 (gimple_statement_base): Remove in_transaction field.
833 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
834 * trans-mem.c (compute_transaction_bits): Place transaction bit
835 information into basic blocks.
836
ef47fd1d 8372012-05-21 Andreas Schwab <schwab@linux-m68k.org>
838
839 * expr.c (get_def_for_expr_class): Define only if
840 HAVE_conditional_move.
841 (convert_tree_comp_to_rtx): Likewise.
842
b1182707 8432012-05-21 Uros Bizjak <ubizjak@gmail.com>
844
845 PR target/53399
846 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
847 for TARGET_BMI.
848 (ffssi2_no_cmove): Ditto.
849 (*ffs<mode>_1): Remove insn pattern.
850 (*tzcnt<mode>_1): New insn pattern.
851 (*bsf<mode>1): Ditto.
852
c77bfbc9 8532012-05-21 Richard Guenther <rguenther@suse.de>
854
855 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
856 more referenced vars.
857 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
858 flag on variables that have a var-annotation.
859
7c2df6db 8602012-05-21 Joseph Myers <joseph@codesourcery.com>
861
6a17c9e0 862 PR c/53418
7c2df6db 863 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
864 from folded operands before wrapping another around the
865 conditional expression.
866
8cb435f5 8672012-05-21 Jakub Jelinek <jakub@redhat.com>
868
e694f1e7 869 PR tree-optimization/53366
870 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
871 tests if complex_numbers == 2, but there are non-complex number loads
872 too.
873
791e6391 874 PR tree-optimization/53409
875 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
876 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
877
8cb435f5 878 PR tree-optimization/53410
879 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
880 instead of build_int_cst (type, 0) where vector types might be
881 involved. Instead of build_int_cst (type, 1) convert the original
882 integer_onep argument to the desired type.
883
31eb619c 8842012-05-21 Michael Matz <matz@suse.de>
885
886 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
887 (simplify_test_exp): Handle one more case of distributive law,
888 decrease cost threshold.
889 (tests_attr_p, get_attr_order): New functions.
890 (optimize_attrs): Use topological order, inline only cheap values.
891 (write_attr_set): Reset our_known_true after some time.
892
391d150e 8932012-05-21 H.J. Lu <hongjiu.lu@intel.com>
894
895 PR target/53425
896 * config/i386/i386.c (type_natural_mode): Warn passing SSE
897 vector argument without SSE enabled changes the ABI.
898
02a2bdca 8992012-05-21 Richard Guenther <rguenther@suse.de>
900
901 PR tree-optimization/53408
902 * tree-vect-loop.c (vectorizable_induction): Properly check
903 the restriction that we cannot handle induction results from
904 the inner loop outside of the outer loop.
905
bdd31be6 9062012-05-21 H.J. Lu <hongjiu.lu@intel.com>
907
908 PR target/53416
909 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
910 (UNSPECV_RDRAND): This.
911 (rdrand<mode>_1): Updated.
912
6681da88 9132012-05-21 Richard Guenther <rguenther@suse.de>
914
915 * tree-loop-distribution.c (can_generate_builtin): Reject
916 volatile stmts.
917
abe01860 9182012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
919
920 * Makefile.in (options.c): Add options.h to included header
921 files, before tm.h.
922
0773b627 9232012-05-21 Razya Ladelsky <razya@il.ibm.com>
924
b1182707 925 * tree-parloops.c : Add myself to contributors, update
0773b627 926 TODO list, add link to wiki.
927
ae4dcb11 9282012-05-21 Alan Modra <amodra@gmail.com>
929
930 * config/rs6000/predicates.md (input_operand): Don't match
931 constant pool addresses. Remove label_ref, high and plus from
932 match_code list. Remove redundant CONSTANT_P test.
933 (splat_input_operand): Similarly update match_code list.
934 (small_toc_ref): New predicate.
935 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
936 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
937 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
938 register checks to..
939 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
940 generated by create_TOC_reference.
941 (rs6000_legitimize_address): Update cerate_TOC_reference call.
942 (rs6000_delegitimize_address): Handle new rtl for toc refs.
943 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
944 (use_toc_relative_ref): New function, split out from..
945 (rs6000_emit_move): ..here. Remove redundant tests. Update
946 create_TOC_reference calls.
947 (rs6000_legitimize_reload_address): Formatting. Handle splitting
948 of medium/large model toc addresses. Use use_toc_relative_ref.
949 (print_operand): Formatting, style. Adjust for toc changes.
950 (print_operand_address): Likewise.
951 (rs6000_output_addr_const_extra): Likewise.
952 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
953 than a PLUS. Use this formulation for both high and low part
954 of -mcmodel=medium/large toc reference too. Before reload,
955 always use the small model formulation.
956 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
957 a PLUS in high part of addresses here.
958 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
959 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
960 (largetoc_high, largetoc_low): Move earlier. Cope when no
961 base reg available.
962 (largetoc_high_plus): New insn.
963 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
964 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
965 (tocref): ..instead do so here, new insn and split.
966
db3de906 9672012-05-20 H.J. Lu <hongjiu.lu@intel.com>
968
969 * config/i386/driver-i386.c (host_detect_local_cpu): Support
970 RDRND, F16C and FSGSBASE.
971
c91c5188 9722012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
973
974 PR rtl-optimzation/53373
975 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
976 call pattern. Update split patterns.
977 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
978 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
979
362dc73c 9802012-05-20 Razya Ladelsky <razya@il.ibm.com>
b1182707 981
982 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
983 for outer loops.
362dc73c 984
18a71d50 9852012-05-18 Jan Hubicka <jh@suse.cz>
986
987 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
988 (cgraph_process_new_functions): Process also aliases.
989 * lto-streamer-out.c (struct sets): Remove.
990 (trivally_defined_alias): Remove.
991 (output_alias_pair_p): Remove.
992 (output_unreferenced_globals): Remove.
993 (produce_symtab); Do not handle alias pairs.
994 (produce_asm_for_decls): Likewise.
995 * lto-streamer-in.c (input_alias_pairs): Remove.
996 (lto_read_body): Do not input alias pairs.
997 (lto_input_constructors_and_inits): Remove.
998
48c84ee3 9992012-05-18 Jan Hubicka <jh@suse.cz>
1000
b1182707 1001 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
1002 aliases.
48c84ee3 1003
a65b88bf 10042012-05-18 Jan Hubicka <jh@suse.cz>
1005
1006 * cgraphbuild.c (record_reference): Update.
1007 * lto-cgraph.c (lto_output_varpool_node): External vars
1008 are not in other partition even if they are not output
1009 in current partition.
1010 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
1011 argument; fix.
1012 (canonicalize_constructor_val): Take FROM_DECL argument.
1013 (fold_ctor_reference, fold_string_cst_ctor_reference,
1014 fold_array_ctor_reference, fold_nonarray_ctor_reference,
1015 fold_ctor_reference): Likewise.
1016 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
1017 * gimple.h (gimple_fold_builtin): Likewise.
1018
01922927 10192012-05-18 Olivier Hainque <hainque@adacore.com>
1020
1021 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
1022 $(libsubdir) as libexecsubdir.
1023
dcc95d92 10242012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1025
1026 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
1027 relied on signed overflow behavior.
1028
58ccfbea 10292012-05-18 Richard Guenther <rguenther@suse.de>
1030
1031 PR tree-optimization/53346
1032 * tree-loop-distribution.c (ldist_gen): Make sure to apply
1033 builtin transform even when only a single partition with
1034 all reads/writes exists.
1035
a72a38f4 10362012-05-18 Richard Guenther <rguenther@suse.de>
1037
1038 PR tree-optimization/53390
1039 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
1040 strided loads.
1041
97269507 10422012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1043
1044 * tree-ssa-reassoc.c (bip_map): Remove decl.
1045 (completely_remove_stmt): Remove function.
1046 (remove_def_if_absorbed_call): Remove function.
1047 (remove_visited_stmt_chain): Remove __builtin_powi handling.
1048 (possibly_move_powi): Remove function.
1049 (rewrite_expr_tree): Remove calls to possibly_move_powi.
1050 (rewrite_expr_tree_parallel): Likewise.
1051 (attempt_builtin_powi): Build multiplies explicitly rather than
1052 relying on the ops vector and rank system.
1053 (transform_stmt_to_copy): New function.
1054 (transform_stmt_to_multiply): Likewise.
1055 (reassociate_bb): Handle leftover operations after __builtin_powi
1056 optimization; build a final multiply if necessary.
1057
2d4bf241 10582012-05-18 Jan Hubicka <jh@suse.cz>
1059
1060 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
1061 (mark_functions_to_output): Fix sanity check.
b1182707 1062 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
2d4bf241 1063
a7745367 10642012-05-18 Richard Guenther <rguenther@suse.de>
1065
1066 * tree-flow.h (mark_symbols_for_renaming): Remove.
1067 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
b1182707 1068 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
a7745367 1069 (copy_debug_stmt): Likewise.
1070 (expand_call_inline): Likewise.
1071 (declare_return_variable): Mark the return variable for renaming
1072 if necessary.
1073
ffcc986d 10742012-05-18 Andrew Stubbs <ams@codesourcery.com>
1075
1076 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
1077 prototype.
1078 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
1079 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
1080 (ashrdi3,lshrdi3): Likewise.
1081 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
1082
3a966565 10832012-05-18 Meador Inge <meadori@codesourcery.com>
1084
1085 PR rtl-optimization/53352
1086 * cse.c (equiv_constant): Ignore paradoxical subregs.
1087
cb454387 10882012-05-17 Steven Bosscher <steven@gcc.gnu.org>
1089
1090 PR rtl-optimization/53125
1091 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
1092 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
1093 die in the basic block. Correctly top off REG_FREQ and
1094 REG_FREQ_CALLS_CROSSED.
1095 Remove do_not_gen.
1096 (regstat_compute_ri): Allocate and free local_live_last_luid.
1097 Remove do_not_gen.
1098 (regstat_bb_compute_calls_crossed): Correctly top off
1099 REG_FREQ_CALLS_CROSSED.
1100
aa419a52 11012012-05-17 Jan Hubicka <jh@suse.cz>
1102
b1182707 1103 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
1104 constructor over decl without.
aa419a52 1105 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
1106 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
b1182707 1107 * cgraphunit.c (process_function_and_variable_attributes): Finalize
aa419a52 1108 extrnal decls.
b1182707 1109 (mark_functions_to_output): Also accept bodies for functions with
1110 clones.
aa419a52 1111 (output_in_order): Skip external vars.
1112 * lto-cgraph.c (lto_output_node): External functions are never in other
1113 partition.
1114 (lto_output_varpool_node): Likewise.
1115 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
1116 forgotten initializers.
1117 * ipa.c (process_references): Handle external vars.
1118 (symtab_remove_unreachable_nodes): Update to handle external vars.
1119 (varpool_externally_visible_p): External vars are externally visible.
1120 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
1121 * varpool.c (varpool_remove_node): Remove constructor.
1122 (decide_is_variable_needed): Handle externals.
1123 (varpool_remove_unreferenced_decls): Likewise.
1124
db490cb6 11252012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
1126
1127 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
1128 (enable_warning_as_error): Do not special case Wuninitialized.
1129 * optc-gen.awk: Add sanity checks.
1130
a7847fbd 11312012-05-17 Jan Hubicka <jh@suse.cz>
1132
1133 * ipa-reference.c (is_proper_for_analysis): Do not check flags
1134 that might change as result of global optimization.
1135 (analyze_function): Do not check analyzed and externally_visible
1136 flags; be happy about address dereferences.
1137 (propagate): Prune all_module_statics so it really contains just
1138 statics; prune all the local summaries.
1139 (ipa_reference_write_optimization_summary): Simplify.
1140
54418b27 11412012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
1142
b1182707 1143 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
54418b27 1144 * config/m68k/m68k-tables.opt: Regenerated.
1145 * doc/invoke.texi (M680x0 Options): Document.
1146
2670559d 11472012-05-16 Dave Boutcher <daveboutcher@gmail.com>
1148 Patrick Marlier <patrick.marlier@gmail.com>
1149
1150 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
1151 indirect calls.
1152
b4b3bbba 11532012-05-16 H.J. Lu <hongjiu.lu@intel.com>
1154
1155 * configure: Regenerated.
1156
1eaedae6 11572012-05-16 Andrew Pinski <apinski@cavium.com>
1158
1159 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
1160 GIMPLE_ASSIGN.
1161
ad35ffdc 11622012-05-16 David S. Miller <davem@davemloft.net>
1163
1164 * jump.c (delete_related_insns): If we remove a CALL, make sure
1165 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
1166
97bad265 11672012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1168
1169 PR tree-optimization/53217
1170 * tree-ssa-reassoc.c (bip_map): New static variable.
1171 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
1172 (attempt_builtin_powi): Save feeding multiplies on a stack.
1173 (reassociate_bb): Create and destroy bip_map.
1174
9281483c 11752012-05-16 Olivier Hainque <hainque@adacore.com>
1176
1177 * Makefile.in (install-no-fixedincludes): New target, former toplevel
1178 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
1179 Add comments and improve stamp preservation across the whole sequence.
1180 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
1181
cbbd431d 11822012-05-16 Richard Guenther <rguenther@suse.de>
1183
1184 * tree-inline.c (insert_init_stmt): Do not call
1185 mark_symbols_for_renaming.
1186 (setup_one_parameter): Avoid initializing unused parameters.
1187 (declare_return_variable): Properly handle DECL_BY_REFERENCE
1188 return vars in SSA form.
1189
35505f9a 11902012-05-16 Richard Guenther <rguenther@suse.de>
1191
1192 * tree-flow.h (get_virtual_var): Remove.
1193 * tree-dfa.c (get_virtual_var): Likewise.
1194
1e8cf080 11952012-05-16 Richard Guenther <rguenther@suse.de>
1196
1197 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
1198 Remove set-only bitmap of new names.
1199 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
1200 CFG hooks.
1201 * tree-flow.h (ssa_names_to_replace): Remove.
1202 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
1203
5ef4302d 12042012-05-16 Richard Guenther <rguenther@suse.de>
1205
1206 PR tree-optimization/53364
1207 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1208 detect a view-conversion of the decl.
1209
a60f3e81 12102012-05-16 Dodji Seketeli <dodji@redhat.com>
1211
1212 PR preprocessor/7263
1213 * c-tree.h (enum c_declspec_word): Declare new enum.
1214 (struct c_declspecs::locations): New member.
1215 (declspecs_add_qual, declspecs_add_scspec)
1216 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
1217 location parameter.
1218 * c-decl.c (build_null_declspecs): Initialize the new struct
1219 c_declspecs::locations member.
1220 (declspecs_add_addrspace): Take a location parameter for the
1221 address space. Store it onto declaration specifiers.
1222 (declspecs_add_qual): Likewise, take a location parameter for the
1223 qualifier.
1224 (declspecs_add_type): Likewise, take a location parameter for the
1225 type specifier.
1226 (declspecs_add_scspec): Likewise, take a location parameter for
1227 the storage class specifier.
1228 (declspecs_add_attrs): Likewise, take a location parameter for the
1229 first attribute.
1230 (declspecs_add_alignas): Likewise, take a location parameter for
1231 the alignas token.
1232 (finish_declspecs): For diagnostics, use the location of the
1233 relevant declspec, instead of the global input_location.
1234 * c-parser.c (c_parser_parameter_declaration): Pass the precise
1235 virtual location of the declspec to the declspecs-setters.
1236 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
1237 repeatedly.
1238
e54ce707 12392012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
1240
1241 * configure.ac: Stack protector enabling for Android targets.
1242 * configure: Regenerate.
1243
f42197a5 12442012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
1245
1246 * ira.c (pseudo_move_insn): Delete.
1247 (find_moveable_pseudos): Don't set it.
1248 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
1249 the definitions of the original pseudo. Delete all of them.
1250
76303083 12512012-05-16 Olivier Hainque <hainque@adacore.com>
1252
1253 * config/rs6000/rs6000-opts.h (enum processor_type): Add
1254 PROCESSOR_PPC8548.
1255 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
1256 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
1257 * config/rs6000/8540.md: indicate that the units/patterns apply to
1258 ppc8548 as well.
1259
1260 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
1261 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
1262 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
1263 related flags, check that what is queried is supported by the selected
1264 configuration. Rework the single/double_float and MASK_STRING resets to
1265 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
1266 costs for PROCESSOR_PPC8548 as well.
1267 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
1268 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
1269 statement instead of a sequence of ifs.
1270
1271 * config/rs6000/rs6000.h (TARGET_E500): Remove.
1272 (TARGET_NO_LWSYNC): Adjust accordingly.
1273 * config/rs6000/e500.h (TARGET_E500): Remove.
1274 (CHECK_E500_OPTIONS): Adjust accordingly.
1275 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
1276 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
1277 * config/rs6000/linuxspe.h: Likewise.
1278 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
1279 superfluous comments.
1280 * config/rs6000/e500-double.h: Remove.
1281
1282 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
1283 default to with_cpu=8548 if --enable-e500-double, and to 8540
1284 otherwise.
1285 (set misc flags section): For powerpc*|rs6000*, remove inclusion
1286 of e500-double.h for --enable-e500-double.
1287
136fa403 12882012-05-16 Olivier Hainque <hainque@adacore.com>
1289
1290 * Makefile.in (s-header-vars): Resort to -n instead of trailing
1291 -e d in sed invocation.
1292
816c3ff2 12932012-05-16 Hans-Peter Nilsson <hp@axis.com>
1294
1295 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
1296 source-code.
1297 * doc/tm.texi: Regenerate.
1298
de9d5a8c 12992012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
1300
1301 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
1302
f2a4755d 13032012-05-15 Jakub Jelinek <jakub@redhat.com>
1304
1305 PR target/53358
1306 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
1307 that operands[2] is either immediate, or q_regs_operand.
1308
37ffa8fe 13092012-05-15 Richard Guenther <rguenther@suse.de>
1310
1311 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
1312 (assemble_thunk): Likewise. Manually rename and register
1313 function arguments.
1314
e7ea1c21 13152012-05-15 Richard Guenther <rguenther@suse.de>
1316
1317 PR tree-optimization/53355
1318 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
1319 by constants.
1320
d1f1c0a9 13212012-05-15 Tristan Gingold <gingold@adacore.com>
1322
b1182707 1323 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
d1f1c0a9 1324
5168aa67 13252012-05-15 Richard Guenther <rguenther@suse.de>
1326
1327 * gimple.c (gimple_set_modified): Move ...
1328 * gimple.h (gimple_set_modified): ... here.
1329
135c4579 13302012-05-15 Tristan Gingold <gingold@adacore.com>
1331
1332 * ira-color.c (move_spill_restore): Add a guard.
1333
675fed0b 13342012-05-15 Tristan Gingold <gingold@adacore.com>
1335
1336 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
1337 plus_constant.
1338
94a6770c 13392012-05-15 Eric Botcazou <ebotcazou@adacore.com>
1340
1341 * gimplify.c (gimplify_init_constructor): Do a block move for very
1342 small objects as well.
1343
e453e47c 13442012-05-15 Bernd Schmidt <bernds@codesourcery.com>
1345
1346 * ira.c (find_moveable_pseudos): Skip registers whose
1347 DF_REG_EQ_USE_COUNT is nonzero.
1348
c9bf5a0e 13492012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
1350
b1182707 1351 * doc/md.texi (fma): Define to only be applicable for single rounding.
d1f1c0a9 1352
c6dab7d2 13532012-05-14 Uros Bizjak <ubizjak@gmail.com>
1354
1355 PR target/46098
1356 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
1357 generate target register for "load" class builtins.
1358
1359 Revert:
1360 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
1361
1362 PR target/46098
1363 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
1364 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
1365 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
1366 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
1367 (<sse>_movu<ssemodesuffix>): New expander.
1368 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
1369 (avx_movdqu<avxmodesuffix>): New expander.
1370 (*sse2_movdqu): Rename from sse2_movdqu.
1371 (sse2_movdqu): New expander.
1372
801c4432 13732012-05-14 Marc Glisse <marc.glisse@inria.fr>
1374
1375 PR target/52607
1376 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
1377 (canonicalize_perm): ... new function.
1378 (expand_vec_perm_2vperm2f128_vshuf): New function.
1379 (ix86_expand_vec_perm_const_1): Call it.
1380
5dc7473d 13812012-05-14 Andrew Pinski <apinski@cavium.com>
1382 H.J. Lu <hongjiu.lu@intel.com>
1383 Jakub Jelinek <jakub@redhat.com>
1384
1385 PR target/53315
c6dab7d2 1386 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
5dc7473d 1387 (xbegin): Updated.
1388
f449422d 13892012-05-14 Jakub Jelinek <jakub@redhat.com>
1390
130129dd 1391 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
1392 lineno 1 the same as lineno 0 before first start file directive.
1393 (optimize_macinfo_range): Likewise.
1394
f449422d 1395 * dwarf2out.c (have_macinfo): Define.
1396 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
1397 attribute, don't force empty compilation unit and don't emit any
1398 .debug_macinfo/.debug_macro section if macinfo_table is empty.
1399
5a9cc803 14002012-05-14 Georg-Johann Lay <avr@gjlay.de>
1401
1402 PR target/53344
1403 * config/avr/avr.c (avr_const_address_lo16): Remove.
1404 (avr_assemble_integer): Print ".byte lo8(x)",
1405 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
b1182707 1406 .warning if 3-byte address is assembled.
5a9cc803 1407 * doc/extend.texi (AVR Named Address Spaces): Document that
1408 binutils 2.23 is needed to assemble 3-byte addresses.
1409
a9696ee9 14102012-05-14 Richard Guenther <rguenther@suse.de>
1411
1412 * tree-vect-data-refs.c (vect_setup_realignment): Remove
1413 call to mark_symbols_for_renaming.
1414 (vect_permute_load_chain): Likewise.
1415 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
1416 instead of calling mark_symbols_for_renaming.
1417 * tree-vect-stmts.c (read_vector_array): Remove call to
1418 mark_symbols_for_renaming.
1419 (write_vector_array): Likewise.
1420 (vectorizable_call): Likewise.
1421 (vectorizable_store): Likewise.
1422 (vectorizable_load): Likewise.
1423 * matrix-reorg.c (transform_allocation_sites): Likewise.
1424 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
1425 (create_expression_by_pieces): Likewise.
1426
95eb4ad3 14272012-05-14 Richard Guenther <rguenther@suse.de>
1428
1429 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
1430 of statements for renaming.
1431 (force_gimple_operand_1): Likewise, consistently for both
1432 calls to force_gimple_operand and force_gimple_operand_gsi.
1433
083152fb 14342012-05-14 Richard Guenther <rguenther@suse.de>
1435
1436 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
1437 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
1438 to update_ssa.
1439 (expand_omp_for): Likewise.
1440 (expand_omp_for_generic): Adjust conditional add to referenced vars.
1441 Use make_rename_temp for temporaries that should be rewritten into
1442 SSA form.
1443 (expand_omp_for_static_nochunk): Likewise.
1444 (expand_omp_atomic_pipeline): Likewise.
1445
506aa8fc 14462012-05-14 Richard Guenther <rguenther@suse.de>
1447
1448 PR tree-optimization/53331
1449 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
1450 strided loads.
1451 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
1452
d3b7ee7c 14532012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
1454
1455 PR 53063
1456 * doc/options.texi: (LangEnabledBy): Document it.
1457 * optc-gen.awk: Handle LangEnabledBy.
1458 * opth-gen.awk: Generate declaration for lang-specific functions.
1459 * opt-read.awk: Record lang numbers.
1460 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
1461 (lang_sanitized_name): New.
1462
c8010b80 14632012-05-14 Bernd Schmidt <bernds@codesourcery.com>
1464
1465 * attribs.c (decl_attributes): Avoid emitting a warning if
1466 ATTR_FLAG_BUILT_IN.
1467 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
1468 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
c8010b80 1469 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
1470 define a string "1".
1471 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
1472 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
1473 BUILT_IN_STRCPY): Use it for these functions.
1474 * postreload.c (reload_combine): Deal with SETs inside
1475 CALL_INSN_FUNCTION_USAGE.
1476 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
1477 Look for REG_RETURNED notes and use a cheap restore if possible.
1478 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
1479 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
1480 * ira-build.c (ira_create_allocno, create_cap_allocno,
1481 propagate_allocno_info, propagate_some_info_from_allocno,
1482 copy_info_to_removed_store_destination, ira_flattening): Handle it.
1483 * ira-lives.c (pseudo_regno_single_word_and_live_p,
1484 find_call_crossed_cheap_reg): New static functions.
1485 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
1486 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
1487 a REG_RETURNED note in that case.
1488 * ira.c (setup_reg_renumber): Change assert to allow cases where
1489 allocnos only cross calls for which they are cheap to restore.
1490 * ira-costs.c (ira_tune_allocno_costs): Compare
1491 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
1492 than 0.
1493 * reg-notes.def (REG_RETURNED): New note.
1494 * cse.c (cse_insn): Likewise.
1495 * sched-deps.c (sched_analyze_insn): Likewise.
1496 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
1497 * calls.c (decl_return_flags): New static function.
1498 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
1499 functions that return one of their arguments.
c8010b80 1500 * regcprop.c (struct kill_set_value_data): New.
1501 (kill_set_value): Interpret data as a pointer to such a struct.
1502 Do nothing if the caller wants the register to be ignored.
1503 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
1504
1c88e4bc 15052012-05-14 Richard Guenther <rguenther@suse.de>
1506
1507 PR tree-optimization/53340
1508 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
1509
a31fefa3 15102012-05-14 Richard Guenther <rguenther@suse.de>
1511
1512 * gimplify.c (gimplify_expr): Remove odd code.
1513
d9906773 15142012-05-14 Eric Botcazou <ebotcazou@adacore.com>
1515
1516 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
1517 into a PLUS_EXPR byte offset.
1518
1519 * tree-ssa-pre.c (can_value_number_call): Delete.
1520 (compute_avail): Skip all statements with side effects.
1521 <GIMPLE_CALL>: Skip calls to internal functions.
1522
3e894428 15232012-05-13 Steven Bosscher <steven@gcc.gnu.org>
1524
1525 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
1526
70059cea 15272012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
1528
1529 * common.opt (Wtype-limits): Use EnabledBy.
1530
513529cd 15312012-05-13 Uros Bizjak <ubizjak@gmail.com>
1532
1533 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
1534 (pushtf splitter): Ditto.
1535 (movtf): Ditto.
1536 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
1537 (<code>tf2): Enable for TARGET_SSE.
1538 (*absnegtf2_sse): Ditto.
1539 (copysign<mode>3): Enable TFmode for TARGET_SSE.
1540 (copysign<mode>3_const): Ditto.
1541 (copysign<mode>3_var): Ditto.
1542 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
1543 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
1544 (*<code>tf3): Ditto.
1545 * config/i386/i386.c (struct builtin_description bdesc_args)
1546 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
1547 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
1548 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
1549 Emit a normal call if SSE isn't available.
1550
596112aa 15512012-05-13 Uros Bizjak <ubizjak@gmail.com>
1552
1553 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
1554 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
1555 (<code><mode>3): Ditto.
1556 (*andnot<mode>3): Ditto.
1557 (*andnottf3): Ditto.
1558 (*<code><mode>3): Ditto.
1559 (<code>tf3): Ditto.
1560
4584d89f 15612012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
1562
1563 * optc-gen.awk: Error instead of warning for conflicting help.
1564
cc6e6715 15652012-05-12 Jason Merrill <jason@redhat.com>
1566
1567 PR debug/53235
1568 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
1569 comdat types.
1570
ec3aa8fe 15712012-05-12 Eric Botcazou <ebotcazou@adacore.com>
1572
1573 * function.c (requires_stack_frame_p): If the function can throw
1574 non-call exceptions, return true if the insn can throw internally.
1575
05765a91 15762012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
1577
1578 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
1579
c4d3c065 15802012-05-12 Uros Bizjak <ubizjak@gmail.com>
1581
1582 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
1583 ORDERED and UNORDERED conditions.
1584
0de7f8dd 15852012-05-11 Richard Guenther <rguenther@suse.de>
1586
1587 * tree-flow.h (referenced_var_check_and_insert): Remove.
1588 (find_new_referenced_vars): Likewise.
1589 * tree-dfa.c (referenced_var_check_and_insert): Make static.
1590 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
1591 * tree-inline.c (copy_bb): Use find_referenced_vars_in
1592 instead of find_new_referenced_vars.
1593 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
1594
615091c1 15952012-05-11 Richard Guenther <rguenther@suse.de>
1596
1597 * tree-pass.h (pass_rest_of_compilation,
1598 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
1599 Remove.
1600 * passes.c (pass_all_optimizations, pass_postreload,
1601 pass_all_early_optimizations): Make static.
1602 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
1603 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
1604 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
1605 (delete_tree_ssa): Do not call fini_phinodes.
1606 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
1607
fbb6fbd8 16082012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
1609
1610 PR 53063
1611 * doc/options.texi (EnabledBy): Document
1612 * opts.c: Include opts.h and options.h before tm.h.
1613 (finish_options): Do not handle some sub-options here...
ea1760a3 1614 (common_handle_option): ... instead call common_handle_option_auto
1615 here.
fbb6fbd8 1616 * optc-gen.awk: Handle EnabledBy.
1617 * opth-gen.awk: Declare common_handle_option_auto.
1618 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
1619 (Wmaybe-uninitialized): Likewise.
c6dab7d2 1620 (Wunused-but-set-variable): Likewise.
1621 (Wunused-function): Likewise.
1622 (Wunused-label): Likewise.
1623 (Wunused-value): Likewise.
1624 (Wunused-variable): Likewise.
1625 * opt-read.awk: Create opt_numbers array.
fbb6fbd8 1626
f634c3e9 16272012-05-11 Richard Guenther <rguenther@suse.de>
1628
1629 PR tree-optimization/53295
1630 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
1631 strides.
1632 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
1633 strides when analyzing data-references in a loop context.
1634 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
1635 non-constant strides for now.
1636 (vect_enhance_data_refs_alignment): Ignore data references
1637 that are strided loads.
1638 (vect_analyze_data_ref_access): Handle non-constant strides.
1639 (vect_check_strided_load): Verify the data-reference is a load.
1640 (vect_analyze_data_refs): Restructure to make strided load
1641 support not dependent on gather support.
1642 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
1643 when doing strided or gather loads.
1644 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
1645 integer_zerop to compare stride with zero.
1646
91af12fe 16472012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1648
596112aa 1649 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
91af12fe 1650
015a842e 16512012-05-11 Jan Hubicka <jh@suse.cz>
1652
1653 PR bootstrap/53300
1654 * varpool.c (varpool_assemble_decl): Also output constat pool entries
1655 that output_constant_pool missed.
1656
b87e70ca 16572012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
1658
1659 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
1660 MULTILIB_EXTRA_OPTS.
1661
2b26d531 16622012-05-11 Uros Bizjak <ubizjak@gmail.com>
1663
1664 PR target/53291
1665 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
1666
7c93cdac 16672012-05-11 Uros Bizjak <ubizjak@gmail.com>
1668
1669 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
1670 optimization for TARGET_AVX.
1671 (*movti_internal_sse): Ditto.
1672 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
1673 (*movdi_internal): Ditto.
1674 (*movsi_internal): Ditto.
1675 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
1676 (*movdf_internal_rex64): Ditto.
1677 (*movfd_internal): Ditto.
1678 (*movsf_internal): Ditto.
1679 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
1680
670b32ab 16812012-05-10 Eric Botcazou <ebotcazou@adacore.com>
1682
1683 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
1684 reference as size attribute.
1685
28d5c3d9 16862012-05-10 Eric Botcazou <ebotcazou@adacore.com>
1687 Tristan Gingold <gingold@adacore.com>
1688
1689 * doc/md.texi (Standard Names): Document probe_stack_address.
1690 * explow.c (emit_stack_probe): Handle probe_stack_address.
1691 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
1692 (UNSPECV_PROBE_STACK_RANGE): Likewise.
1693 (probe_stack_address): New insn.
1694 (probe_stack_range): Likewise.
1695 * config/ia64/ia64.c: Include common/common-target.h.
1696 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
1697 checking is enabled.
1698 (ia64_emit_probe_stack_range): New function.
1699 (output_probe_stack_range): Likewise.
1700 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
1701 builtin stack checking is enabled.
1702 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
1703 and UNSPECV_PROBE_STACK_ADDRESS.
1704 (unknown_for_bundling_p): New predicate.
1705 (group_barrier_needed): Use important_for_bundling_p.
1706 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
1707 (issue_nops_and_insn): Likewise.
1708 (bundling): Likewise.
1709 (final_emit_insn_group_barriers): Likewise.
1710 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
1711 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
1712 (STACK_CHECK_PROTECT): Likewise.
1713 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1714
e8e650cf 17152012-05-10 Jan Hubicka <jh@suse.cz>
1716
1717 * ipa-inline.c (update_all_callee_keys): Remove.
1718 (inline_small_functions): Simplify priority updating.
1719
303c3a7d 17202012-05-10 Jan Hubicka <jh@suse.cz>
1721
1722 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
1723
91f0ab48 17242012-05-10 Jan Hubicka <jh@suse.cz>
1725
1726 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
1727 (symtab_remove_unreachable_nodes): ... this one.
1728 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
1729 * cgraphunit.c (ipa_passes): Update.
1730 * cgraphclones.c (cgraph_materialize_all_clones): Update.
1731 * cgraph.c (cgraph_release_function_body): Only turn initial
1732 into error mark when initial was previously set.
1733 * ipa-inline.c (ipa_inline): Update.
1734 * ipa.c: Include ipa-inline.h
1735 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
1736 (enqueue_node): New function.
1737 (process_references): Update.
1738 (symtab_remove_unreachable_nodes): Cleanup.
1739 * passes.c (execute_todo, execute_one_pass): Update.
1740
b105f58b 17412012-05-10 Vladimir Makarov <vmakarov@redhat.com>
1742
1743 PR rtl-optimization/53125
0399122b 1744 * ira.c (ira): Call find_moveable_pseudos and
b105f58b 1745 move_unallocated_pseudos if only ira_conflicts_p is true.
1746
dab25421 17472012-05-10 Uros Bizjak <ubizjak@gmail.com>
1748
1749 * config/i386/i386.md (*movoi_internal_avx): Handle
1750 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
1751 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
1752 (*movti_internal_sse): Ditto.
1753 (*movtf_internal): Ditto.
1754 * config/i386/sse.md (ssePSmode): New mode attribute.
1755 (*move<mode>_internal): Use ssePSmode.
1756 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
1757 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
1758 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
1759 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
1760
72e1426b 17612012-05-10 Eric Botcazou <ebotcazou@adacore.com>
1762
1763 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
1764 DECL_ORIGINAL_TYPE if it is present.
1765
56828342 17662012-05-10 Nick Clifton <nickc@redhat.com>
1767
1768 PR target/53120
1769 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
1770 a "0" constraint to being a (match_dup 0).
1771
dcb06804 17722012-05-10 Richard Guenther <rguenther@suse.de>
1773
1774 * stor-layout.c (byte_from_pos): Amend comment.
1775
98c9b52b 17762012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1777
1778 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
1779 Document requirement to call in constructors.
1780
dab25421 1781 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
98c9b52b 1782
5a1fe2db 17832012-05-10 Richard Guenther <rguenther@suse.de>
1784
1785 * tree.h (TYPE_IS_SIZETYPE): Remove.
1786 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
1787 (extract_muldiv_1): Likewise.
1788 * gimple.c (gtc_visit): Likewise.
1789 (gimple_types_compatible_p): Likewise.
1790 (iterative_hash_canonical_type): Likewise.
1791 (gimple_canonical_types_compatible_p): Likewise.
1792 * gimplify.c (gimplify_one_sizepos): Likewise.
1793 * print-tree.c (print_node): Likewise.
1794 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
1795
72b48d28 17962012-05-09 Uros Bizjak <ubizjak@gmail.com>
1797
1798 PR target/52908
1799 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
1800 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
1801 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
1802 instead of xop_mulv2div2di3_low.
1803 (xop_p<macs>dql): Fix vec_select selector.
1804 (xop_p<macs>dqh): Ditto.
1805 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
1806 (xop_mulv2div2di3_high): Ditto.
1807
d834564a 18082012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1809
1810 PR c++/53289
1811 * diagnostic.h (diagnostic_context): Add last_location.
1812 * diagnostic.c (diagnostic_initialize): Initialize it.
1813 (diagnostic_show_locus): Use it.
1814
fd0ccb39 18152012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1816
c6dab7d2 1817 * doc/extend.texi (Function Attributes): Point xref to section
fd0ccb39 1818 about Pragmas.
1819
f2dce612 18202012-05-09 Uros Bizjak <ubizjak@gmail.com>
1821
1822 * config/i386/i386.c (*movdf_internal_rex64): Remove
1823 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
1824 Calculate "mode" attribute according to
1825 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
1826 (*movdf_internal): Ditto.
1827
034788fc 18282012-05-09 Uros Bizjak <ubizjak@gmail.com>
1829
1830 PR target/44141
1831 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
1832 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
1833 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
1834 or when optimizing for size.
1835 * config/i386/sse.md (*mov<mode>_internal): Remove
1836 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
1837 Calculate "mode" attribute according to optimize_function_for_size_p
1838 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
1839 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
1840 depending on the mode of the instruction. Calculate "mode" attribute
1841 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
1842 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
1843 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
1844
ea679361 18452012-05-09 Georg-Johann Lay <avr@gjlay.de>
1846
1847 PR target/53256
1848 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
1849 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
1850 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
1851 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
1852 (expand_prologue): Move initialization of cfun->machine->is_naked,
1853 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
1854 (avr_set_current_function): ...this new static function.
1855 (TARGET_SET_CURRENT_FUNCTION): New define.
1856 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
1857 checking attributes of current_function_decl.
1858 (avr_regs_to_save): Ditto.
1859 (signal_function_p): Rename to avr_signal_function_p.
1860 (interrupt_function_p): Rename to avr_interrupt_function_p.
1861
1862 * doc/extend.texi (Function Attributes): Better explanation of
1863 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
1864 alphabetical order.
1865
8faf5d30 18662012-05-09 Michael Matz <matz@suse.de>
1867
1868 PR tree-optimization/53185
1869 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
1870 peeling when we see strided loads.
1871
1ad03cbf 18722012-05-09 Matthias Klose <doko@ubuntu.com>
1873
1874 * gcc-ar.c (main): Don't check for execute bits for the plugin.
1875
aa1572b5 18762012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1877
1878 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
1879 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
1880 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
1881 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
1882 (USE_LOAD_POST_INCREMENT): Define.
1883 (USE_LOAD_PRE_INCREMENT): Define.
1884 (USE_LOAD_POST_DECREMENT): Define.
1885 (USE_LOAD_PRE_DECREMENT): Define.
1886 (USE_STORE_PRE_DECREMENT): Define.
1887 (USE_STORE_PRE_INCREMENT): Define.
1888 (USE_STORE_POST_DECREMENT): Define.
1889 (USE_STORE_POST_INCREMENT): Define.
1890 (arm_auto_incmodes): Add enumeration.
1891 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
1892 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
1893
2f5a3c4a 18942012-05-09 Jakub Jelinek <jakub@redhat.com>
1895
1896 PR tree-optimization/53226
1897 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
1898 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
1899 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
1900 doesn't need to be revisited, look for earliest stmt with
1901 !gimple_plf (stmt, GF_PLF_1) if something changed.
1902
e5ed43a0 19032012-05-09 Terry Guo <terry.guo@arm.com>
1904
1905 * genmultilib: Update copyright dates.
1906 * doc/fragments.texi: Ditto.
1907
cec45616 19082012-05-09 Terry Guo <terry.guo@arm.com>
1909
1910 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
1911 * genmultilib (MULTILIB_REQUIRED): New.
1912 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
1913
e7430948 19142012-05-09 Richard Guenther <rguenther@suse.de>
1915
1916 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
1917 (vect_do_peeling_for_loop_bound): Likewise.
1918 (vect_do_peeling_for_alignment): Likewise.
1919 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
1920 (vect_do_peeling_for_loop_bound): Get check_profitability and
1921 threshold as parameters.
1922 (vect_do_peeling_for_alignment): Likewise.
1923 (vect_loop_versioning): Likewise.
1924 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
1925 and threshold here. Control where to put the check here.
1926
87cf5753 19272012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
1928
1929 PR middle-end/53249
1930 * dwarf2out.h (get_address_mode): Move declaration to...
1931 * rtl.h: ...here.
1932 * dwarf2out.c (get_address_mode): Move definition to...
1933 * rtlanal.c: ...here.
1934 * var-tracking.c (get_address_mode): Delete.
1935 * combine.c (find_split_point): Use get_address_mode instead of
1936 targetm.addr_space.address_mode.
1937 * cselib.c (cselib_record_sets): Likewise.
1938 * dse.c (canon_address, record_store): Likewise.
1939 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
1940 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
1941 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
1942 (expand_expr_real_1): Likewise.
1943 * ifcvt.c (noce_try_cmove_arith): Likewise.
1944 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
1945 * reload.c (find_reloads): Likewise.
1946 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
1947 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
1948
31082222 19492012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
1950
1951 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
1952 information from the instruction produced.
1953
2765f7eb 19542012-05-09 Richard Guenther <rguenther@suse.de>
1955
1956 * stor-layout.c (bit_from_pos): Document.
1957 (byte_from_pos): Likewise. Optimize.
1958 (pos_from_bit): Likewise.
1959 (normalize_offset): Use pos_from_bit instead of replicating it.
1960
11dd6494 19612012-05-09 Alan Modra <amodra@gmail.com>
1962
1963 PR target/53271
1964 * config/rs6000/rs6000.c (gen_frame_set): New function.
1965 (gen_frame_load, gen_frame_store): New functions.
1966 (rs6000_savres_rtx): Use the above.
1967 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
1968 Correct mode used for CR2 in save/restore_world patterns.
1969 Don't emit instructions for eh_return frame unwind reg info.
1970
3d1c0354 19712012-05-08 Jan Hubicka <jh@suse.cz>
1972
1973 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
1974 with VALUE_EXPR.
1975 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
1976 are removable.
1977 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
1978 need to wrapup.
1979 (compile_file): Do not output variables.
1980 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
1981 output it.
1982 * langhooks.c: Include timevar.h
1983 (write_global_declarations): Finalize compilation unit after wrapup;
1984 set timevars correctly.
1985 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
1986 not to be added to varpool.
1987 * varpool.c (varpool_assemble_decl): Sanity check that we are called
1988 only on cases where it makes sense; skip constant pool and value expr
1989 vars.
1990
a083d7d2 19912012-05-08 David S. Miller <davem@davemloft.net>
1992
1993 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
1994 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
1995 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
1996
e5d6fbb8 19972012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
1998
1999 PR rtl-optimization/53278
2000 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
2001 speed_p code from earlier patch.
2002
0e1dddb4 20032012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2004
2005 PR target/51244
2006 * config/sh/sh.md (*branch_true, *branch_false): New insns.
2007
034788fc 20082012-05-08 Teresa Johnson <tejohnson@google.com>
4ef7becb 2009
2010 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
2011 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
2012
f41db742 20132012-05-08 Jan Hubicka <jh@suse.cz>
2014
2015 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
2016 (cgraph_create_node_1): Rename to ...
2017 (cgraph_create_empty_node): ... this one; export.
2018 (cgraph_create_node): Update.
2019 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
2020 (cgraph_create_edge_including_clones): Likewise.
2021 (cgraph_find_replacement_node): Likewise.
2022 (cgraph_clone_edge): Likewise.
2023 (cgraph_clone_node): Likewise.
2024 (clone_function_name): Likewise.
2025 (cgraph_create_virtual_clone): Likewise.
2026 (cgraph_remove_node_and_inline_clones): Likewise.
034788fc 2027 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
f41db742 2028 * cgraph.h: Reorder declarations so they match file of origin.
2029 (cgraph_create_empty_node): Declare.
2030 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
2031 (cgraph_copy_node_for_versioning): Likewise.
2032 (cgraph_function_versioning): Likewise.
2033 (cgraph_materialize_clone): Likewise.
2034 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
2035 (cgraph_materialize_all_clones): Likewise.
2036 * cgraphclones.c: New file.
2037 * Makefile.in: Update for cgraphclones.
2038
473a6f3e 20392012-05-08 Uros Bizjak <ubizjak@gmail.com>
2040
d44bd47c 2041 PR target/53176
473a6f3e 2042 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
2043 (ix86_rtx_costs): Handle SET.
2044
43e94e51 20452012-05-08 Michael Matz <matz@suse.de>
2046
2047 * basic-block.h (struct rtl_bb_info): Remove visited member and
2048 move head_ member to ...
2049 (struct basic_block_def.basic_block_il_dependent): ... the new
2050 member x, replacing but containing old member rtl.
2051 (enum bb_flags): New BB_VISITED flag.
2052 (BB_HEADER, BB_FOOTER): New macros.
2053
2054 * jump.c (mark_all_labels): Adjust.
2055 * cfgcleanup.c (try_optimize_cfg): Adjust.
2056 * cfglayout.c (record_effective_endpoints): Adjust.
2057 (relink_block_chain): Ditto (and don't fiddle with visited).
2058 (fixup_reorder_chain): Adjust.
2059 (fixup_fallthru_exit_predecessor): Ditto.
2060 (cfg_layout_duplicate_bb): Ditto.
2061 * combine.c (update_cfg_for_uncondjump): Adjust.
473a6f3e 2062 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
43e94e51 2063 (bb_visited_trace): New accessor.
2064 (mark_bb_visited): Move in front.
2065 (rotate_loop): Use bb_visited_trace.
2066 (find_traces_1_round): Ditto.
2067 (emit_barrier_after): Ditto.
2068 (copy_bb): Ditto, and initialize visited on resize.
2069 (reorder_basic_blocks): Initize visited member.
2070 (duplicate_computed_gotos): Clear bb flags at start, use
2071 BB_VISITED flags.
2072
2073 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
2074 (rtl_verify_flow_info_1): Ditto.
2075 (cfg_layout_split_block): Ditto.
2076 (cfg_layout_delete_block): Ditto.
2077 (cfg_layout_merge_blocks): Ditto.
2078 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
2079
826e3285 20802012-05-08 Hans-Peter Nilsson <hp@axis.com>
2081
2082 PR target/53272
2083 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
2084 when a constant source operand matches an "I" constraint, the "no
2085 CC0 change" applies to a register-destination only, not a
2086 strict_low_part-destination.
2087
42756cae 20882012-05-08 Richard Guenther <rguenther@suse.de>
2089
2090 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
2091 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
2092
8a92b4c3 20932012-05-08 Georg-Johann Lay <avr@gjlay.de>
2094
2095 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
2096
2097 * doc/avr-mmcu.texi: New auto-generated file.
2098 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
2099 to document all valid -mmcu= arguments.
2100
2101 * config/avr/avr.h (arch_info_s): New struct definition.
2102 * config/avr/avr-devices.c (avr_texinfo): New variable.
2103 * config/avr/gen-avr-mmcu-texi.c: New file.
2104 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
2105
fd757b76 21062012-05-08 Dehao Chen <dehao@google.com>
2107
28a0c749 2108 * predict.c (find_qualified_ssa_name): New.
2109 (find_ssa_name_in_expr): New.
2110 (find_ssa_name_in_assign_stmt): New.
2111 (is_comparison_with_loop_invariant_p): New.
2112 (is_bound_expr_similar): New.
2113 (predict_iv_comparison): New.
fd757b76 2114 (predict_loops): Add heuristic for loop-nested branches that compare an
2115 induction variable to a loop bound variable.
28a0c749 2116 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
fd757b76 2117
128e3935 21182012-05-08 Uros Bizjak <ubizjak@gmail.com>
2119
2120 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
2121 TARGET_BDVER2 defines where appropriate.
2122
61f41b94 21232012-05-07 Eric Botcazou <ebotcazou@adacore.com>
2124
2125 * configure.ac (PLUGIN_LD): Rename into...
2126 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
2127 * config.in: Regenerate.
2128 * configure: Likewise.
2129 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
2130
96c3acd0 21312012-05-07 Eric Botcazou <ebotcazou@adacore.com>
2132
2133 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
2134 computation using the precision of the index type.
2135 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
2136 (fold_array_ctor_reference): Do index computations in the index type.
2137
21382012-05-07 Georg-Johann Lay <avr@gjlay.de>
b51b04ad 2139
2140 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
2141 down to plus_constant.
2142 (expand_epilogue): Ditto.
2143
98799adc 21442012-05-07 Steven Bosscher <steven@gcc.gnu.org>
2145
2146 * postreload.c (reload_cse_regs): Make static.
2147 * reload.h (reload_cse_regs): Remove prototype.
2148
7c0618c6 21492012-05-07 Richard Henderson <rth@redhat.com>
2150
2151 * config/alpha/alpha.md (clear_cache): New pattern.
2152
fe812b34 21532012-05-07 Steven Bosscher <steven@gcc.gnu.org>
2154
2155 PR middle-end/53245
2156 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
2157 is folded to a type boundary value, verify that the resulting case
2158 label is still a care range.
2159
dbfd6d04 21602012-05-07 Uros Bizjak <ubizjak@gmail.com>
2161
2162 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
2163 only for TARGET_GENERIC, when not optimizing for size.
2164 (*ffs<mode>_1): Ditto.
2165
9a9033a9 21662012-05-07 Steven Bosscher <steven@gcc.gnu.org>
2167
2168 * tree-cfg.c (verify_gimple_switch): Tighten checks.
2169
0e443ce1 21702012-05-07 Jakub Jelinek <jakub@redhat.com>
2171
2172 PR tree-optimization/53239
128e3935 2173 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
2174 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
0e443ce1 2175
29f2d4e5 21762012-05-07 Richard Guenther <rguenther@suse.de>
2177
2178 PR tree-optimization/53195
2179 * tree-inline.c (setup_one_parameter): Properly add referenced
2180 vars from the parameters new known value.
2181
f4831ba5 21822012-05-07 Steven Bosscher <steven@gcc.gnu.org>
2183
2184 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
2185 (sched_branch_type): Remove.
2186 (m68k_sched_md_init_global): Don't allocate it.
2187 (m68k_sched_md_finish_global): Don't free it.
2188 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
29f2d4e5 2189 * config/m68k/m68k.md: Set the type of insns using
2190 m68k_sched_branch_type to bcc directly.
f4831ba5 2191
db66903a 21922012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2193
2194 * config/sol2.c (solaris_override_options): New function.
2195 * config/sol2-protos.h (solaris_override_options): Declare.
2196 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
2197
b920ee38 21982012-05-07 Richard Guenther <rguenther@suse.de>
2199
2200 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
2201 whether we failed to compute data dependences.
2202 (loop_prefetch_arrays): Fail if we failed.
2203
f1cb261b 22042012-05-07 Uros Bizjak <ubizjak@gmail.com>
2205 Paolo Bonzini <bonzini@gnu.org>
2206
2207 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
2208 Emit bsf when optimizing for size.
2209 (*ffs<mode>_1): Ditto.
2210
a846db2c 22112012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
2212
2213 PR target/53250
2214 * config/sh/sh.c (sh_rtx_costs): Handle SET.
2215
ead6176b 22162012-05-06 Uros Bizjak <ubizjak@gmail.com>
2217
2218 PR target/53227
2219 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
2220 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
2221 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
2222 (bswapsi2): Ditto.
2223 (*bswapdi2_doubleword): New insn pattern.
2224 (*bswap<mode>2): Rename from *bswap<mode>2_1.
2225
37bdfd8a 22262012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
2227
2228 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
2229 (mips_set_reg_reg_cost): Likewise.
2230 (mips_rtx_costs): Handle SET.
2231
a6d935b7 22322012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
2233
2234 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
2235 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
2236 to compute the cost of moves. Set the mode of the target register.
2237
29c05e22 22382012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
2239
2240 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
2241 plus_constant function.
2242 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
2243 that the mode is sensible.
2244 (use_anchored_address, round_push, allocate_dynamic_stack_space)
2245 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
2246 plus_constant.
2247
2248 * alias.c (canon_rtx): Likewise.
2249 (init_alias_analysis): Likewise.
2250 * builtins.c (expand_builtin_return_addr)
2251 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
2252 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
2253 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
2254 (expand_builtin_stpcpy): Likewise.
2255 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
2256 (compute_argument_addresses, internal_arg_pointer_based_exp)
2257 (expand_call, emit_library_call_value_1): Likewise.
2258 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
2259 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
2260 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
2261 * cse.c (insert_const_anchor, find_reg_offset_for_const)
2262 (use_related_value, fold_rtx): Likewise.
2263 * cselib.c (cselib_subst_to_values): Likewise.
2264 * dse.c (record_store, check_mem_read_rtx): Likewise.
2265 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
2266 * emit-rtl.c (adjust_address_1): Likewise.
2267 * except.c (sjlj_emit_function_enter)
2268 (expand_builtin_extract_return_addr)
2269 (expand_builtin_frob_return_addr): Likewise.
2270 * expmed.c (expand_divmod): Likewise.
2271 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
2272 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
2273 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
2274 * function.c (assign_stack_local_1)
2275 (instantiate_virtual_regs_in_rtx): Likewise.
2276 * optabs.c (prepare_cmp_insn): Likewise.
2277 * recog.c (offsettable_address_addr_space_p): Likewise.
2278 * reload.c (find_reloads_address, form_sum)
2279 (find_reloads_subreg_address): Likewise.
2280 * reload1.c (init_reload, eliminate_regs_1)
2281 (eliminate_regs_in_insn): Likewise.
2282 * simplify-rtx.c (simplify_unary_operation_1)
2283 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
2284 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
2285 (vt_add_function_parameter): Likewise.
2286
2287 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
2288 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
2289 * config/alpha/alpha.c (alpha_legitimize_address_1)
2290 (get_unaligned_address, alpha_expand_unaligned_load)
2291 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
2292 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
2293 (alpha_expand_builtin_establish_vms_condition_handler)
2294 (alpha_setup_incoming_varargs, emit_frame_store_1)
2295 (alpha_expand_prologue, alpha_expand_epilogue)
2296 (alpha_use_linkage): Likewise.
2297 * config/alpha/alpha.md: Likewise.
2298
2299 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
2300 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
2301 (thumb_legitimize_address, arm_gen_load_multiple_1)
2302 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
2303 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
2304 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
2305 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
2306 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
2307 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
2308 (thumb_expand_movmemqi, arm_set_return_address)
2309 (thumb_set_return_address): Likewise.
2310 * config/arm/arm.md: Likewise.
2311
2312 * config/avr/avr.c (avr_incoming_return_addr_rtx)
2313 (avr_prologue_setup_frame, expand_epilogue)
2314 (avr_const_address_lo16): Likewise.
2315
2316 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
2317 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
2318 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
2319 (bfin_output_mi_thunk): Likewise.
2320
2321 * config/c6x/c6x.c (c6x_initialize_trampoline)
2322 (c6x_output_mi_thunk): Likewise.
2323
2324 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
2325 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
2326
2327 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
2328 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
2329 (cris_emit_movem_store, cris_trampoline_init): Likewise.
2330 * config/cris/cris.md: Likewise.
2331
2332 * config/darwin.c (machopic_indirect_data_reference)
2333 (machopic_legitimize_pic_address): Likewise.
2334
2335 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
2336 (epiphany_expand_prologue, epiphany_expand_epilogue)
2337 (epiphany_trampoline_init): Likewise.
2338 * config/epiphany/epiphany.md: Likewise.
2339
2340 * config/fr30/fr30.c (fr30_move_double): Likewise.
2341
2342 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
2343 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
2344 (frv_index_memory, unspec_got_name, frv_find_base_term)
2345 (frv_output_dwarf_dtprel): Likewise.
2346
2347 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
2348 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
2349
2350 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
2351 * config/i386/i386.c (setup_incoming_varargs_64)
2352 (setup_incoming_varargs_ms_64, choose_baseaddr)
2353 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
2354 (ix86_emit_probe_stack_range, ix86_expand_prologue)
2355 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
2356 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
2357 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
2358 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
2359 (x86_output_mi_thunk): Likewise.
2360 * config/i386/i386.md: Likewise.
2361
2362 * config/ia64/ia64.c (ia64_expand_load_address)
2363 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
2364 (do_spill, ia64_trampoline_init): Likewise.
2365
2366 * config/iq2000/iq2000.c (iq2000_va_start)
2367 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
2368 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
2369 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
2370
2371 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
2372
2373 * config/m32c/m32c.c (m32c_return_addr_rtx)
2374 (m32c_expand_insv): Likewise.
2375
2376 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
2377 (m32r_legitimize_pic_address, m32r_print_operand)
2378 (m32r_print_operand_address): Likewise.
2379
2380 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
2381 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
2382 (EH_RETURN_HANDLER_RTX): Likewise.
2383 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
2384 (m68k_expand_epilogue, legitimize_pic_address)
2385 (m68k_output_mi_thunk): Likewise.
2386 * config/m68k/m68k.md: Likewise.
2387
2388 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
2389 (mcore_expand_epilog): Likewise.
2390 * config/mcore/mcore.md: Likewise.
2391
2392 * config/mep/mep.c (mep_allocate_initial_value)
2393 (mep_expand_prologue, mep_expand_epilogue): Likewise.
2394
2395 * config/microblaze/microblaze.c (double_memory_operand)
2396 (microblaze_block_move_loop): Likewise.
2397
2398 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
2399 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
2400 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
2401 (mips_expand_prologue, mips_epilogue_set_cfa)
2402 (mips_expand_epilogue): Likewise.
2403 * config/mips/mips.md: Likewise.
2404
2405 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
2406 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
2407
2408 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
2409 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
2410
2411 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
2412 (EH_RETURN_HANDLER_RTX): Likewise.
2413 * config/moxie/moxie.c (moxie_static_chain): Likewise.
2414
2415 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
2416 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
2417 (pa_return_addr_rtx, hppa_builtin_saveregs)
2418 (pa_trampoline_init): Likewise.
2419 * config/pa/pa.md: Likewise.
2420
2421 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
2422
2423 * config/picochip/picochip.c (picochip_static_chain): Likewise.
2424
2425 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
2426 * config/rs6000/rs6000.c (rs6000_legitimize_address)
2427 (setup_incoming_varargs, print_operand, rs6000_return_addr)
2428 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
2429 (rs6000_emit_epilogue)
2430 (rs6000_machopic_legitimize_pic_address): Likewise.
2431
2432 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
2433
2434 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
2435 (DYNAMIC_CHAIN_ADDRESS): Likewise.
2436 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
2437 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
2438 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
2439 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
2440 (s390_emit_epilogue, s390_function_profiler): Likewise.
2441 * config/s390/s390.md: Likewise.
2442
2443 * config/score/score.c (score_add_offset, score_prologue): Likewise.
2444
2445 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
2446 (sh_output_mi_thunk): Likewise.
2447 * config/sh/sh.md: Likewise.
2448
2449 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
2450 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
2451 * config/sparc/sparc.c (sparc_legitimize_pic_address)
2452 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
2453 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
2454 (emit_and_preserve): Likewise.
2455 * config/sparc/sparc.md: Likewise.
2456
2457 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
2458 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
2459 (spu_setup_incoming_varargs, ea_load_store_inline)
2460 (spu_expand_load): Likewise.
2461
2462 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
2463 (combine_bnp): Likewise.
2464
2465 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
2466 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
2467 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
2468
2469 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
2470 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
2471 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
2472
2473 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
2474 * config/v850/v850.md: Likewise.
2475
2476 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
2477 (EH_RETURN_HANDLER_RTX): Likewise.
2478 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
2479 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
2480 (print_operand_address, vax_trampoline_init): Likewise.
2481
2482 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
2483 (xtensa_function_value_regno_p): Likewise.
2484
c909ed33 24852012-05-04 Andrew Pinski <apinski@cavium.com>
2486
2487 * expr.c (get_def_for_expr_class): New function.
2488 (convert_tree_comp_to_rtx): New function.
2489 (expand_cond_expr_using_cmove): New function.
2490 (expand_expr_real_2 <case COND_EXPR>): Call
2491 expand_cond_expr_using_cmove first and return if it succeeds.
2492 Remove the check for HAVE_conditional_move since we should have
2493 already converted it to a conditional move.
2494 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
2495 modes of DImode for 32bits and TImode.
2496
73ed0c67 24972012-05-04 Steven Bosscher <steven@gcc.gnu.org>
2498
2499 PR other/29442
2500 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
2501 (print_md_ptr_loc, print_c_condition): Use them.
2502 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
2503 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
2504 attr_file, dfa_file, latency_file): New global variables.
2505 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
2506 write_upcase, write_indent, write_length_unit_log, write_test_expr,
2507 write_attr_get, write_insn_cases, write_eligible_delay,
2508 write_const_num_delay_slots): Accept FILE pointer and toss it around.
2509 Update all callers.
2510 (write_header, open_outfile, handle_arg): New funcions.
2511 (make_automaton_attrs): Write prototypes as extern to the output
2512 files.
2513 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
2514 names from the command line. Open the output files and write out
2515 internal functions for DFA functions to dfa_file_name, insn latency
2516 functions to latency_file_name, and everything else to attr_file.
2517 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
2518 (BACKEND): Build libbackend first.
2519 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
2520 (.PRECIOUS): Likewise.
2521 (insn-dfatab.o): New rule.
2522 (insn-latencytab.o): New rule.
2523 (simple_rtl_generated_c): Do not include insn-attrtab.c.
2524 (s-attrtab): New rule.
2525
6a8f5c57 25262012-05-04 Steven Bosscher <steven@gcc.gnu.org>
2527
2528 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
2529 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
2530 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
2531 * reorg.c (get_jump_flags): Do not set the removed flags.
2532
a2159ce7 2533 * doc/md.texi (attr_flag): Update for abovementioned changes.
2534
91fcc716 25352012-05-04 Uros Bizjak <ubizjak@gmail.com>
2536
2537 PR target/53228
2538 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
2539 (TARGET_CMOV): Rename from TARGET_CMOVE.
2540 (TARGET_CMOVE): New define.
2541 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
2542 Do not set TARGET_CMOVE here.
2543
e163935c 25442012-05-04 Dodji Seketeli <dodji@redhat.com>
2545
2546 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
2547 * opts.c (finish_options): Activate -Wunused-local-typedefs if
034788fc 2548 -Wunused is activated.
e163935c 2549 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
2550
c4ded1f6 25512012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2552
2553 * config/s390/s390.md (*movmem_short, *clrmem_short)
2554 (*cmpmem_short): Move the mode check from the insn condition to
2555 the match_scratch.
2556
da5b41a4 25572012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
2558
2559 PR tree-optimization/52633
2560 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
2561 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
2562 (vect_recog_over_widening_pattern): Remove handling of code that was
2563 already detected as over-widening pattern. Remove special handling
2564 of "unsigned" cases. Instead, support general case of conversion
2565 of the shift result to another type.
2566
019bbf38 25672012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
2568
2569 * tree-vect-patterns.c (vect_single_imm_use): New function.
2570 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
2571 (vect_recog_over_widening_pattern): Likewise.
2572 (vect_recog_widen_shift_pattern): Likewise.
2573
33f33894 25742012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
2575
2576 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
2577 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
2578 (vect_recog_widen_mult_pattern): Likewise.
2579 (vect_operation_fits_smaller_type): Likewise.
2580 (vect_recog_over_widening_pattern): Likewise.
2581 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
2582
940a2ab8 25832012-05-04 Richard Guenther <rguenther@suse.de>
2584
2585 PR lto/50602
2586 * lto-wrapper.c (merge_and_complain): Complain about mismatches
2587 of -freg-struct-return and -fpcc-struct-return.
2588 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
2589 from the input file options and ignore those from the link
2590 command line.
2591
147d14aa 25922012-05-04 Richard Guenther <rguenther@suse.de>
2593
2594 PR tree-optimization/53168
2595 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
2596 memory reads when the result is a constant we can pun.
2597
596c40fb 25982012-05-04 Richard Guenther <rguenther@suse.de>
2599
2600 * common.opt (flto-report): Do not mark as Optimization.
2601
50b58916 26022012-05-04 Eric Botcazou <ebotcazou@adacore.com>
2603
2604 PR target/48496
2605 * recog.c (constrain_operands): If extra constraints are present, also
2606 accept pseudo-registers with equivalent memory locations during reload.
2607
2b98e22b 26082012-05-04 Olivier Hainque <hainque@adacore.com>
2609
2610 * collect2.c (may_unlink_output_file): New global.
2611 (maybe_unlink): Honor it.
2612 * collect2.h: Add extern for it.
2613 * tlink.c (do_tlink): Set it to true if the link succeeded.
2614
e2efe9af 26152012-05-04 Olivier Hainque <hainque@adacore.com>
2616
2617 * gcc.c (eval_spec_function): Finalize/restore the current string
2618 obstack state as part of the context push/pop operations.
2619
38d947b0 26202012-05-04 Bin Cheng <bin.cheng@arm.com>
2621
2622 PR rtl-optimization/52804
2623 * reload1.c (reload_reg_reaches_end_p): Check whether successor
2624 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
2625 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
2626 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
2627 RELOAD_FOR_OUTADDR_ADDRESS.
2628
bef475de 26292012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
2630
2631 PR c++/24985
2632 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
2633 for macro expansion.
2634
bba5a206 26352012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
2636
2637 * flags.h (flag_permissive): Do not declare.
2638 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
2639 option specially.
2640 * toplev.c (flag_permissive): Do not define.
2641 * c-tree.h (system_header_p): Delete unused.
2642
beaca8bb 26432012-05-03 David S. Miller <davem@davemloft.net>
2644
2645 PR target/52684
2646 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
2647 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
2648 (sparc_emit_float_lib_cmp): Likewise.
2649
0b10390a 26502012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2651
2652 PR target/53199
2653 * config/rs6000/rs6000.md (bswapdi splitters): If
2654 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
2655 default) is used, generate an alternate sequence that does not
2656 depend on using indexed addressing.
2657
84879dd0 26582012-05-03 Jason Merrill <jason@redhat.com>
2659
2660 * gengtype.c (write_types): Fix warning message.
2661 (write_local): Likewise.
2662
23c98701 26632012-05-02 Jason Merrill <jason@redhat.com>
2664
2665 * dwarf2out.c (struct external_ref, build_local_stub): New.
2666 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
2667 (optimize_external_refs, optimize_external_refs_1): New.
2668 (change_AT_die_ref): New.
2669 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
2670 (build_abbrev_table): Take the external refs hashtable.
2671 (output_comp_unit): Get it from optimize_external_refs and pass it in.
2672
22fe6d2a 26732012-05-03 Jan Hubicka <jh@suse.cz>
2674
2675 PR middle-end/53093
2676 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
2677
cab51373 26782012-05-03 Jan Hubicka <jh@suse.cz>
2679
2680 PR middle-end/53106
2681 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
2682
039c4ce6 26832012-05-03 Jason Merrill <jason@redhat.com>
2684
2685 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
2686 use_debug_types to discriminate the die_id union.
2687 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
2688 (build_abbrev_table, output_die): Likewise.
2689 (prune_unused_types_walk_attribs): Likewise.
2690 (generate_type_signature, copy_declaration_context): Set it.
2691 (remove_child_or_replace_with_skeleton): Set it.
2692 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
2693 check use_debug_types.
2694 (dwarf2out_finish): Do break_out_includes after .debug_types.
2695
7fc5078f 26962012-05-03 Jason Merrill <jason@redhat.com>
2697
2698 * dwarf2out.c (modified_type_die): Use scope_die_for.
2699 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
2700 (uses_local_type_r, uses_local_type): New.
2701 (scope_die_for): Keep a type that uses a local type in local scope.
2702 Use get_context_die for namespace and type scope.
2703
d03a2c79 27042012-05-03 Jason Merrill <jason@redhat.com>
2705
2706 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
2707 pc thunk.
2708 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
2709 (dwarf2out_finish): Likewise.
2710
ceea063b 27112012-05-03 Martin Jambor <mjambor@suse.cz>
2712
2713 * builtins.c (get_object_alignment_1): Return whether we can determine
2714 the alignment or conservatively assume byte alignment. Return the
2715 alignment by reference. Use get_pointer_alignment_1 for dereference
2716 alignment.
2717 (get_pointer_alignment_1): Return whether we can determine the
2718 alignment or conservatively assume byte alignment. Return the
2719 alignment by reference. Use get_ptr_info_alignment to get SSA name
2720 alignment.
2721 (get_object_alignment): Update call to get_object_alignment_1.
2722 (get_object_or_type_alignment): Likewise, fall back to type alignment
2723 only when it returned false.
2724 (get_pointer_alignment): Update call to get_pointer_alignment_1.
2725 * fold-const.c (get_pointer_modulus_and_residue): Update call to
2726 get_object_alignment_1.
2727 * ipa-prop.c (ipa_modify_call_arguments): Update call to
2728 get_pointer_alignment_1.
2729 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
2730 of MEM_REF or TARGET_MEM_REF only when it returns false.
2731 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
2732 get_object_alignment_1.
2733 (ccp_finalize): Use set_ptr_info_alignment.
2734 * tree.h (get_object_alignment_1): Update declaration.
2735 (get_pointer_alignment_1): Likewise.
2736 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
2737 (dump_gimple_stmt): Likewise.
2738 * tree-flow.h (ptr_info_def): Updated comments of fields align and
2739 misalign.
2740 (get_ptr_info_alignment): Declared.
2741 (mark_ptr_info_alignment_unknown): Likewise.
2742 (set_ptr_info_alignment): Likewise.
2743 (adjust_ptr_info_misalignment): Likewise.
2744 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
2745 and set alignment of SSA names.
2746 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
2747 mark_ptr_info_alignment_unknown.
2748 * tree-ssanames.c (get_ptr_info_alignment): New function.
2749 (mark_ptr_info_alignment_unknown): Likewise.
2750 (set_ptr_info_alignment): Likewise.
2751 (adjust_ptr_info_misalignment): Likewise.
2752 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
2753 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
2754 Likewise.
2755 (bump_vector_ptr): Likewise.
2756 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
2757 (vectorizable_store): Likewise.
2758 (vectorizable_load): Likewise.
2759
924c4c71 27602012-05-03 Michael Matz <matz@suse.de>
2761
2762 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
2763 in front of basic_block_def.
2764 (struct basic_block_def): Make il.gimple the full struct, not a
2765 pointer.
2766 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
2767
91fcc716 2768 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
924c4c71 2769 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
2770 NULL il.gimple, which can't happen anymore.
2771 * gimple.h (bb_seq): il.gimple can't be NULL.
2772 (bb_seq_add): Ditto.
2773 (set_bb_seq): Adjust.
2774 (gsi_start_bb, gsi_last_bb): Tidy.
2775 * lto-streamer-in.c (make_new_block): Don't zero members that
2776 are zeroed already, don't allocate a gimple_bb_info.
2777 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
2778 (remove_bb): Clear all il.gimple members.
2779 (gimple_verify_flow_info): Adjust for flat il.gimple.
2780 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
2781
2782 * coretypes.h (const_gimple_seq): Remove typedef.
2783 * gimple.h (gimple_seq_first): Take gimple_seq.
2784 (gimple_seq_first_stmt): Ditto.
2785 (gimple_seq_last): Ditto.
2786 (gimple_seq_last_stmt): Ditto.
2787 (gimple_seq_empty_p): Ditto.
2788
1ef2db75 27892012-05-03 Richard Guenther <rguenther@suse.de>
2790
2791 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
2792 operations.
91fcc716 2793 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
1ef2db75 2794 (compute_avail): Do not add possibly trapping operations to
2795 EXP_GEN if they might not be executed in the block.
2796
e2f2054f 27972012-05-03 Uros Bizjak <ubizjak@gmail.com>
2798
2799 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
2800
6da0d726 28012012-05-03 Steven Bosscher <steven@gcc.gnu.org>
2802
2803 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
2804 information as early as possible. Update dominance info instead of
2805 discarding it.
2806
8974b15d 28072012-05-03 Richard Guenther <rguenther@suse.de>
2808
2809 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
2810 (union_contains_value): Remove.
2811 (vro_valid_in_sets): Likewise.
2812 (op_valid_in_sets): New function.
2813 (valid_in_sets): Use op_valid_in_sets.
2814 (insert_into_preds_of_block): Move dumping ...
2815 (do_regular_insertion): ... here.
2816 (do_partial_partial_insertion): ... and here. Dump that
2817 we've found a partial partial redundancy.
2818 (insert): Dump the current insert iteration.
2819
691c047f 28202012-05-03 Jakub Jelinek <jakub@redhat.com>
2821
2bccd0d3 2822 PR plugins/53126
2823 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
2824 append program name to it and pass that as first argument
2825 to make_relative_prefix. Always pass standard_libexec_prefix
2826 as last argument to make_relative_prefix. If
2827 make_relative_prefix returns NULL, fall back to
2828 standard_libexec_prefix.
2829
b6d5efe6 2830 PR debug/53174
2831 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
2832 removed.
2833
c4a8eb0a 2834 PR target/53187
2835 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
2836 mode, return that mode.
2837
691c047f 2838 PR target/53194
2839 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
2840 define __ATOMIC_HLE_* macros here.
2841 (ix86_target_macros): But here, using cpp_define_formatted.
2842
a4f94d42 28432012-05-03 Richard Guenther <rguenther@suse.de>
2844
2845 PR tree-optimization/53144
2846 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
2847 Rename to ...
2848 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
2849 with SSA name values.
2850 (vn_reference_lookup_3): Adjust callers.
2851
fb0e6fe3 28522012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2853
2854 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
2855 has_fma4 for AMD processors with both fma3 and fma4 support.
2856
c79c9a8d 28572012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
2858
2859 PR target/53201
2860 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
2861 "-mno-hle".
2862
3222e348 28632012-05-03 Michael Matz <matz@suse.de>
2864
2865 PR bootstrap/53197
e2f2054f 2866 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
3222e348 2867 (dse_enter_block): Properly iterate the whole sequence even
2868 if the last statement was removed.
2869
9fbba7ae 28702012-05-02 Steven Bosscher <steven@gcc.gnu.org>
2871
2872 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
2873 unset flag_jump_tables.
2874 * stmt.c (expand_case): Remove special flag_pic case conditional
2875 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
2876
e9f1fe86 28772012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
2878
2879 * common/config/s390/s390-common.c (s390_option_optimization_table):
2880 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
2881 default when optimizing.
2882
ad5f1481 28832012-05-02 Martin Jambor <mjambor@suse.cz>
2884
2885 PR lto/52605
2886 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
2887 of a variable when the contect is a function.
2888
e3a19533 28892012-05-02 Michael Matz <matz@suse.de>
2890
2891 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
2892 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
2893 (const_gimple_seq_node): Remove.
2894 (gimple_seq_node): Typedef as gimple.
2895 (struct gimple_statement_base): Add next and prev members,
2896 adjust all WORD markers in using structs.
2897 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
2898 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
2899 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
2900 gimple are the same.
2901 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
2902 gimple_seq, adjust.
2903 (gimple_init_singleton): New function.
2904 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
2905 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
2906 (gsi_stmt): Adjust.
2907 (gsi_stmt_ptr): Remove.
2908 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
2909
2910 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
2911 again, adjust for above changes.
2912 (update_call_edge_frequencies): Adjust for above changes.
2913 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
2914 (gsi_insert_seq_nodes_after): Ditto.
2915 (gsi_split_seq_after): Ditto.
2916 (gsi_set_stmt): Ditto.
2917 (gsi_split_seq_before): Ditto.
2918 (gsi_remove): Ditto.
2919 (gsi_insert_seq_before_without_update): Don't free sequence.
2920 (gsi_insert_seq_after_without_update): Ditto.
2921 (gsi_replace): Assert some more invariants.
2922 (gsi_insert_before_without_update, gsi_insert_after_without_update):
2923 Tidy.
2924 (gsi_for_stmt): Don't search for stmt.
2925 (gsi_insert_on_edge_immediate): Tidy.
2926
2927 * gimple.c (gimple_alloc_k): Remove "sequences".
2928 (gimple_seq_cache): Remove.
2929 (gimple_alloc_stat): Make stmt a singleton sequence.
2930 (gimple_seq_alloc, gimple_seq_free): Remove.
2931 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
2932 (gimple_copy): Ditto.
2933 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
2934 create iterator from correct sequence.
2935 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
2936
29372012-05-02 Michael Matz <matz@suse.de>
2938
2939 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
2940 gimple_seq.
2941 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
2942 sequence, lazily allocate it.
2943 (bb_seq_addr): New function.
2944 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
2945 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
2946 (gsi_none): New function.
2947 (gsi_start_bb): Adjust.
2948 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
2949 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
2950 (gsi_last_bb): Adjust.
2951 (gsi_seq): Adjust.
2952 * tree-flow-inline.h (phi_nodes_ptr): New function.
2953
e2f2054f 2954 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
e3a19533 2955 datastructure and interface change.
2956 (gsi_insert_seq_before_without_update): Ditto.
2957 (gsi_insert_seq_nodes_after): Ditto.
2958 (gsi_insert_seq_after_without_update): Ditto.
2959 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
2960 (gsi_split_seq_before): Ditto.
2961 (gsi_start_phis): Adjust.
e2f2054f 2962 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
e3a19533 2963 (vect_transform_loop): Ditto.
2964 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
2965 gimple_seq_copy): Don't use gimple_seq_alloc.
2966 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
2967 (gimplify_seq_add_seq): Ditto.
2968 * lto-streamer-in.c (make_new_block): Ditto.
2969 * tree-cfg.c (create_bb): Ditto.
2970 * tree-sra.c (initialize_parameter_reductions): Ditto.
2971
29722012-05-02 Michael Matz <matz@suse.de>
2973
2974 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
2975 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
2976 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
2977 set_bb_seq): Move down to after gimple_statement_d definition.
2978
29792012-05-02 Michael Matz <matz@suse.de>
2980
2981 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
2982 gsi_replace_with_seq, instead of inserting itself.
2983 * gimple-iterator.c (gsi_replace_with_seq): New function.
2984 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
2985 iterator instead of statement, advance it.
2986 (ssa_forward_propagate_and_combine): Adjust call to above.
2987
29882012-05-02 Michael Matz <matz@suse.de>
2989
2990 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
2991 gimple_seq_alloc.
2992 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
2993 * tree-nested.c (walk_gimple_omp_for): Ditto.
2994 * trans-mem.c (lower_transaction): Ditto.
2995 * tree-eh.c (do_return_redirection): Ditto.
2996 (do_goto_redirection): Ditto.
2997 (lower_try_finally_switch): Ditto.
2998 * gimplify.c (gimplify_stmt): Ditto.
2999 (gimplify_scan_omp_clauses): Ditto.
3000 (gimplify_omp_for): Ditto.
3001 (gimplify_function_tree): Ditto.
3002 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
3003 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
3004 (mf_build_check_statement_for): Ditto.
3005 (mx_register_decls): Ditto.
3006 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
3007 and don't use itertors to append.
3008 (insert_stmts): Ditto.
3009 (insert_out_of_ssa_copy): Ditto.
3010 (insert_out_of_ssa_copy_on_edge): Ditto.
3011
30122012-05-02 Michael Matz <matz@suse.de>
3013
3014 * gimple.h (gimple_bind_body_ptr): New function.
3015 (gimple_bind_body): Use it.
3016 (gimple_catch_handler): Use gimple_catch_handler_ptr.
3017 (gimple_eh_filter_failure_ptr): New function.
3018 (gimple_eh_filter_failure): Use it.
3019 (gimple_eh_else_n_body_ptr): New function.
3020 (gimple_eh_else_n_body): Use it.
3021 (gimple_eh_else_e_body_ptr): New function.
3022 (gimple_eh_else_e_body): Use it.
3023 (gimple_try_eval_ptr): New function.
3024 (gimple_try_eval): Use it.
3025 (gimple_try_cleanup_ptr): New function.
3026 (gimple_try_cleanup): Use it.
3027 (gimple_wce_cleanup_ptr): New function.
3028 (gimple_wce_cleanup): Use it.
3029 (gimple_omp_body_ptr): New function.
3030 (gimple_omp_body): Use it.
3031 (gimple_omp_for_pre_body_ptr): New function.
3032 (gimple_omp_for_pre_body): Use it.
3033 (gimple_transaction_body_ptr): New function.
3034 (gimple_transaction_body): Use it.
3035 (gsi_split_seq_before): Adjust to return nothing and take pointer
3036 to sequence.
3037 (gsi_set_stmt): Declare.
3038 (gsi_replace_with_seq): Declare.
3039 (walk_gimple_seq_mod): Declare.
3040 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
3041
3042 * gimple-iterator.c (gsi_set_stmt): New function.
3043 (gsi_split_seq_before): Return new sequence via pointer argument.
3044 (gsi_replace): Use gsi_set_stmt.
3045
3046 * tree-ssa-loop-im.c (move_computations_stmt): First remove
3047 then insert stmt.
e2f2054f 3048 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
e3a19533 3049 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
3050 return new stmt.
3051 (reserve_phi_args_for_new_edge): Change call to above,
3052 use gsi_set_stmt.
3053
e2f2054f 3054 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
e3a19533 3055 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
3056 iterators. Adjust call to lower_omp.
3057 (lower_lastprivate_clauses): Adjust call to lower_omp.
3058 (lower_reduction_clauses): Ditto.
3059 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
3060 (lower_omp_sections): Don't explicitely count sequence length,
3061 nullify lowered bodies earlier, ensure stmts are part of only
3062 one sequence, adjust call to lower_omp.
3063 (lower_omp_single): Ensure stmts are part of only one sequence,
3064 adjust call to lower_omp.
3065 (lower_omp_master): Ditto.
3066 (lower_omp_ordered): Ditto.
3067 (lower_omp_critical): Ditto.
3068 (lower_omp_for): Ditto.
3069 (lower_omp_taskreg): Ditto, tidy.
3070 (lower_omp_1): Adjust calls to lower_omp.
3071 (execute_lower_omp): Ditto.
3072 (lower_omp): Adjust to take pointer to sequence.
3073 (diagnose_sb_2): Use walk_gimple_seq_mod.
3074 (diagnose_omp_structured_block_errors): Ditto and set possibly
3075 changed function body.
3076 * gimple-low.c (lower_function_body): Set function body after
3077 it stabilizes.
3078 (lower_sequence): Adjust to take pointer to sequence.
3079 (lower_omp_directive): Ensure stmt isn't put twice into the
3080 sequence, adjust call to lower_sequence.
3081 (lower_stmt): Adjust calls to lower_sequence.
3082 (lower_gimple_bind): Ditto.
3083 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
3084 * tree-nested.c (walk_body): Take pointer to sequence, use
3085 walk_gimple_seq_mod.
e2f2054f 3086 (walk_function): Adjust call to walk_body, set possibly changed body.
e3a19533 3087 (walk_gimple_omp_for): Adjust calls to walk_body.
3088 (convert_nonlocal_omp_clauses): Ditto.
3089 (convert_nonlocal_reference_stmt): Ditto.
3090 (convert_local_omp_clauses): Ditto.
3091 (convert_local_reference_stmt): Ditto.
3092 (convert_tramp_reference_stmt): Ditto.
3093 (convert_gimple_call): Ditto.
3094 (convert_nl_goto_reference): Use local iterator copy.
3095 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
3096 but taking pointer to sequence, ensure gsi_start is called with
3097 callers lvalue.
3098 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
3099 asserting that the sequence head didn't change.
3100 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
3101 walk_gimple_seq_mod.
3102 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
3103 (execute_lower_tm): Ditto, and set possibly changed body.
3104 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
3105 call gsi_start with that lvalue.
3106 (replace_goto_queue_stmt_list): Ditto.
3107 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
3108 (replace_goto_queue): Ditto.
3109 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
3110 (lower_try_finally_onedest): Ditto.
3111 (lower_try_finally_copy): Ditto.
3112 (lower_try_finally_switch): Ditto.
3113 (lower_try_finally): Ditto.
3114 (lower_eh_filter): Ditto.
3115 (lower_eh_must_not_throw): Ditto.
3116 (lower_cleanup): Ditto.
3117 (lower_eh_constructs_2): Ditto.
3118 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
3119 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
3120 set possibly changed body.
3121 (optimize_double_finally): Call gsi_start with lvalue.
3122
3123 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
3124 (gimple_split_block): Ditto.
3125 (gimple_merge_blocks): Use gsi_start_phis.
3126 (move_stmt_r): Use walk_gimple_seq_mod.
3127 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
3128 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
3129 (rebuild_cgraph_edges): Ditto.
3130 (cgraph_rebuild_references): Ditto.
3131 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
3132 * tree-inline.c (copy_phis_for_bb): Ditto.
3133 * tree-ssa-dce.c: Ditto.
3134
3135 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
3136
7f738025 31372012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
3138 Andi Kleen <ak@linux.intel.com>
3139
e3a19533 3140 * coretypes.h (MEMMODEL_MASK): New.
7f738025 3141 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
3142 and return new variable.
3143 (expand_builtin_atomic_exchange): Mask memmodel values.
3144 (expand_builtin_atomic_compare_exchange): Ditto.
3145 (expand_builtin_atomic_load): Ditto.
3146 (expand_builtin_atomic_store): Ditto.
3147 (expand_builtin_atomic_clear): Ditto.
3148 * doc/extend.texi: Mention port-dependent memory model flags.
3149 * config/i386/cpuid.h (bit_HLE): New.
3150 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3151 HLE support.
3152 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
91fcc716 3153 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
7f738025 3154 (ix86_target_string)<-mhle>: New.
e2f2054f 3155 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
3156 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
3157 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
3158 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
7f738025 3159 enabled for generic, generic64 and core-avx2.
3160 (ix86_print_operand): Generate HLE lock prefixes.
3161 (ix86_memmodel_check): New.
3162 (TARGET_MEMMODEL_CHECK): Ditto.
3163 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
3164 (IX86_HLE_ACQUIRE): Ditto.
3165 (IX86_HLE_RELEASE): Ditto.
3166 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
3167 * config/i386/i386.opt (mhle): Ditto.
3168 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
3169 success model to instruction emitter.
3170 (atomic_fetch_add<mode>): Ditto.
3171 (atomic_exchange<mode>): Ditto.
3172 (atomic_add<mode>): Ditto.
3173 (atomic_sub<mode>): Ditto.
3174 (atomic_<code><mode>): Ditto.
3175 (*atomic_compare_and_swap_doubledi_pic): Ditto.
3176 (atomic_compare_and_swap_single<mode>): Define and use argument
3177 for success model.
3178 (atomic_compare_and_swap_double<mode>): Ditto.
3179 * configure.ac: Check if assembler support HLE prefixes.
3180 * configure: Regenerate.
3181 * config.in: Ditto.
3182
b59e1c90 31832012-05-02 Steven Bosscher <steven@gcc.gnu.org>
3184
3185 PR middle-end/53153
3186 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
3187 split out from ...
3188 (gimplify_switch_expr): ... here.
3189 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
3190 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
3191 to clean up case labels with values outside the index type range.
3192 (simplify_gimple_switch): Call it if something changed.
3193 Remove strange and unnecessary assert.
3194
85d86b55 31952012-05-02 Richard Guenther <rguenther@suse.de>
3196
3197 * fold-const.c (div_if_zero_remainder): sizetypes no longer
3198 sign-extend.
3199 (int_const_binop_1): New worker for int_const_binop with
91fcc716 3200 overflowable parameter. Pass it through to force_fit_type_double.
85d86b55 3201 (int_const_binop): Wrap around int_const_binop_1 with overflowable
3202 equal to one.
3203 (size_binop_loc): Call int_const_binop_1 with overflowable equal
3204 to minus one, forcing overflow detection for even unsigned types.
3205 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
3206 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
3207 * stor-layout.c (initialize_sizetypes): sizetypes no longer
3208 sign-extend.
3209 (layout_type): For zero-sized arrays ignore overflow on the
3210 size calculations.
3211 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
3212 (bit_value_binop_1): Likewise.
3213 * tree.c (double_int_to_tree): Likewise.
3214 (double_int_fits_to_tree_p): Likewise.
3215 (force_fit_type_double): Likewise.
3216 (host_integerp): Likewise.
3217 (int_fits_type_p): Likewise.
3218 * varasm.c (output_constructor_regular_field): Sign-extend the
e2f2054f 3219 field-offset to cater for negative offsets produced by the Ada
3220 frontend.
85d86b55 3221 * omp-low.c (extract_omp_for_data): Convert the loop step to
3222 signed for pointer adjustments.
3223
32242012-05-02 Richard Guenther <rguenther@suse.de>
3225
3226 * tree.c (valid_constant_size_p): New function.
3227 * tree.h (valid_constant_size_p): Declare.
3228 * cfgexpand.c (expand_one_var): Adjust check for too large
3229 variables by using valid_constant_size_p.
3230 * varasm.c (assemble_variable): Likewise.
3231
3232 * c-decl.c (grokdeclarator): Properly check for sizes that
3233 cover more than half of the address-space.
3234
559f753b 32352012-05-02 Jakub Jelinek <jakub@redhat.com>
3236
8b3fb720 3237 PR tree-optimization/53163
3238 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
3239 return value from compute_all_dependences.
3240
559f753b 3241 PR rtl-optimization/53160
3242 * ree.c (combine_reaching_defs): Handle the case where cand->insn
3243 has been modified by ree pass already.
3244
73242672 32452012-05-01 Ian Lance Taylor <iant@google.com>
3246
3247 PR c/37303
3248 * c-decl.c (build_compound_literal): Make the decl readonly if it
3249 an array of a readonly type.
3250 * gimplify.c (gimplify_compound_literal_expr): Add fallback
3251 parameter. Change all callers. If the decl is not addressable
3252 and is not an l-value, make it readonly.
3253
e1d0b655 32542012-05-01 Bernd Schmidt <bernds@codesourcery.com>
3255
3256 * ira.c (allocated_reg_info_size): New static variable.
3257 (expand_reg_info): Manage it. Call
3258 setup_preferred_alternate_classes_for_new_pseudos.
3259 (ira): Don't do it here. Remove local allocated_reg_info_size,
3260 set the global before calling find_moveable_pseudos.
3261 (find_moveable_pseudos): Call expand_reg_info rather than
3262 resize_reg_info.
3263
d8219307 32642012-05-01 Richard Henderson <rth@redhat.com>
3265
3266 * common.opt (fsync-libcalls): New.
3267 * doc/invoke.texi: Document it.
3268 * optabs.c (init_sync_libfuncs): Honor it.
3269
c7944dce 32702012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
3271 Richard Sandiford <r.sandiford@uk.ibm.com>
3272
31fa83cd 3273 PR rtl-optimization/52543
c7944dce 3274 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
3275 lower-subreg.h.
3276 * lower-subreg.h: New file.
3277 * target-globals.h (this_target_lower_subreg): Declare.
3278 (target_globals): Add lower_subreg;
3279 (restore_target_globals): Restore this_target_lower_subreg.
3280 * target-globals.c: Include it.
3281 (default_target_globals): Add default_target_lower_subreg.
3282 (save_target_globals): Initialize target_lower_subreg.
3283 * rtl.h (init_lower_subreg): Added declaration.
3284 * toplev.c (backend_init_target): Call initializer for lower-subreg
3285 pass.
3286 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
3287 (default_target_lower_subreg): New variable.
3288 (this_target_lower_subreg): Likewise.
3289 (twice_word_mode, choices): New macros.
3290 (shift_cost, compute_splitting_shift, compute_costs)
3291 (init_lower_subreg): New functions.
3292 (resolve_simple_move): Add speed_p argument. Check choices.
3293 (find_pseudo_copy): Don't check the mode size here.
3294 (resolve_simple_move): Assert the mode size.
3295 (find_decomposable_shift_zext): Add speed_p argument and return
3296 a bool. Check choices.
3297 (resolve_shift_zext): Add comment.
3298 (dump_shift_choices, dump_choices): New functions.
3299 (decompose_multiword_subregs): Dump list of profitable
3300 transformations. Add code to skip non profitable transformations.
3301 Update calls to simple_move and find_decomposable_shift_zext.
3302
e7fd8dfa 33032012-05-01 Ian Bolton <ian.bolton@arm.com>
e2f2054f 3304 Sameera Deshpande <sameera.deshpande@arm.com>
3305 Greta Yorsh <greta.yorsh@arm.com>
e7fd8dfa 3306
3307 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
e2f2054f 3308 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 3309 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
e2f2054f 3310 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 3311 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
e2f2054f 3312 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 3313
68a172b9 33142012-05-01 Richard Earnshaw <rearnsha@arm.com>
3315
3316 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
3317 comparing enumeration values. Update comments.
3318
e356c169 33192012-05-01 Alan Modra <amodra@gmail.com>
3320
3321 PR target/53038
3322 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
3323 load_cr_save, add_crlr_cfa_restore): New functions.
3324 (rs6000_restore_saved_cr): Rename to..
3325 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
3326 (rs6000_emit_epilogue): Use new functions. Adjust condition
3327 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
3328 regs when using out-of-line restore only when shrink wrapping.
3329
a690dc32 33302012-04-30 Uros Bizjak <ubizjak@gmail.com>
3331
3332 PR middle-end/53136
3333 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
3334 calls to cgraph_node_name in xstrdup.
3335 (ipa_make_edge_direct_to_target): Ditto.
3336 * cgraph.c (dump_cgraph_node): Ditto.
3337 * tree-sra.c (convert_callers_for_node): Ditto.
3338 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
3339 * ipa-cp.c (perhaps_add_new_callers): Ditto.
3340 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
3341 (cgraph_materialize_all_clones): Ditto.
3342 * ipa-inline.c (report_inline_failed_reason): Ditto.
3343 (want_early_inline_function_p): Ditto.
3344 (edge_badness): Ditto.
3345 (update_edge_key): Ditto.
3346 (flatten_function): Ditto.
3347 (ipa_inline): Ditto.
e2f2054f 3348 (inline_always_inline_functions): Ditto.
a690dc32 3349 (early_inline_small_functions): Ditto.
3350
b3987b8f 33512012-04-30 Uros Bizjak <ubizjak@gmail.com>
3352
3353 PR target/53141
3354 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
3355 constraints 0 and 1.
3356
cf951b1a 3357012-04-30 Jan Hubicka <jh@suse.cz>
3358
3359 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
3360 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
3361 (cgraph_add_to_same_comdat_group): Remove.
3362 (cgraph_add_asm_node): Move to cgraphunit.c.
3363 (cgraph_make_decl_local): Move to symtab.c
3364 (cgraph_make_node_local_1): Update.
3365 (cgraph_can_remove_if_no_direct_calls_and): Update.
3366 (used_from_object_file_p): Update.
3367 (resolution_used_from_other_file_p): Move to symtab.c
3368 (cgraph_used_from_object_file_p): move to symtab.c
3369 (verify_cgraph_node): Verify same comdat groups.
3370 * cgraph.h (cgraph_asm_node): Rename to ...
3371 (asm_node): ... this one.
3372 (cgraph_asm_nodes): Rename to ...
3373 (asm_nodes): ... this one.
3374 (symtab_add_to_same_comdat_group): New function.
3375 (symtab_dissolve_same_comdat_group_list): New function.
3376 (symtab_used_from_object_file_p): Declare.
3377 (symtab_make_decl_local): Declare.
3378 (cgraph_add_to_same_comdat_group): Remove.
3379 (cgraph_add_asm_node): Remove.
3380 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
3381 Remove.
3382 (cgraph_finalize_compilation_unit): Rename to ...
3383 (finalize_compilation_unit): ... this one.
3384 (cgraph_optimize): Rename to ....
3385 (compile): ... this one.
3386 (add_asm_node): Declare.
3387 (fixup_same_cpp_alias_visibility): Declare.
3388 (cgraph_make_decl_local): Remove.
3389 (varpool_assemble_pending_decls): Rename to ...
3390 (varpool_output_variables): ... this one.
3391 (varpool_remove_unreferenced_decls): Remove.
3392 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
3393 (preserve_function_body_p): Make static.
b3987b8f 3394 * toplev.c (compile_file): Update comments; update.
cf951b1a 3395 * cgraphunit.c: Update comments.
3396 (cgraph_expand_all_functions): Rename to ...
3397 (expand_all_functions): ... this one; update.
3398 (cgraph_mark_functions_to_output): Rename to ...
3399 (mark_functions_to_output): ... this one; cleanup.
3400 (cgraph_output_pending_asms): Remove prototype.
3401 (asm_nodes, asm_last_node): New static vars.
3402 (cgraph_process_new_functions): Update.
3403 (cgraph_reset_node): Cleanup; add comment.
3404 (cgraph_add_new_function): Update.
3405 (cgraph_output_pending_asms): Rename to ...
3406 (output_asm_statements): ... this one.
3407 (add_asm_node): New function.
3408 (fixup_same_cpp_alias_visibility): New function based on code
3409 in cgraph_analyze_function.
3410 (cgraph_analyze_function): Use it.
3411 (cgraph_order_sort): Update.
3412 (cgraph_output_in_order): Update.
3413 (cgraph_function_versioning): Update.
3414 (cgraph_optimize): Rename to ...
3415 (compile): ... this one; initialize streamer hooks here.
3416 (cgraph_finalize_compilation_unit): Rename to ...
3417 (finalize_compilation_unit): ... this one; do not initialize streamer
3418 hook here.
3419 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
3420 * dwarf2out.c: Update ocmment.
3421 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
3422 * method.c (use_thunk): Likewise.
3423 * semantics.c (maybe_add_lambda_conv_op): Likewise.
b3987b8f 3424 * decl2.c (maybe_emit_vtables): Likewise.
cf951b1a 3425 (cp_write_global_declarations): Use finalize_compilation_unit.
3426 * parser.c (cp_parser_asm_definition): Use add_asm_node.
3427 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
b3987b8f 3428 * c-decl.c (c_write_global_declarations): Use
3429 finalize_compilation_unit.
cf951b1a 3430 * langhooks.c (write_global_declarations): Update.
3431 * ipa.c (cgraph_externally_visible_p): Update.
3432 (dissolve_same_comdat_group_list): Remove.
3433 (function_and_variable_visibility): Update.
3434 * symtab.c: Inlcude lto-streamer.h and rtl.h
3435 (ld_plugin_symbol_resolution_names): New.
3436 (symtab_add_to_same_comdat_group): New.
3437 (symtab_dissolve_same_comdat_group_list): New.
3438 (resolution_used_from_other_file_p): Move here from cgraph.c
3439 (symtab_used_from_object_file_p): New.
3440 (symtab_make_decl_local): New.
3441 * passes.c (register_pass): Update comments.
3442 * c-parser.c (c_parser_asm_definition): Update.
b3987b8f 3443 * varpool.c (varpool_analyze_node): Use
3444 fixup_same_cpp_alias_visibility.
cf951b1a 3445 (varpool_remove_unreferenced_decls): Make static.
3446 (varpool_assemble_pending_decls): Rename to ...
3447 (varpool_output_variables): ... this one; call
3448 varpool_remove_unreferenced_decls.
3449 (varpool_used_from_object_file_p): Remove.
3450
7059d45d 34512012-04-30 Marc Glisse <marc.glisse@inria.fr>
3452
3453 PR c++/51033
3454 * c-typeck.c (build_array_ref): Call
3455 convert_vector_to_pointer_for_subscript.
3456 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
3457
df65c84d 34582012-04-30 Uros Bizjak <ubizjak@gmail.com>
3459
3460 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
3461 to compile-time "mode == <MODE>mode" checks.
3462 (and splitter): Ditto.
3463
ab1e18de 34642012-04-30 Richard Henderson <rth@redhat.com>
3465
3466 * config/arm/arm.md (UNSPEC_LL): New.
3467 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
3468 (arm_load_exclusivedi): Use %H0.
3469
3474b65d 34702012-04-30 Jason Merrill <jason@redhat.com>
3471
3472 * dwarf2out.c (comdat_symbol_id): Add const.
3473 (union die_symbol_or_type_node): Add const to die_symbol.
3474 (output_die_symbol, output_die, output_comp_unit): Adjust.
3475
774d2fbb 34762012-04-30 Andrew Stubbs <ams@codesourcery.com>
3477
3478 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
3479 * config/arm/neon.md (negdi2_neon): New insn.
3480 Also add splitters for core and NEON registers.
3481
87f800b2 34822012-04-30 Andrew Stubbs <ams@codesourcery.com>
3483
3484 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
3485 (arm_print_operand): Add 'x' format.
3486 * config/arm/constraints.md (Dn): Allow const_int.
3487 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
3488 Use 'x' format to print constants.
3489 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
3490 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
3491 is enabled.
3492 (movdi_vfp_cortexa8): Likewise.
3493
a2623f6b 34942012-04-30 Ian Bolton <ian.bolton@arm.com>
917cf02d 3495 Sameera Deshpande <sameera.deshpande@arm.com>
3496 Greta Yorsh <greta.yorsh@arm.com>
69973f3a 3497
3498 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
3499 * config/arm/arm.c (ldm_stm_operation_p): New function.
3500 * config/arm/predicates.md (load_multiple_operation): Update predicate.
3501 (store_multiple_operation): Likewise.
3502
394cb8e0 3503 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
3504 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
3505 * config/arm/predicates.md (load_multiple_operation): Add arguments.
df65c84d 3506 (store_multiple_operation): Likewise.
394cb8e0 3507
9676484f 35082012-04-30 Uros Bizjak <ubizjak@gmail.com>
3509
3510 * config/i386/i386.md (and<mode>3): Expand masking operations with
3511 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
3512 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
3513
7edb1062 35142012-04-30 Dodji Seketeli <dodji@redhat.com>
3515
3516 Add -Wvarargs option
3517 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
9676484f 3518 argument for the various warning_at calls.
7edb1062 3519 * docs/invoke.texi: Update the documentation.
3520
6982c82d 35212012-04-30 Dodji Seketeli <dodji@redhat.com>
3522
611f1003 3523 Switch -ftrack-macro-expansion=2 on by default.
3524 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
3525 by default.
3526
d98fd4a4 3527 Fix va_start related location
3528 * builtins.c (fold_builtin_next_arg): Unwinds to the first
3529 location in real source code.
3530
db30b351 3531 Make conversion warnings work on NULL with -ftrack-macro-expansion
3532 * input.h (expansion_point_location_if_in_system_header): Declare
3533 new function.
9676484f 3534 * input.c (expansion_point_location_if_in_system_header): Define it.
db30b351 3535
18f0e0e5 3536 Fix -Wuninitialized for -ftrack-macro-expansion
9676484f 3537 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
3538 declaration. Use linemap_location_before_p for source locations.
18f0e0e5 3539
bd172d61 3540 Strip "<built-in>" loc from displayed expansion context
3541 * input.c (expand_location_1): When expanding to spelling location
3542 in a context of a macro expansion, skip reserved system header
3543 locations. Update comments. * tree-diagnostic.c
3544 (maybe_unwind_expanded_macro_loc): Likewise.
3545
39107655 3546 Make expand_location resolve to locus in main source file
3547 * input.c (expand_location_1): New. Takes a parameter to choose
3548 whether to resolve the location to spelling or expansion point.
3549 Was factorized from ...
3550 (expand_location): ... here.
3551 (expand_location_to_spelling_point): New. Implemented in terms of
3552 expand_location_1.
3553 * diagnostic.c (diagnostic_build_prefix): Use the new
3554 expand_location_to_spelling_point instead of expand_location.
3555
6982c82d 3556 Fix PCH crash on GTYed pointer-to-scalar field of a struct
3557 * gengtype.c (write_types_process_field): Force second argument of
3558 the call to the PCH object hierarchy walker to be 'x'.
3559
81f9f420 35602012-04-30 Eric Botcazou <ebotcazou@adacore.com>
3561
3562 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
3563 predicate to discriminate types.
3564
b86527d8 35652012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
3566
3567 * doc/invoke.texi (Wmissing-format-attribute): Document as an
3568 alias of Wsuggest-attribute=format.
3569 * c-typeck.c (convert_for_assignment): Replace
3570 Wmissing-format-attribute with Wsuggest-attribute=format.
3571 (digest_init): Likewise.
3572
fdc46702 35732012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
3574
9676484f 3575 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
3576 * common.opt (Wmissing-noreturn): Alias of
3577 -Wsuggest-attribute=noreturn.
fdc46702 3578
87ef8b95 35792012-04-29 Hans-Peter Nilsson <hp@axis.com>
3580
3581 PR target/53156
3582 * config/cris/cris.md (andqu): New peephole2.
3583 (andu): Tweak head comment.
3584
0f9b384d 35852012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
3586 Steven Bosscher <steven@gcc.gnu.org>
3587 Maxim Kuvyrkov <maxim@codesourcery.com>
3588
3589 PR tree-optimization/38785
3590 * common.opt (ftree-partial-pre): New option.
3591 * doc/invoke.texi: Document it.
3592 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
3593 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
3594 benefit speed path.
3595 (execute_pre): Use flag_tree_partial_pre.
3596
7c5d3a90 35972012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3598
3599 PR target/52999
3600 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
3601 in constant pool.
3602
034788fc 36032012-04-27 Ollie Wild <aaw@google.com>
76d340ac 3604
3605 * doc/invoke.texi (Wliteral-suffix): Document new option.
3606
c9f46599 36072012-04-27 Tom Tromey <tromey@redhat.com>
3608
3609 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
3610 (dwarf_tag_name): Use get_DW_TAG_name.
3611 (dwarf_attr_name): Use get_DW_AT_name.
3612 (dwarf_form_name): Use get_DW_FORM_name.
3613 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
3614
678919fd 36152012-04-27 Paolo Bonzini <bonzini@gnu.org>
3616
9676484f 3617 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
3618 arguments are -1 and 0, by negating the result of the conditional.
678919fd 3619
8be7badc 36202012-04-27 Paolo Bonzini <bonzini@gnu.org>
3621
3622 PR target/53138
3623 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
3624
8763c223 36252012-04-27 Richard Guenther <rguenther@suse.de>
3626
3627 * tree-flow.h (is_hidden_global_store): Remove.
3628 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
3629 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
3630 (stmt_may_clobber_global_p): Likewise.
3631 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
3632 (stmt_may_clobber_global_p): Likewise.
3633 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
3634 stmt_may_clobber_global_p.
3635 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
3636
11f2f313 36372012-04-27 Steven Bosscher <steven@gcc.gnu.org>
3638
845b40c8 3639 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
3640 place.
3641
11f2f313 3642 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
3643 reorganize some fields and update comments. Rename bit_test_uniq
3644 and bit_test_count to uniq resp. count. Remove bit_test_bb.
3645 (collect_switch_conv_info): New function, collects info about a
3646 GIMPLE_SWITCH into a struct switch_conv_info.
3647 (check_range): Simplify to use pre-recorded info. Fix think-o in
3648 range-branch ratio check.
3649 (check_process_case): Remove function.
3650 (check_all_empty_except_final): New function, verifies that all
3651 non-final basic blocks are empty.
3652 (process_switch): Simplify to use pre-recorded info. Call
3653 collect_switch_conv_info to do that. Assert that degenerate switch
3654 statements have been cleaned up.
3655
487282d5 36562012-04-27 Marc Glisse <marc.glisse@inria.fr>
3657
3658 PR middle-end/27139
3659 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
3660
b0ec32b9 36612012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
3662
3663 PR c/53130
3664 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
3665
b736e424 36662012-04-27 Tom de Vries <tom@codesourcery.com>
3667
3668 PR tree-optimization/51879
3669 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
3670 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
3671 of ...
3672 (defs_to_varying): ... here. Don't set use_processed.
3673 (visit_reference_op_call): Handle gimple_vdef.
3674 Handle case that lhs is NULL_TREE.
3675 (visit_use): Use mark_use_processed. Handle calls with side-effect
3676 using visit_reference_op_call.
3677
fdb1b2b1 36782012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
3679
3680 * sched-deps.c (fixup_sched_groups): Rename to...
3681 (chain_to_prev_insn): ...this.
3682 (chain_to_prev_insn_p): New function.
3683 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
3684
b30b031c 36852012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
3686
3687 * sched-int.h (_haifa_insn_data): Move priority_status.
3688 Add model_index.
3689 (INSN_MODEL_INDEX): New macro.
3690 * haifa-sched.c (insn_delay): New function.
3691 (sched_regno_pressure_class): Update commentary.
3692 (mark_regno_birth_or_death): Pass the liveness bitmap and
3693 pressure array as arguments, instead of using curr_reg_live and
3694 curr_reg_pressure. Only update the pressure if the bit in the
3695 liveness set has changed.
3696 (initiate_reg_pressure_info): Always trust the live-in set for
3697 SCHED_PRESSURE_MODEL.
3698 (initiate_bb_reg_pressure_info): Update call to
3699 mark_regno_birth_or_death.
3700 (dep_list_size): Take the list as argument.
3701 (calculate_reg_deaths): New function, extracted from...
3702 (setup_insn_reg_pressure_info): ...here.
3703 (MODEL_BAR): New macro.
3704 (model_pressure_data, model_insn_info, model_pressure_limit)
3705 (model_pressure_group): New structures.
3706 (model_schedule, model_worklist, model_insns, model_num_insns)
3707 (model_curr_point, model_before_pressure, model_next_priority):
3708 New variables.
3709 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
3710 (MODEL_INSN_INFO, MODEL_INSN): New macros.
3711 (model_index, model_update_limit_points_in_group): New functions.
3712 (model_update_limit_points, model_last_use_except): Likewise.
3713 (model_start_update_pressure, model_update_pressure): Likewise.
3714 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
3715 (model_excess_cost, model_dump_pressure_points): Likewise.
3716 (model_set_excess_costs): Likewise.
3717 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
3718 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
3719 schedule as an alternative tie-breaker. Update the call to
3720 dep_list_size.
3721 (ready_sort): Call model_set_excess_costs.
3722 (update_register_pressure): Update call to mark_regno_birth_or_death.
3723 Rely on that function to check liveness rather than doing it here.
3724 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
3725 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
3726 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
3727 (model_record_pressure, model_record_pressures): New functions.
3728 (model_record_final_pressures, model_add_successors_to_worklist)
3729 (model_promote_predecessors, model_choose_insn): Likewise.
3730 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
3731 (model_start_schedule, model_finalize_pressure_group): Likewise.
3732 (model_end_schedule): Likewise.
3733 (schedule_insn): Say when we're scheduling the next instruction
3734 in the model schedule.
3735 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
3736 (queue_to_ready): Do not add instructions that are
3737 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
3738 Always allow the next instruction in the model schedule to be added.
3739 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
3740 and delay for SCHED_PRESSURE_MODEL too.
3741 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
3742 SCHED_PRIORITY_MODEL, but also take the DFA into account.
3743 (schedule_block): Call model_start_schedule and model_end_schedule.
3744 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
3745 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
3746 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
3747 region_ref_regs.
3748 (sched_finish): Update accordingly.
3749 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
3750 to SCHED_PRESSURE_MODEL.
3751 (add_jump_dependencies): Update call to dep_list_size.
3752 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
3753 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
3754 to SCHED_PRESSURE_MODEL.
3755 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
3756 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
3757 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
3758 handling to SCHED_PRESSURE_MODEL.
3759
11189c7a 37602012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
3761
3762 * common.opt (fsched-pressure-algorithm=): New option.
3763 * flag-types.h (sched_pressure_algorithm): New enum.
3764 * sched-int.h (sched_pressure_p): Replace with...
3765 (sched_pressure): ...this new variable.
3766 * haifa-sched.c (sched_pressure_p): Replace with...
3767 (sched_pressure): ...this new variable.
3768 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
3769 (update_reg_and_insn_max_reg_pressure, schedule_insn)
3770 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
3771 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
3772 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
3773 (sched_analyze_insn): Likewise.
3774 * sched-rgn.c (schedule_region): Likewise.
3775 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
3776
be851ef2 37772012-04-26 Bernd Schmidt <bernds@codesourcery.com>
3778
3779 * PR middle-end/52997
3780 * ira.c (find_moveable_pseudos): Call resize_reg_info.
3781
c8076084 3782 PR middle-end/52940
3783 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
3784 * expr.c (convert_move): Honor unsignedp when extending partial int
3785 modes.
3786 * genmodes.c (complete_mode): Don't clear component field of partial
3787 int modes.
3788 (emit_mode_inner): Don't emit it however.
3789 (calc_wider_mode): Partial int modes widen to their component.
3790
cd7e5042 37912012-04-26 David S. Miller <davem@davemloft.net>
3792
65e00a51 3793 * config/sparc/niagara4.md: New file.
3794 * config/sparc/sparc.md: Include it.
3795 * config/sparc/sparc.c (niagara4_costs): New processor costs.
3796 (sparc_option_override): Use it.
3797 (sparc_use_sched_lookahead): Return 2 for niagara4.
3798 (sparc_issue_rate): Likewise.
3799
cd7e5042 3800 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
3801 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
3802 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
9676484f 3803 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
cd7e5042 3804 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
3805 alignaddrldi_vis): Set type to gsr.
3806 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
3807 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
3808 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
3809 v<vis3_shift_patname><mode>3, fmean16_vis,
3810 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
3811 fucmp<code>8<P:mode>_vis): Set type to fga.
3812 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
3813 * config/sparc/niagara.md: Likewise.
3814 * config/sparc/niagara2.md: Likewise.
3815 * config/sparc/ultra3.md: Likewise, and fix type matching for
3816 us3_ialuX reservation.
3817
c7ba7c12 38182012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3819
3820 * reload.c (find_reloads): Change the loop nesting when trying an
3821 alternative with swapped operands.
3822
3f898bd2 38232012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
3824
3825 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
3826 comment. Delete unused parameter first_exp_point_map.
3827 (virt_loc_aware_diagnostic_finalizer): Update call.
3828
9dd1a066 38292012-04-26 Michael Hope <michael.hope@linaro.org>
3830 Richard Earnshaw <rearnsha@arm.com>
3831
3832 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
3833 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
3834 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
3835 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
3836
d79cfc15 38372012-04-25 Sriraman Tallam <tmsriram@google.com>
3838
3839 * doc/extend.texi: Document avx2 support.
3840 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
3841
74e06a83 38422012-04-26 Hans-Peter Nilsson <hp@axis.com>
3843
3844 PR target/53120
3845 * config/cris/cris.md ("*andhi_lowpart_v32")
3846 ("*andqi_lowpart_v32"): Change first input-only operand from
3847 a (match_operand ...) to (match_dup 0). Drop alternatives with
3848 const_int-matching constraints for redundancy.
3849 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
3850 three-operand alternative.
3851
b828abf1 38522012-04-25 Jakub Jelinek <jakub@redhat.com>
3853
3854 PR target/53110
3855 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
3856 instead expand it as zero extension.
3857
89336bc3 38582012-04-25 H.J. Lu <hongjiu.lu@intel.com>
3859
3860 PR debug/52857
9676484f 3861 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
89336bc3 3862
052166fd 38632012-04-25 Jakub Jelinek <jakub@redhat.com>
3864
3865 * common.opt (flag_debug_types_section): Default to 0.
3866 (dwarf_version): Default to 4.
3867 (dwarf_record_gcc_switches): Default to 1.
3868 (dwarf_strict): Default to 0.
3869 * toplev.c (process_options): Don't handle dwarf_strict
3870 or dwarf_version here.
3871 * config/vxworks.c (vxworks_override_options): Don't
3872 test whether dwarf_strict or dwarf_version are negative,
3873 instead test !global_options_set.x_dwarf_*.
3874 * config/darwin.c (darwin_override_options): Default to
3875 dwarf_version 2.
3876 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
3877 and -fno-debug-types-section are now the default.
3878
da5e1e7c 38792012-04-25 Jan Hubicka <jh@suse.cz>
3880
3881 * cgraphunit.c: Update toplevel comment.
3882 (tree_rest_of_compilation): Merge into cgraph_expand_function.
3883 (cgraph_analyze_function): Make static.
3884 (cgraph_decide_is_function_needed): Make static.
3885 (cgraph_add_new_function): Use expand_function instead of
3886 rest_of_compilation.
3887 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
3888 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
3889 Move to cgraph.c
3890 (cgraph_inline_p): Remove.
3891 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
3892 (init_cgraph): Add comment.
3893 * cgraphbuild.c (record_reference, mark_address, mark_load,
3894 mark_store): Do not call analyze_expr hook.
3895 * cgraph.c: Update toplevel comment.
3896 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
3897 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
3898 Move fere from cgraphunit.c
3899 (cgraph_mark_force_output_node): Move to cgraph.h
3900 * cgraph.h: Reorder so the comments match the function placement.
3901 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
3902 (cgraph_mark_force_output_node): Move here from cgraph.c
3903 * tree.c (free_lang_data): Do not clear analyze_expr hook.
3904 * ipa-inline-transform.c (preserve_function_body_p): New function.
3905 (inline_transform): Update.
3906 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
3907 * langhooks.h (lang_hooks_for_callgraph): Remove.
3908 (lang_hooks): Remove callgraph.
3909 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
3910 * varpool.c: Remove out of date comment.
3911 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
3912 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
3913
9a2639fc 39142012-04-25 Jan Hubicka <jh@suse.cz>
3915
9676484f 3916 PR middle-end/53089
3917 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
3918 forward declaration.
9a2639fc 3919 (cgraph_finalize_function): Finalize them here.
3920 * symtab.c (dump_symtab): Dump ctors and dtors.
3921
27d5d67b 39222012-04-25 Jakub Jelinek <jakub@redhat.com>
3923
7e9ba3f3 3924 PR middle-end/52979
3925 * stor-layout.c (get_best_mode): Don't return mode with bitsize
3926 larger than maxbits. Don't compute maxbits modulo align.
3927 Also check that unit bytes long store at bitpos / unit * unit
3928 doesn't affect bits beyond bitregion_end.
3929 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
9676484f 3930 would not fit into bitregion_start ... bitregion_end + 1 bit region.
7e9ba3f3 3931 (store_split_bit_field): Decrease unit close to end of bitregion_end
3932 if access is restricted in order to avoid mutual recursion.
3933
27d5d67b 3934 PR tree-optimization/53058
3935 * double-int.h (double_int_max_value, double_int_min_value): New
3936 prototypes.
3937 * double-int.c (double_int_max_value, double_int_min_value): New
3938 functions.
9676484f 3939 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
3940 or GT_EXPR with double_int_max_value instead of double_int_mask.
27d5d67b 3941
2afdcbed 39422012-04-25 Richard Guenther <rguenther@suse.de>
3943
3944 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
3945 * tree-vect-loop.c (vect_transform_loop): Adjust.
3946 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
3947 the maximum number of iterations for the epilogue loop.
9676484f 3948 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
2afdcbed 3949
537cbcc2 39502012-04-25 Jakub Jelinek <jakub@redhat.com>
3951
3952 PR c/52880
3953 * c-typeck.c (set_nonincremental_init,
3954 set_nonincremental_init_from_string): Pass true instead of false
3955 as IMPLICIT to add_pending_init.
3956
292bb106 39572012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
3958
3959 * c-typeck.c (pop_init_level): Improve diagnostics.
3960
56cc4397 39612012-04-25 Uros Bizjak <ubizjak@gmail.com>
3962
3963 * compare-elim.c (try_eliminate_compare): Also handle operands with
3964 implicit extensions.
3965
cef20746 39662012-04-25 Alan Modra <amodra@gmail.com>
3967
3968 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
3969 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
3970 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
3971 (no_global_regs_above): Delete.
3972 (no_global_regs): New function.
3973 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
3974 value for load multiple test.
3975 (savres_routine_syms): Increase size.
3976 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
3977 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
3978 rather than a number of boolean flags. Update all callers.
3979 (rs6000_savres_routine_name): Generate vector save/restore names.
3980 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
3981 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
3982 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
3983 and using_store_multiple. Expand uses. Don't always use r11 as
3984 frame reg when needed for out-of-line saves. Set up initial offset
3985 for out-of-line vector saves when buying stack frame. Handle pointer
3986 reg setup for out-of-line fp save. Emit call to out-of-line vector
3987 save function. Choose r11 or r12 for vrsave reg when available for
3988 better scheduling.
3989 (rs6000_output_function_prologue): Don't emit .extern for ELF.
3990 (rs6000_emit_epilogue): Choose a better frame reg when restoring
3991 from back-chain to suit out-of-line vector restore functions. Emit
3992 call to out-of-line vector restore function. Adjust register used
3993 for cr restore. Tweak pointer register setup for gpr restore.
3994 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
3995 FIXED_R13.
3996 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
3997 (V_SAVE_INLINE): Define.
3998 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
3999
6b5a351f 40002012-04-25 Alan Modra <amodra@gmail.com>
4001
4002 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
4003 out-of-line save/restore for large frames. Don't disable
4004 out-of-line saves on ABI_AIX when using static chain reg.
4005 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
4006 clobber static chain reg, and tweak for out-of-line gpr saves
4007 that use r1.
4008
e2750fe5 40092012-04-25 Alan Modra <amodra@gmail.com>
4010
4011 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
4012 (rs6000_emit_prologue): Use the above to catch register overlap.
4013
be846acb 40142012-04-25 Alan Modra <amodra@gmail.com>
4015
4016 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
4017 decl. Move logic selecting update reg to callers. Update all callers.
4018 (rs6000_emit_allocate_stack): Add copy_off param.
4019 (emit_frame_save): Don't handle reg+reg addressing.
4020 (ptr_regno_for_savres): New function, extracted from..
4021 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
4022 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
4023 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
4024 frame offset adjustment for out-of-line save with copy from sp.
4025 Simplify condition controlling whether cr is saved early or
4026 late. Use ptr_regno_for_savres to verify correct reg is set
4027 up for out-of-line saves. Pass the actual pointer reg used to
4028 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
4029 function. Rearrange spe vars so code is similar to that
4030 elsewhere in this function. Don't update frame_off when spe
4031 save code will restore r11. Use emit_frame_save for spe and
4032 gpr saves. Consolidate darwin out-of-line gpr setup with that
4033 for other abis. Don't assume frame_offset is zero and frame
4034 reg is sp when setting up altivec reg saves, and calculate
4035 exact offset requirement.
4036 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
4037 spe restore code. Consolidate darwin out-of-line gpr setup
4038 with that for other abis.
4039
9319fb2c 40402012-04-25 Alan Modra <amodra@gmail.com>
4041
4042 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
4043 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
4044 the replacement.
4045 (emit_frame_save): Delete frame_ptr param. Rename total_size to
4046 frame_reg_to_sp.
4047 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
4048 and emit_frame_save calls. Cope with possibly missing note.
4049
f0fd108f 40502012-04-24 Sriraman Tallam <tmsriram@google.com>
4051
4052 * config/i386/i386.c (build_processor_model_struct): New function.
4053 (make_var_decl): New function.
4054 (fold_builtin_cpu): New function.
4055 (ix86_fold_builtin): New function.
4056 (make_cpu_type_builtin): New function.
4057 (ix86_init_platform_type_builtins): New function.
4058 (ix86_expand_builtin): Expand new builtins by folding them.
4059 (ix86_init_builtins): Make new builtins to detect CPU type.
4060 (TARGET_FOLD_BUILTIN): New macro.
4061 (IX86_BUILTIN_CPU_INIT): New enum value.
4062 (IX86_BUILTIN_CPU_IS): New enum value.
4063 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
4064 * config/i386/i386-builtin-types.def: New function type.
4065 * testsuite/gcc.target/builtin_target.c: New testcase.
4066 * doc/extend.texi: Document builtins.
4067
11652e71 40682012-04-24 Olivier Hainque <hainque@adacore.com>
4069
4070 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
4071 * toplev.c (process_options): Default to dwarf_version 2.
4072 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
4073 and dwarf_version 2.
4074
c224fa34 40752012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
4076
4077 * tree-pretty-print.h (default_tree_printer): Do not declare.
4078 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
4079 intl.h.
4080 (default_tree_diagnostic_starter): Make static.
4081 (default_tree_printer): Move to here. Make static.
4082 (tree_diagnostics_defaults): New.
4083 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
4084 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
4085 * toplev.c: Do not include tree-pass.h.
4086 (default_tree_printer): Move from here.
4087 (general_init): Use tree_diagnostics_defaults.
4088
f5dfbb10 40892012-04-24 Chao-ying Fu <fu@mips.com>
4090
4091 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
4092 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
4093 * config/mips/gnu-user.h
4094 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
4095 (GNU_USER_TARGET_LINK_SPEC): New define.
4096 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
4097 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
4098 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
4099 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
4100 GNU_USER_TARGET_ENDFILE_SPEC.
4101 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
4102 (GNU_USER_TARGET_LINK_SPEC): New define.
4103 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
4104 * config/mips/linux-common.h: New file.
4105
745d490f 41062012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4107
4108 PR target/47197
4109 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
4110 (altivec_build_resolved_builtin): Call fully_fold_convert.
4111
8bcbced7 41122012-04-24 Georg-Johann Lay <avr@gjlay.de>
4113
4114 PR target/53065
4115 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
4116
a34205cc 41172012-04-24 Richard Guenther <rguenther@suse.de>
4118
4119 PR tree-optimization/53085
4120 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
4121 stores.
4122
630fd6e1 41232012-04-24 Richard Guenther <rguenther@suse.de>
4124
4125 * tree-if-conv.c (main_tree_if_conversion): Move bb under
4126 ENABLE_CHECKING.
4127
41282012-04-24 Jim Meyering <meyering@redhat.com>
891852a2 4129
4130 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
4131 absence of an define_enum call.
4132
15fa0281 41332012-04-24 Richard Guenther <rguenther@suse.de>
4134
4135 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
4136 the epilogue loop is not re-used as unvectorized version
4137 record the its maximum number of iterations.
4138
0a3f7203 41392012-04-24 Andrew Pinski <apinski@cavium.com>
4140
4141 * tree-ssa-forwprop.c (simplify_bitwise_binary):
4142 Don't directly use def1/def2.
4143
9a5ede52 41442012-04-24 Richard Guenther <rguenther@suse.de>
4145
4146 PR tree-optimization/53098
4147 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
4148 comparison sign.
4149
10fbe63d 41502012-04-24 Andrew Pinski <apinski@cavium.com>
4151
4152 PR tree-opt/33512
4153 * tree-ssa-forwprop.c (defcodefor_name): New function.
4154 (simplify_bitwise_binary): Use defcodefor_name instead of manually
4155 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
4156 Simplify "(~X | Y) & X" to "X & Y" and
4157 "(~X & Y) | X" to "X | Y".
4158
dae9d0e7 41592012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4160
4161 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
4162 validate_change to add clobbers if IN_GROUP is nonzero.
4163 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
4164 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
4165 prototype.
4166 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
4167 set to false.
4168 * config/s390/s390.c (insn_invalid_p): Likewise.
4169
41d658f4 41702012-04-24 Jakub Jelinek <jakub@redhat.com>
4171
36a2ea56 4172 PR middle-end/53084
56cc4397 4173 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
36a2ea56 4174 (output_addressed_constants): Likewise.
4175
41d658f4 4176 PR middle-end/52999
4177 * varasm.c (get_section): Don't ICE for section conflicts with
4178 built-in section kinds.
4179
a9805878 41802012-04-23 DJ Delorie <dj@redhat.com>
4181
4182 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
4183 (LIBSTDCXX): Change to CPP2.
4184
5fcf082c 41852012-04-23 H.J. Lu <hongjiu.lu@intel.com>
4186
4187 PR bootstrap/52878
4188 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
4189 extra_masks.
4190
a110769b 41912012-04-23 Uros Bizjak <ubizjak@gmail.com>
4192
4193 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
4194 (*addsi_2_zext): Ditto.
4195 (*add<mode>_3): Ditto.
4196 (*addsi_3_zext): Ditto.
4197 (*add<mode>_5): Ditto.
4198
35967c0f 41992012-04-23 Andrew Pinski <apinski@cavium.com>
4200
4201 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
4202 (C & B) to (A OP0) & B.
4203
a1a9ca4f 42042012-04-23 Martin Jambor <mjambor@suse.cz>
4205
4206 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
4207 temporaries created for a bitfield (reverting revision 122014).
4208
87ae3989 42092012-04-23 Richard Guenther <rguenther@suse.de>
4210
4211 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
4212 the condition using is_gimple_condexpr and avoid the not necessary
4213 boolification.
4214 (set_prologue_iterations): Likewise.
4215 (vect_loop_versioning): Likewise.
4216
53a87a4b 42172012-04-23 Richard Guenther <rguenther@suse.de>
4218
4219 PR tree-optimization/53070
4220 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
4221 (main_tree_if_conversion): Verify we succeeded in that.
4222
da751785 42232012-04-23 Jan Hubicka <jh@suse.cz>
4224
4225 * lto-symtab.c (lto_cgraph_replace_node): Do not call
4226 mark_reahcable_node.
4227 * cgraph.c (cgraph_remove_node): Do not clear reachable.
4228 (cgraph_mark_reachable_node): Remove.
4229 (cgraph_mark_force_output_node): Do not set reachable.
4230 (dump_cgraph_node): Do not dump reachable.
4231 (cgraph_create_virtual_clone): Do not set reachable.
4232 * cgraph.h (cgraph_node): Remove reachable flag.
4233 (varpool_node): Remove reachable flag.
4234 (cgraph_mark_if_needed): Remove.
4235 (cgraph_mark_reachable_node): Remove.
a110769b 4236 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
da751785 4237 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
4238 reachable.
4239 (cgraph_add_new_function): Likewise.
4240 (cgraph_mark_if_needed): Remove.
4241 (cgraph_analyze_function): Do not set target as reachable.
a110769b 4242 (process_function_and_variable_attributes): Do not care about
4243 dllexport.
da751785 4244 (cgraph_analyze_functions): Do not set reachable flags.
4245 (cgraph_mark_functions_to_output): Do not check reachability.
4246 (cgraph_copy_node_for_versioning): Do not set reachable flag.
4247 (dbxout_expand_expr): Update.
4248 * c-decl.c (merge_decls): Do not track changed externs.
4249 * ipa.c: Include pointer-set.h
4250 (enqueue_cgraph_node): Use reachable pointer set.
4251 (process_references): Likewise.
4252 (cgraph_remove_unreachable_nodes): Likewise.
a110769b 4253 (whole_program_function_and_variable_visibility): Do not recompute
4254 reachable.
da751785 4255 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
4256
6222cbcc 42572012-04-23 Georg-Johann Lay <avr@gjlay.de>
4258
4259 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
4260
104619f5 42612012-04-23 Richard Guenther <rguenther@suse.de>
4262
4263 PR c/53060
4264 * c-typeck.c (build_binary_op): Fix typo.
4265
78fb8a4f 42662012-04-23 Jakub Jelinek <jakub@redhat.com>
4267
4268 PR tree-optimizations/52891
4269 * tree-vect-patterns.c (adjust_bool_pattern): Use
4270 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
4271 but with non-standard precision.
4272
12faa8e4 42732012-04-22 Jan Hubicka <jh@suse.cz>
4274
104619f5 4275 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
4276 tree refs.
12faa8e4 4277
ff2a5ada 42782012-04-22 Jan Hubicka <jh@suse.cz>
4279
4280 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
4281 * cgraphbuild.c (record_reference, record_type_list, mark_address,
4282 mark_load, mark_store): Do not mark varpool nodes as needed.
4283 * cgraph.c (cgraph_new_nodes): Remove.
4284 (cgraph_create_function_alias): Do not mark nodes as reachable.
4285 (cgraph_add_thunk): Likewise.
4286 (cgraph_mark_reachable_node): Do not manage the queue.
4287 * cgraph.h (cgraph_node): Remove next_needed.
4288 (varpool_nodes_queue): Remove next_needed and prev_needed.
4289 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
4290 (cgraph_new_nodes): Declare.
4291 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
4292 (varpool_analyze_pending_decls): Remove.
4293 (varpool_analyze_node): New.
4294 (varpool_mark_needed_node): Remove.
4295 (varpool_first_variable, varpool_next_variable): New inlines.
a110769b 4296 (varpool_first_static_initializer, varpool_next_static_initializer):
4297 Update.
ff2a5ada 4298 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
4299 (varpool_first_defined_variable): New inline.
4300 (varpool_next_defined_variable): New inline
4301 (FOR_EACH_VARIABLE): Reimplement.
4302 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
4303 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
4304 needed flag.
4305 * cgraphunit.c (cgraph_new_nodes): Declare here.
4306 (enqueue_node): New function.
4307 (cgraph_process_new_functions): update for new
4308 node set; when constructing cgraph enqueue node for processing.
4309 (cgraph_add_new_function): Use new node set.
4310 (process_function_and_variable_attributes): Do not set varpool needed
4311 flags.
4312 (referred_to_p): New function.
4313 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
4314 when varpool is in construction.
4315 (cgraph_analyze_functions): Rewrite.
4316 (cgraph_expand_all_functions): Update.
a110769b 4317 (cgraph_output_in_order): Do not analyze pending decls; do not set
4318 needed flags.
ff2a5ada 4319 (cgraph_optimize): Do not analyze pending decls.
a110769b 4320 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
4321 in other partition; do not mark node as needed.
ff2a5ada 4322 * dwarf2out.c (reference_to_unused): Use analyzed flag.
4323 (premark_types_used_by_global_vars_helper): Likewise.
4324 * ipa.c (process_references): Do not call varpool_mark_needed_node.
4325 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
4326 cgrpah queues.
4327 (function_and_variable_visibility): Do not mark node as needed.
4328 (whole_program_function_and_variable_visibility): Likewise.
4329 * Makefile.in (gt-varpool.h): No longer needed.
4330 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
4331 (ipa_write_summaries): Do not use needed flag.
4332 * varpool.c: Do not include gt-varpool.h
4333 (x_varpool_nodes_queue, x_varpool_last_needed_node,
4334 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
4335 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
4336 Remove.
4337 (varpool_remove_node): Do not update the lists.
4338 (dump_varpool_node): Do not dump needed flag.
4339 (varpool_enqueue_needed_node): Remove.
4340 (varpool_mark_needed_node): Remove.
4341 (varpool_reset_queue): Remove.
4342 (varpool_finalize_decl): Move to cgraphunit.c
4343 (varpool_analyze_node): New functions based on former
4344 varpool_analyze_pending_decls.
4345 (varpool_analyze_pending_decls): Remove.
4346 (varpool_assemble_decl): Do not update the lists.
4347 (enqueue_node): New function.
4348 (varpool_remove_unreferenced_decls): Rewrite.
4349 (varpool_empty_needed_queue): Remove.
4350 (add_new_static_var): Do not mark node as needed.
4351 (varpool_create_variable_alias): Handle expansion state
4352 creation.
4353 * except.c (output_ttype): Do not mark node as needed.
4354 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
4355 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
4356 Likewise.
4357 * tree-switch-conversion.c (build_one_array): Likewise.
4358
29438999 43592012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
4360
4361 PR c/44774
4362 * doc/invoke.texi (pedantic): Rename to Wpedantic.
4363 * common.opt (Wpedantic): New.
4364 (pedantic): Alias Wpedantic.
4365 * diagnostic.c (warning_at): Likewise.
4366 * c-decl.c (diagnose_mismatched_decls): Likewise.
4367 (build_array_declarator): Likewise.
4368 (mark_forward_parm_decls):
4369 (check_bitfield_type_and_width): Likewise.
4370 (grokdeclarator): Likewise.
4371 (grokfield): Likewise.
4372 (finish_struct): Likewise.
4373 (build_enumerator): Likewise.
4374 (store_parm_decls_oldstyle): Likewise.
4375 (declspecs_add_qual): Likewise.
4376 (declspecs_add_type): Likewise.
4377 (finish_declspecs): Likewise.
4378 * c-typeck.c (composite_type): Likewise.
4379 (comp_target_types): Likewise.
4380 (build_array_ref): Likewise.
4381 (pointer_diff): Likewise.
4382 (build_unary_op): Likewise.
4383 (build_conditional_expr): Likewise.
4384 (build_c_cast): Likewise.
4385 (convert_for_assignment): Likewise.
4386 (maybe_warn_string_init): Likewise.
4387 (digest_init): Likewise.
4388 (pop_init_level): Likewise.
4389 (set_init_index): Likewise.
4390 (c_finish_goto_label): Likewise.
4391 (c_finish_return): Likewise.
4392 (do_case): Likewise.
4393 (build_binary_op): Likewise.
4394 * c-parser.c (static): Likewise.
4395 (c_parser_external_declaration): Likewise.
4396 (c_parser_declaration_or_fndef): Likewise.
4397 (c_parser_static_assert_declaration_no_se): Likewise.
4398 (c_parser_enum_specifier): Likewise.
4399 (c_parser_struct_or_union_specifier): Likewise.
4400 (c_parser_struct_declaration): Likewise.
4401 (c_parser_alignas_specifier): Likewise.
4402 (c_parser_braced_init): Likewise.
4403 (c_parser_initelt): Likewise.
4404 (c_parser_compound_statement_nostart): Likewise.
4405 (c_parser_conditional_expression): Likewise.
4406 (c_parser_alignof_expression): Likewise.
4407 (c_parser_postfix_expression): Likewise.
4408 (c_parser_postfix_expression_after_paren_): Likewise.
4409 (c_parser_objc_class_instance_variables): Likewise.
4410 (c_parser_objc_method_definition): Likewise.
4411 (c_parser_objc_methodprotolist): Likewise.
4412
5150d596 44132012-04-22 Ian Lance Taylor <iant@google.com>
4414
4415 * godump.c (go_output_typedef): Dump size of structs.
4416
89675e8c 44172012-04-22 Razya Ladelsky <razya@il.ibm.com>
61cb2bc3 4418
4419 Correcting transform_to_exit_first_loop + fix to PR46886
4420 * tree-parloops.c (transform_to_exit_first_loop): Remove
4421 setting of number of iterations according to the loop pattern.
4422 Duplicate from entry to exit->src instead of loop->latch.
4423 (pallelize_loops): Remove the condition preventing do-while loops.
4424 * tree-cfg.c (bool bb_in_region_p): New.
4425 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
4426 Adjust redirection of the duplicated iteration.
4427
86e87ef6 44282012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
4429
4430 PR bootstrap/53021
4431 * rtl.def (ADDRESS): Use "i" rather than "w".
4432 * rtl.h (find_base_term): Delete.
4433 (may_be_sp_based_p): Declare.
4434 * rtl.c (rtx_code_size): Remove ADDRESS special case.
4435 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
4436 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
4437 * alias.c: ...here.
4438 (find_base_term): Make static.
4439 (may_be_sp_based_p): New function.
4440 * dse.c (record_store): Use it.
4441 * store-motion.c (store_killed_in_insn): Likewise.
4442
fd39b896 44432012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
4444
4445 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
4446
28738b20 44472012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
4448
4449 PR 35441
4450 * c-typeck.c (inform_declaration): New.
4451 (build_function_call_vec): Do not pretty-print
4452 expressions when caret is enabled.
4453 (convert_arguments): Use inform_declaration.
4454
cdf7d299 44552012-04-20 Jim Meyering <meyering@redhat.com>
4456
4457 * genmodes.c (make_complex_modes): Don't truncate a mode name of
4458 length 7 or more when prepending a "C". Suggested by Richard Guenther.
4459
3293b457 44602012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4461
4462 PR rtl-optimization/44214
4463 * fold-const.c (exact_inverse): New function.
4464 (fold_binary_loc): Fold vector and complex division by constant into
4465 multiply by recripocal with flag_reciprocal_math; fold vector division
4466 by constant into multiply by reciprocal with exact inverse.
4467
8efa224a 44682012-04-20 Jan Hubicka <jh@suse.cz>
4469
61cb2bc3 4470 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
4471 force flags.
8efa224a 4472 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
4473 (cgraph_remove_node): Update.
4474 (cgraph_mark_needed_node): Remove.
4475 (cgraph_mark_force_output_node): New.
4476 (dump_cgraph_node): Do not dump needed flag.
4477 (cgraph_node_cannot_be_local_p_1): Update.
4478 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
4479 * cgraph.h (symtab_node_base): Add force_output flag.
4480 (cgraph_node): Remove needed flag.
4481 (varpool_node): Remove force_output flag.
4482 (cgraph_mark_needed_node): Remove.
4483 (cgraph_mark_force_output_node): New.
4484 (cgraph_only_called_directly_or_aliased_p,
4485 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
4486 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
4487 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
61cb2bc3 4488 (cgraph_add_new_function): Update.
4489 (cgraph_mark_if_needed): Update.
8efa224a 4490 (verify_cgraph_node): Update.
4491 (cgraph_analyze_function): Alias target is reachable.
4492 (process_function_and_variable_attributes): Update: externally_visible
4493 flag makes function reachable.
4494 (cgraph_analyze_functions): Update dumping.
4495 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
4496 input_overwrite_node, input_varpool_node): Update streaming.
4497 * lto-streamer-out.c (produce_symtab): Use force_output.
4498 * ipa.c (process_references): Weakrefs must be processed.
4499 (cgraph_remove_unreachable_nodes): Likewise; update for new
4500 force_output flag.
61cb2bc3 4501 (varpool_externally_visible_p): Weakrefs are externally visible
8efa224a 4502 even if they are not.
4503 (function_and_variable_visibility): Update; when processing alias
4504 pair force the targets to be output.
61cb2bc3 4505 (whole_program_function_and_variable_visility): Use
4506 mark_reachable_node.
8efa224a 4507 * trans-mem.c (ipa_tm_mark_needed_node): Remove
4508 (ipa_tm_mark_force_output_node): New function.
4509 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
61cb2bc3 4510 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
4511 aliases.
8efa224a 4512 * varasm.c (mark_decl_referenced): Update.
4513 (find_decl_and_mark_needed): Remove.
4514 (find_decl): New function.
4515 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
4516 alias targets as needed.
4517 (dump_tm_clone_pairs): Update.
4518 * tree-inline.c (copy_bb): Update check.
4519 * symtab.c (dump_symtab_base): Dump force_output.
4520 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
4521 * passes.c (execute_todo): Fix dumping.
4522 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
4523 (varpool_analyze_pending_decls): Alias target is reachable.
4524 (varpool_create_variable_alias): Finalize weakrefs.
4525
df3e5a67 45262012-04-20 Jakub Jelinek <jakub@redhat.com>
4527
4528 PR bootstrap/53021
4529 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
4530 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
4531 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
4532 macros instead of constants.
4533 * dse.c (record_store): Check for SP ADDRESS by comparing
4534 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
4535 XEXP to be stack_pointer_rtx.
4536
ebc3ea23 45372012-04-20 Richard Guenther <rguenther@suse.de>
4538
4539 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
4540 update_call_from_tree when propagating into a call.
4541
64581563 45422012-04-20 Alan Modra <amodra@gmail.com>
4543
4544 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
4545 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
4546 sp_offset to frame_off. Move world save code earlier.
4547
11b881f5 45482012-04-20 Richard Guenther <rguenther@suse.de>
4549
4550 PR tree-optimization/53050
4551 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
4552 Do only one transform on COND_EXPRs at the same time.
4553
cae322a0 45542012-04-19 Jan Hubicka <jh@suse.cz>
4555
4556 * symtab.c (dump_symtab_base): Revert accidental checkin.
4557
2e30c82f 45582012-04-20 Alan Modra <amodra@gmail.com>
4559
4560 PR target/53040
4561 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
4562 static chain, set REST_INLINE_FPRS too.
4563
7f85203b 45642012-04-20 Thomas Schwinge <thomas@codesourcery.com>
4565
4566 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
4567 nodes.
4568
5115d20b 45692012-04-20 Richard Guenther <rguenther@suse.de>
4570
61cb2bc3 4571 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
4572 loops that can never run more often than the vectorization factor.
5115d20b 4573
cfacc26f 45742012-04-19 Jan Hubicka <jh@suse.cz>
4575
4576 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
4577
34fac337 45782012-04-19 David Edelsohn <dje.gcc@gmail.com>
4579
4580 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
4581
2e045eaa 45822012-04-19 Jim Meyering <meyering@redhat.com>
4583
2e045eaa 4584 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
4585 We verified above that the string(including trailing NUL) fits in buf,
4586 so just use memcpy.
4587
5300ccdd 45882012-04-19 Richard Guenther <rguenther@suse.de>
4589
4590 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
4591 for dumping DECL_SECTION_NAME.
4592
dbe954dc 45932012-04-19 Michael Matz <matz@suse.de>
4594
4595 PR middle-end/52977
4596 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
4597 (struct tree_vector): Adjust GTY length.
4598 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
4599
4600 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
4601 members.
4602 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
4603 caller emitted the length calulation already.
4604 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
4605 before handling any of the fields for structs.
4606
dbf94397 46072012-04-19 Richard Guenther <rguenther@suse.de>
4608
4609 PR tree-optimization/53031
4610 * tree-vrp.c (adjust_range_with_scev): Revert back to
4611 using max_loop_iterations.
4612
e3d533cf 46132012-04-19 Michael Matz <matz@suse.de>
4614
4615 * diagnostic.c (emit_diagnostic): Move va_end call after user
4616 of the va_list.
4617 (warning, warning_at, pedwarn, permerror): Ditto.
4618
8ee14c01 46192012-04-19 Richard Guenther <rguenther@suse.de>
4620
4621 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
4622 array access.
4623
27b3429e 46242012-04-19 Georg-Johann Lay <avr@gjlay.de>
4625
4626 PR target/53033
4627 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
4628 the case *(X+const).
4629
31e4b46c 46302012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4631
4632 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
4633
61cb2bc3 46342012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
d85dbdb3 4635
4636 PR c/52283/37985
4637 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
4638 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
4639
8fb72e03 46402012-04-19 Richard Guenther <rguenther@suse.de>
4641
4642 PR rtl-optimization/44688
4643 * loop-iv.c (determine_max_iter): Only return max_iter.
4644 (iv_number_of_iterations): Also use the recorded loop bound
4645 on the maximum number of iterations.
4646 * loop-unroll.c (decide_unroll_runtime_iterations): Use
4647 max_iter to avoid unrolling loops that do not roll.
4648 (decide_unroll_stupid): Likewise.
4649
bfb10994 46502012-04-18 Steven Bosscher <steven@gcc.gnu.org>
4651
4652 * targhooks.c (default_case_values_threshold): Fix code style nit.
4653
4654 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
4655 case range and type folding from here...
4656 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
c8302ead 4657 type, as documented in tree.def.
bfb10994 4658
3e7775f6 46592012-04-18 Jan Hubicka <jh@suse.cz>
4660
4661 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
4662 Declare.
bef9aba3 4663 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
3e7775f6 4664 cgraph hash and same comdat groups.
61cb2bc3 4665 (cgraph_optimize): Verify symbol table.
3e7775f6 4666 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
4667 (dissolve_same_comdat_group_list): Work on symtab nodes.
4668 (function_and_variable_visibility): Dissolve variable same comdat group
4669 lists, too.
4670 * symtab.c: Include timevar.h
4671 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
4672
9541f573 46732012-04-18 Steven Bosscher <steven@gcc.gnu.org>
4674
5d459527 4675 * tree-switch-conversion.c (info): Remove global pass info.
4676 (check_range, check_process_case, check_final_bb, create_temp_arrays,
4677 free_temp_arrays, gather_default_values, build_constructors,
4678 array_value_type, build_one_array, build_arrays, gen_def_assigns,
4679 fix_phi_nodes, gen_inbound_check): Pass info around from ...
4680 (process_switch): ... here. Unify message format. Return a const
4681 char pointer to the failure reason message.
4682 (do_switchconv): Unify message format. Update process_switch usage.
4683
9541f573 4684 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
4685 * tree-cfg.c (edge_to_cases): Fix documentation.
4686
ed13de71 46872012-04-18 Uros Bizjak <ubizjak@gmail.com>
4688
4689 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
4690
a963cb46 46912012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4692
4693 PR tree-optimization/52976
4694 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
4695 (possibly_move_powi): New function.
4696 (rewrite_expr_tree): Call possibly_move_powi.
4697 (rewrite_expr_tree_parallel): Likewise.
4698 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
4699 call add_to_ops_vec instead.
4700
56e650d6 47012012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4702
4703 PR tree-optimization/52976
4704 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
4705 (decrement_power): Likewise.
4706 (propagate_op_to_single_use): Likewise.
4707 (zero_one_operation): Handle __builtin_pow* calls in linearized
4708 expression trees; factor logic into propagate_op_to_single_use.
4709 (undistribute_ops_list): Allow operands with repeat counts > 1.
4710
b6556916 47112012-04-18 Richard Guenther <rguenther@suse.de>
4712
4713 PR tree-optimization/44688
4714 * cfgloop.h (record_niter_bound): Declare.
4715 * tree-ssa-loop-niter.c (record_niter_bound): Export.
4716 Update the estimation with the upper bound here...
4717 (estimate_numbers_of_iterations_loop): ... instead of here.
4718 Do not forcefully reset a recorded upper bound.
4719 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
61cb2bc3 4720 Record the maximum number of loop iterations of the prologue loop.
b6556916 4721
04ec15fa 47222012-04-18 Jan Hubicka <jh@suse.cz>
4723
4724 * lto-symtab.c (lto_cgraph_replace_node): Update.
4725 * cgraphbuild.c (record_reference, record_type_list,
4726 record_eh_tables, mark_address, mark_load, mark_store): Update.
4727 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
4728 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
4729 Update.
4730 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
4731 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
4732 * reload.c: Fix typo in comment.
4733 * rtlanal.c: Likewise.
4734 * tree-emultls.c (gen_emutls_addr): Update.
4735 * ipa-reference.c (analyze_function): Update.
4736 * cgraphunit.c (cgraph_analyze_function,
4737 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
4738 Update.
4739 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
4740 (ipa_remove_reference): Likewise.
4741 (ipa_remove_all_refering): Rename to ...
4742 (ipa_remove_all_referring): ... this one; update.
4743 (ipa_dump_references): Update.
4744 (ipa_dump_referring): Update.
4745 (ipa_clone_references): Update.
4746 (ipa_clone_refering): Rename to ...
4747 (ipa_clone_referring): ... this one; update.
4748 (ipa_ref_cannot_lead_to_return): Update.
4749 (ipa_ref_has_aliases_p): Update.
4750 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
4751 forward typedefs.
4752 (ipa_ref_type): Remove.
4753 (ipa_ref_ptr_u): Remove.
4754 (ipa_ref): Remove referencing, refered, refered_index, refering_type
4755 and refered_type; add referring, referred and referred_index.
4756 (ipa_ref_list): Rename refering to referring.
4757 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
4758 ipa_clone_references, ipa_clone_referring): Update prototypes.
4759 * lto-cgraph.c (referenced_from_other_partition_p): Update.
4760 (lto_output_ref): Update.
4761 (add_references): Update.
4762 (input_varpool_node): Update.
4763 (input_refs): Update.
4764 * ipa-ref-inline.h (ipa_ref_node): Update.
4765 (ipa_ref_varpool_node): Update.
61cb2bc3 4766 (ipa_ref_referring_node): Update.
04ec15fa 4767 (ipa_ref_referring_varpool_node): Update.
61cb2bc3 4768 (ipa_ref_referring_ref_list): Update.
04ec15fa 4769 (ipa_ref_referred_ref_list): Update.
4770 (ipa_ref_list_first_referring): Update.
4771 (ipa_empty_ref_list): Update.
4772 (ipa_ref_list_refering_iterate): Rename to ...
4773 (ipa_ref_list_referring_iterate): ... this one.
4774 * cse.c: Update comment.
4775 * ipa-utils.c (ipa_reverse_postorder): Update.
4776 * tree-ssa-alias.c: Update.
4777 * ipa-inline.c (reset_edge_caches): Update.
4778 (update_caller_keys): Update.
4779 * ipa-inline.h: Update comments.
4780 * jump.c: Update comment.
4781 * alias.c: Likewise.
4782 * ipa.c (process_references): Update.
4783 (cgraph_remove_unreachable_nodes): Likewise.
4784 (ipa_discover_readonly_nonaddressable_var): Likewise.
4785 (cgraph_address_taken_from_non_vtable_p): Likewise.
4786 * trans-mem.c (ipa_tm_execute): Update.
4787 * simplify-rtx.c: Fix comment.
4788 * rtl.c: Fix comment.
4789 * symtab.c (symtab_unregister_node): Update.
4790 * varpool.c (dump_varpool_node): Update.
4791 (varpool_analyze_pending_decls): Update.
4792 (assemble_aliases): Update.
4793 (varpool_for_node_and_aliases): Update.
4794
7f521ab4 47952012-04-18 Richard Guenther <rguenther@suse.de>
4796
4797 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
4798 use_undefined_p parameter.
4799 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
4800 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
4801 Likewise.
4802 (estimate_numbers_of_iterations): Likewise.
4803 (estimated_loop_iterations): Adjust.
4804 (max_loop_iterations): Likewise.
4805 (scev_probably_wraps_p): Likewise.
4806 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
4807 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
4808 not max_loop_iterations.
4809 (execute_vrp): Remove explicit number of iterations estimation.
4810
ba102931 48112012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
4812
4813 * config/i386/linux-common.h: New.
4814
4815 * config.gcc: Add i386/linux-common.h before
4816 all i386/linux.h and i386/linux64.h usages.
4817
4818 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
4819 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
4820 * config/i386/gnu-user64.h: Likewise.
4821
4822 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
4823 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
4824 (GNU_USER_TARGET_MATHFILE_SPEC): New.
4825 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
4826
18841b0c 48272012-04-18 Jan Hubicka <jh@suse.cz>
4828
4829 * cgraph.c (cgraph_node_name): Remove.
4830 (dump_cgraph_node): Use dump_symtab_base; reformat.
4831 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
4832 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
4833 Declare.
4834 (cgraph_node_name, varpool_node_name): Remove.
4835 (cgraph_node_asm_name, varpool_node_asm_name,
4836 cgraph_node_name, varpool_node_name): New.
4837 * tree-pass.h (TODO_dump_cgraph): Rename to ...
4838 (TODO_dump_symtab): ... this one.
4839 * ipa-cp (pass_ipa_cp): Update.
4840 * ia-reference.c (generate_summary, read_write_all_from_decl,
4841 propagate, ipa_reference_read_optimization_summary): Update.
4842 * cgraphunit.c (cgraph_analyze_functions): Update.
4843 (cgraph_optimize): Update.
4844 * ipa-ref.c (ipa_dump_references): Update.
4845 (ipa_dump_refering): Update.
4846 * ipa-inline.c (pass_ipa_inline): Update.
4847 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
4848 * ipa.c (pass_ipa_function_visibility,
4849 pass_ipa_whole_program_visibility): Update.
4850 * tree-sra.c (pass_early_ipa_sra): Update.
4851 * symtab.c: Include langhooks.h
4852 (symtab_node_asm_name): New.
4853 (symtab_node_name): New.
4854 (symtab_type_names): New static var.
4855 (dump_symtab_base): New.
4856 (dump_symtab_node, dump_symtab): New.
4857 (debug_symtab_node, debug_symtab): New.
4858 * tree-ssa-structalias.c: Dump symbol table.
4859 * pases.c (execute_todo): Handle TODO_dump_symtab instead
4860 of TODO_dump_cgraph.
4861 * varpoo.c (varpool_node_name): Remove.
4862 (dump_varpool_node): Use dump_symtab_base; reformat.
4863
b583dffb 48642012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4865
61cb2bc3 4866 * doc/invoke.texi (Language Independent Options): @item should be
b583dffb 4867 before @opindex.
4868
9a37e9c6 48692012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
4870
4871 PR bootstrap/53021
4872 * rtl.c (rtx_code_size): Handle ADDRESS.
4873
85d618f3 48742012-04-17 Tom de Vries <tom@codesourcery.com>
4875
4876 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
4877 is not a STMT_LIST.
4878
4e0c0c52 48792012-04-17 Uros Bizjak <ubizjak@gmail.com>
4880
4881 PR target/53020
4882 * config/i386/sync.md (atomic_<code><mode>): Rename to
4883 atomic_<logic><mode>.
4884
4e56ceb1 48852012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
4886
4887 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
4888 * alias.c (reg_base_value): Expand and update comment.
4889 (arg_base_value): New variable.
4890 (unique_id): Move up file.
4891 (unique_base_value, unique_base_value_p, known_base_value_p): New.
4892 (find_base_value): Use arg_base_value and known_base_value_p.
4893 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
4894 (find_base_term): Use known_base_value_p.
4895 (base_alias_check): Use unique_base_value_p.
4896 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
4897 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
4898
b100cea5 48992012-04-17 Pat Haugen <pthaugen@us.ibm.com>
4900
4901 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
4902
7a10f06b 49032012-04-17 Michael Matz <matz@suse.de>
4904
4905 PR tree-optimization/18437
4906 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
4907 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
4908 (vect_check_strided_load): Declare.
4909 * tree-vect-data-refs.c (vect_check_strided_load): New function.
4910 (vect_analyze_data_refs): Use it to accept strided loads.
4911 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
4912
3a37f7bd 49132012-04-17 Richard Guenther <rguenther@suse.de>
4914
4915 PR middle-end/53011
4916 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
4917 loops when redirecting an entry or latch edge.
4918
2bc1ac5a 49192012-04-17 Bernd Schmidt <bernds@codesourcery.com>
4920
4921 * sel-sched.c (sel_global_init): Revert previous change.
4922
e01d3bb3 49232012-04-17 Richard Guenther <rguenther@suse.de>
4924
4925 * tree-flow.h (array_at_struct_end_p): Move declaration ...
4926 * tree.h (array_at_struct_end_p): ... here.
4927 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
4928 * expr.c (array_at_struct_end_p): ... here. Rewrite.
4929
1c391fd0 49302012-04-17 Steven Bosscher <steven@gcc.gnu.org>
4931
4932 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
4933 COST_TABLE): Remove.
4934 (estimate_case_costs): Remove.
4935 (expand_case): Do not call estimate_case_costs
4936 to set use_cost_table.
4937 (balance_case_nodes): Do not use use_cost_table.
4938
cfbe30aa 49392012-04-16 Jan Hubicka <jh@suse.cz>
4940
4941 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
4942 (hash_node, eq_node): Remove.
4943 (cgraph_create_node): Do not handle hashtable.
4944 (cgraph_get_node): Remove.
4945 (cgraph_insert_node_to_hashtable): Remove.
4946 (hash_node_by_assembler_name): Remove.
4947 (eq_assembler_name): Remove.
4948 (cgraph_node_for_asm): Rewrite.
4949 (cgraph_find_replacement_node): Break out from ...
4950 (cgraph_remove_node): ... here; do not maintain hashtables.
4951 (change_decl_assembler_name): Remove.
4952 (cgraph_clone_node): Do not maintain hashtables.
4953 * cgraph.h (const_symtab_node): New typedef.
4954 (cgraph_insert_node_to_hashtable): Remove.
4955 (symtab_get_node, symtab_node_for_asm,
4956 symtab_insert_node_to_hashtable): Declare.
4957 (cgraph_find_replacement_node): Declare.
4958 (cgraph_get_node, varpool_get_node): Turn into inlines.
4959 (cgraph, varpool): Work sanely on NULL pointers.
4960 (FOR_EACH_SYMBOL): New walker.
4961 * ipa-inline-transform.c (save_inline_function_body): Use
4962 symtab_insert_node_to_hashtable.
4963 * symtab.c: Include ggc.h and diagnostics.h
4964 (symtab_hash, assembler_name_hash): New static vars;
4965 (hash_node, eq_node, hash_node_by_assembler_name,
4966 eq_assembler_name, insert_to_assembler_name_hash,
4967 unlink_from_assembler_name_hash): New.
4968 (symtab_register_node): Update hashtables.
4969 (symtab_insert_node_to_hashtable): New.
4970 (symtab_unregister_node): Update hashtables.
4971 (symtab_get_node): New.
4972 (symtab_node_for_asm): New.
4973 (change_decl_assembler_name): New.
4974 * Makefile.in (symtab.o): Needs GTY.
4975 * varpool.c (varpool_hash): Remove.
4976 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
4977 (varpool_node): Rewrite using varpool_get_node.
4978 (varpool_remove_node): DO not maintain hashtables.
61cb2bc3 4979 (varpool_node_for_asm): Rewrite.
cfbe30aa 4980
cafd8c6c 49812012-04-16 Sandra Loosemore <sandra@codesourcery.com>
4982
4983 * doc/invoke.texi: Copy-edit to put verbs in the present tense
4984 when describing the current behavior of GCC.
4985
5d92623d 49862012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
4987
4988 * genemit.c (gen_exp): Remove ADDRESS handling.
4989 * genoutput.c (scan_operands): Likewise.
4990 * genpeep.c (match_rtx): Likewise.
4991 * genrecog.c (add_to_sequence): Likewise.
4992
addbb217 49932012-04-16 David Edelsohn <dje.gcc@gmail.com>
4994
61cb2bc3 4995 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
addbb217 4996
9e3797f2 49972012-04-16 Martin Jambor <mjambor@suse.cz>
4998
4999 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
5000 bit-fields.
5001
85cedc6b 50022012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
5003
5004 PR target/51819
5005 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
5006 hints for 'A' operand types.
5007
0704fb2e 50082012-04-16 Jan Hubicka <jh@suse.cz>
5009
5010 * cgraph.h (symtab_node_base): Add next and previous pointers.
5011 (cgraph_node): Remove next and preivous pointers.
5012 (varpool_node): Likewise; remove next/previous GTY marker;
5013 it is not type safe.
5014 (symtab_node_def): Update GTY marker
5015 (x_cgraph_nodes, cgraph_nodes): Remove.
5016 (symtab_nodes): New function.
5017 (cgraph_order): Rename to ...
5018 (symtab_order): ... this one.
5019 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
5020 Declare.
5021 (x_varpool_nodes, varpool_nodes): Remove.
5022 (FOR_EACH_STATIC_VARIABLE): Update.
5023 (symtab_function_p, symtab_variable_p): New function.
5024 (FOR_EACH_VARIABLE): Update.
5025 (varpool_first_variable, varpool_next_variable): New functions.
5026 (FOR_EACH_VARIABLE): Update.
5027 (cgraph_first_defined_function): Update.
5028 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
5029 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
5030 (cgraph_first_function, cgraph_next_function): New.
5031 (FOR_EACH_FUNCTION): Update.
5032 (cgraph_first_function_with_gimple_body,
5033 cgraph_next_function_with_gimple_body): Update.
5034 * symtab.c: New file.
5035 * cgraph.c: Update copyright dates.
5036 (x_cgraph_nodes, cgraph_order): Remove.
5037 (NEXT_FREE_NODE): Update.
5038 (SET_NEXT_FREE_NODE): New.
5039 (cgraph_create_node_1): Remove common code.
61cb2bc3 5040 (cgraph_create_node): Remove common code; call symtab_register_node.
0704fb2e 5041 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
61cb2bc3 5042 (cgraph_add_asm_node): Update.
0704fb2e 5043 (cgraph_clone_node): Register new node.
5044 * cgraphunit.c (process_function_and_variable_attributes): Update.
5045 (cgraph_analyze_functions): Update.
5046 (cgraph_analyze_functions): Update.
5047 (cgraph_output_in_order): Update.
61cb2bc3 5048 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
5049 Update.
5050 * ipa-inline.c (recursive_inlining): Update.
5051 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
0704fb2e 5052 * ipa.c (cgraph_remove_unreachable_nodes): Update.
5053 * Makefile.in: Add symtab.o
5054 * varpool.c (x_varpool_nodes): Remove
5055 (varpool_node): Remove common code; call symtab_register_node.
61cb2bc3 5056 (varpool_remove_node): Remove common code; call symtab_unregister_node.
0704fb2e 5057
c7a1d251 50582012-04-16 Richard Guenther <rguenther@suse.de>
5059
5060 PR middle-end/52977
5061 * tree.h (VECTOR_CST_NELTS): Adjust.
5062 (struct tree_vector): Add explicit length field.
5063 (make_vector_stat): Declare.
5064 (make_vector): Define.
5065 * tree.c (make_vector_stat): New function.
5066 (build_vector_stat): Use it.
5067 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
5068
d8a78f92 50692012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5070
5071 PR tree-optimization/52976
5072 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
5073 (undistribute_ops_list): Ops with repeat counts aren't eligible for
5074 undistribution.
5075 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
5076
7c455d87 50772012-04-16 Jan Hubicka <jh@suse.cz>
5078
5079 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
5080 New macros.
5081 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
5082 walkers to walk cgraph and varpool.
5083 * cgraph.c (cgraph_node_for_asm): Likewise.
5084 (dump_cgraph): Likewise.
5085 * value-prof.c (init_node_map): Likewise.
5086 * tree.c (free_lang_data_in_cgraph): Likewise.
5087 * tree-emutls.c: (ipa_lower_emutls): Likewise.
5088 * ipa-reference.c (generate_summary, propagate): Likewise.
5089 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
5090 cgraph_mark_functions_to_output, cgraph_output_in_order,
5091 output_weakrefs, cgraph_materialize_all_clones,
5092 cgraph_optimize): Likewise.
5093 * lto-cgraph.c (merge_profile_summaries): Likewise.
5094 (input_cgraph): Likewise.
5095 * ipa-pure-const.c (generate_summary): Likewise.
5096 (propagate): Likwise.
5097 * ipa-utils.c (ipa_reduced_postorder): Likewise.
5098 (ipa_free_postorder_info): Likewise.
5099 (ipa_reverse_postorder): Likewise.
5100 * ipa-inline.c (ipa_inline): Likewise.
5101 * matrix-reorg.c (find_matrices_decl): Likewise.
5102 (matrix_reorg): Likewise.
5103 * tree-vectorizer.c (increase_alignment): Likewise.
5104 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
5105 (function_and_variable_visibility): Likewise.
5106 (whole_program_function_and_variable_visibility): Likewise.
5107 (ipa_cdtor_merge): Likewise.
5108 * trans-mem.c (ipa_tm_execute): Likewise.
5109 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
5110 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
5111 (ipa_print_all_params): Likewise.
5112 (ipa_update_after_lto_read): Likewise.
5113 * tree-profie.c (tree_profiling): Likewise.
5114 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
5115 * passes.c (dump_passes): Likewise.
5116 (do_per_function): Likewise.
5117 (ipa_write_summaries): Likewise.
5118 * varpool.c (dump_varpool): Likewise.
5119 (varpool_node_for_asm): Likewise.
5120 (varpool_assemble_pending_decls): Likewise.
5121
06734da8 51222012-04-16 Richard Guenther <rguenther@suse.de>
5123
5124 PR tree-optimization/52975
5125 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
5126 condition but always mark it with TRUTH_NOT_EXPR.
4e0c0c52 5127
360b78f3 51282012-04-16 Richard Guenther <rguenther@suse.de>
5129
5130 PR tree-optimization/52975
5131 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
5132 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
5133 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
5134 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
5135
fd65bafc 51362012-04-14 Uros Bizjak <ubizjak@gmail.com>
5137
5138 * config/i386/sse.md (ssse3_plusminus): New code iterator.
5139 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
5140 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
5141 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
5142 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
5143 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
5144 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
5145
5146 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
5147 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
5148 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
5149 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
5150 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
5151 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
5152
5153 (xop_plus): New code iterator.
5154 (macs): New code attribute.
5155 (macds): Ditto.
5156 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
5157 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
5158 iterator.
5159 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
5160 xop_plus code iterator.
5161 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
5162 xop_plus code iterator.
5163 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
5164 xop_plus code iterator.
5165 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
5166 xop_plus code iterator.
5167
5168 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
5169 any_extend code iterator.
5170 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
5171 any_extend code iterator.
5172 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
5173 any_extend code iterator.
5174 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
5175 any_extend code iterator.
5176 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
5177 any_extend code iterator.
5178 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
5179 any_extend code iterator.
5180
a2b85e40 51812012-04-14 Tom de Vries <tom@codesourcery.com>
5182
5183 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
5184 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
5185 DELETED_LABEL note, and move it to ...
5186 * cfgrtl.c (delete_insn): ... here. Change return type to void.
5187 (delete_insn_and_edges): Likewise.
5188 (delete_insn_chain): Handle new return type of delete_insn. Delete
5189 chain backwards rather than forwards.
5190 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
5191 void.
5192 * cfglayout.c (fixup_reorder_chain): Delete unused label.
5193
7d0d0ce1 51942012-04-14 Jan Hubicka <jh@suse.cz>
5195
5196 * cgraph.h: Update copyrights;
5197 (symtab_node): Turn to union typedef.
5198 (symtab_node_base): New structure.
5199 (symtab_type): Add SYMTAB_SYMBOL tag.
5200 (cgraph_node): Annotate some pinters with nested_ptr.
5201 (varpool_node): Likewise.
5202 (cgraph_local_info): Remove lto_file_data
5203 and externally_visible.
5204 (cgraph_node): Remove decl; same_comdat_group list;
5205 aux; ref_list; order; address_taken; reachable_from_other_parittion,
5206 in_other_partition; resolution.
5207 (varpool_node): Remove decl; same_comdat_group;
5208 ref_list; lto_file_data; aux; order; resolution; externally_visible;
5209 used_from_other_partition; in_other_partition.
61cb2bc3 5210 (symtab_node_def): New union.
7d0d0ce1 5211 (cgraph, varpool): Update.
5212 (varpool_first_static_initializer, varpool_next_static_initializer,
5213 cgraph_only_called_directly_or_aliased_p,
5214 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
5215 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
5216 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
5217 field references.
5218 * cgraph.c: Likewise.
5219 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
5220 * cgraphbuild.c: Likewise.
5221 * lto-symtab.c: Likewise.
5222 * c-gimplify.c: Likewise.
5223 * value-prof.c: Likewise.
5224 * tree.c: Likewise.
5225 * ipa-cp.c: Likewise.
5226 * tree-emutls.c: Likewise.
5227 * ipa-inline-transform.c: Likwise.
5228 * ipa-reference.c: Likewise.
5229 * cgraphunit.c: Likewise.
5230 * ipa-ref.c: Likewise.
5231 * lto-cgraph.c: Likewise.
5232 * ipa-ref-inline.h: Likewise.
5233 * ipa-pure-const.c: Likewise.
5234 * lto-streamer-out.c: Likewise.
5235 * ipa-utils.c: Likewise.
5236 * ipa-inline.c: Likewise.
5237 * matrix-reorg.c: Likewise.
5238 * tree-eh.c: Likewise.
5239 * tree-vectorizer.c: Likewise.
5240 * ipa-split.c: Likewise.
5241 * ipa.c: Likewise.
5242 * trans-mem.c: Likewise.
5243 * ipa-inline-analysis.c: Likewise.
5244 * gimplify.c: Likewise.
5245 * cfgexpand.c: Likewise.
5246 * tree-sra.c: Likewise.
5247 * ipa-prop.c: Likewise.
5248 * varasm.c: Likewise.
5249 * tree-nested.c: Likewise.
5250 * tree-inline.c: Likewise.
5251 * tree-profile.c: Likewise.
5252 * tree-ssa-structalias.c: Likewise.
5253 * passes.c: Likewise.
5254 * varpool.c: Likewise.
5255
162fb1a4 52562012-04-14 Tom de Vries <tom@codesourcery.com>
5257
5258 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
5259 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
5260 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
5261 of find_edge.
5262 (gsi_advance_fw_nondebug_nonlocal): New function.
5263 (local_def): Removed function.
5264 (same_succ_hash): Use stmt_local_def.
5265 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
5266 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
5267
fc3dad6f 52682012-04-13 H.J. Lu <hongjiu.lu@intel.com>
5269
5270 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
5271 and __ILP32__ for x32.
5272
86d2a13e 52732012-04-13 Martin Jambor <mjambor@suse.cz>
5274
5275 PR middle-end/52939
5276 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
5277 fold_ctor_reference returns a zero constant.
5278
83dd7eef 52792012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
5280
5281 * config.gcc: Add i386/gnu-user-common.h before all
5282 i386/gnu-user.h and i386/gnu-user64.h usages.
5283
5284 * config/i386/gnu-user-common.h: New.
5285
5286 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
5287 (CC1_SPEC): Likewise.
5288 (ENDFILE_SPEC): Likewise.
5289 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
5290 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
5291 (TARGET_OS_CPP_BUILTINS): Likewise.
5292 (LIBGCC2_HAS_TF_MODE): Likewise.
5293 (LIBGCC2_TF_CEXT): Likewise.
5294 (TF_SIZE): Likewise.
5295 (TARGET_ASM_FILE_END): Likewise.
5296 (STACK_CHECK_MOVING_SP): Likewise.
5297 (STACK_CHECK_STATIC_BUILTIN): Likewise.
5298 * config/i386/gnu-user64.h: Likewise.
5299
75d525a2 53002012-04-13 Martin Jambor <mjambor@suse.cz>
5301
5302 * expr.c (expand_expr_real_1): Pass type, not the expression, to
5303 set_mem_attributes for a memory temporary. Do not call the function
5304 for the memory temporary created for a bitfield.
5305
2abb79fc 53062012-04-13 Alexandre Oliva <aoliva@redhat.com>
5307
5308 PR debug/48866
5309 * df.h (enum debug_temp_where): New.
5310 (dead_debug_init, dead_debug_finish) Declare.
5311 (dead_debug_add, dead_debug_insert_temp): Declare.
5312 (struct dead_debug_use, struct dead_debug): Moved from...
5313 * df-problems.c: ... here.
5314 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
5315 to a debug temp.
5316 (df_create_unused_note): Likewise.
5317 (df_set_dead_notes_for_mw): Move comment where it belongs.
5318 (dead_debug_init): Export.
5319 (dead_debug_reset_uses): New, factored out of...
5320 (dead_debug_finish): ...this. Export.
5321 (dead_debug_reset): Remove.
5322 (dead_debug_add): Export.
5323 (dead_debug_insert_before): Rename to...
5324 (dead_debug_insert_temp): ... this. Add where argument. Export.
5325 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
5326 Return insertion count.
5327 (df_note_bb_compute): Adjust.
5328 * dce.c (word_dce_process_block): Adjust dead debug uses.
5329 (dce_process_block): Likewise.
5330
9f5c85ce 53312012-04-13 Alexandre Oliva <aoliva@redhat.com>
5332
5333 * df-problems.c (df_note_bb_compute): Do not take note of
5334 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
5335
11643610 53362012-04-13 Alexandre Oliva <aoliva@redhat.com>
5337
5338 PR debug/51570
5339 * var-tracking.c (expand_depth): New type.
5340 (onepart_aux, expand_loc_callback_data): Change depth type to it.
5341 (loc_exp_dep_alloc): Adjust initializer.
5342 (update_depth): Use new type. Add entryvals.
5343 (vt_expand_var_loc_chain): Take note of expansions with
5344 ENTRY_VALUEs, but don't accept them right away. Run an optional
5345 second pass accepting the minimum ENTRY_VALUE count found in the
5346 first pass.
5347 (vt_expand_loc_callback, INIT_ELCD): Adjust.
5348
cdd84b7c 53492012-04-13 Tom de Vries <tom@codesourcery.com>
5350
5351 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
5352 parameters vuse and vuse_escaped.
5353 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
5354 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
5355 vuse1 != vuse2.
5356
2df61941 53572012-04-13 Richard Guenther <rguenther@suse.de>
5358
5359 PR tree-optimization/52969
5360 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
5361 the condition for the COND_EXPR and handle predicate negation
5362 by swapping the COND_EXPR arms.
5363
4f08bfe3 53642012-04-13 Nick Clifton <nickc@redhat.com>
5365
5366 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
5367 TODO_dump_func flag.
5368
30474b14 53692012-04-13 Andrey Belevantsev <abel@ispras.ru>
5370
5371 PR rtl-optimization/52203
5372 PR rtl-optimization/52715
5373
5374 Revert the 2012-03-07 fix for PR 52203.
5375 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
5376 the insn does not modify DFA right before issuing, adjust
5377 issue_rate accordingly.
5378
d1d7b24c 53792012-04-13 Richard Guenther <rguenther@suse.de>
5380
5381 PR c/52549
5382 * c-typeck.c (pointer_diff): Remove bogus assert.
5383
799c82e4 53842012-04-13 Richard Guenther <rguenther@suse.de>
5385
5386 PR c/52862
fd65bafc 5387 * convert.c (convert_to_pointer): Remove special-casing of zero.
799c82e4 5388
c5b75283 53892012-04-13 Joey Ye <joey.ye@arm.com>
5390
5391 * config/arm/constraints.md (Pe): New constraint.
5392 * config/arm/arm.md: New split for imm 256-510.
5393
9fd13df4 53942012-04-13 Terry Guo <terry.guo@arm.com>
5395
5396 * config/arm/arm-cores.def: Added core cortex-m0plus.
5397 * config/arm/arm-tune.md: Regenerated.
5398 * config/arm/arm-tables.opt: Regenerated.
5399 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
5400
d6415769 54012012-04-13 Alan Modra <amodra@gmail.com>
5402
5403 PR target/52828
5404 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
5405 tie regs on destination of sets. Delete forward declaration.
5406 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
5407 (rs6000_emit_prologue): Likewise.
5408 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
5409 and gen_stack_tie.
5410 (is_mem_ref): Use tie_operand to recognise stack ties.
5411 * config/rs6000/predicates.md (tie_operand): New.
5412 * config/rs6000/rs6000.md (restore_stack_block): Generate new
5413 stack tie rtl.
5414 (restore_stack_nonlocal): Likewise.
5415 (stack_tie): Update.
5416 (frame_tie): Delete.
5417
8ef3b7cb 54182012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5419
5420 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
5421 HOST_WIDE_INT_PRINT_DEC in format strings.
5422
8da8a06b 54232012-04-12 Uros Bizjak <ubizjak@gmail.com>
5424
5425 PR target/52932
5426 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
5427 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
5428 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
5429 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
5430 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
5431 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
5432 avx2_permvarv8si using VI4F_256 mode iterator.
5433 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
5434 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
5435 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
5436 gen_avx2_permvarv8sf.
5437 (expand_vec_perm_pshufb): Ditto.
5438
203e95f6 54392012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5440
5441 PR target/52775
5442 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
5443 the list of options to enable the FCFID instruction.
5444 (TARGET_EXTRA_BUILTINS): Adjust comment.
5445
8c5ac7f6 54462012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5447
5448 PR tree-optimization/18589
5449 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
5450 (operand_entry): Add count field.
5451 (add_repeat_to_ops_vec): New function.
5452 (completely_remove_stmt): Likewise.
5453 (remove_def_if_absorbed_call): Likewise.
5454 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
5455 (acceptable_pow_call): New function.
5456 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
5457 entries with repeat counts when found.
5458 (repeat_factor_d): New struct and associated typedefs.
5459 (repeat_factor_vec): New static vector variable.
5460 (compare_repeat_factors): New function.
5461 (get_reassoc_pow_ssa_name): Likewise.
5462 (attempt_builtin_powi): Likewise.
5463 (reassociate_bb): Call attempt_builtin_powi.
5464 (fini_reassoc): Two new calls to statistics_counter_event.
5465
3db65b62 54662012-04-12 Richard Guenther <rguenther@suse.de>
5467
5468 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
5469 * cgraph.h (tree_rest_of_compilation): Remove.
5470 * cgraph.c (cgraph_add_new_function): Move ...
5471 * cgraphunit.c (cgraph_add_new_function): ... here.
5472 (tree_rest_of_compilation): Make static.
5473 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
5474 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
5475 gate_all_early_local_passes, execute_all_early_local_passes,
5476 pass_early_local_passes, gate_all_early_optimizations,
5477 pass_all_early_optimizations): Move ...
5478 * passes.c (gate_all_optimizations, pass_all_optimizations,
5479 gate_all_early_local_passes, execute_all_early_local_passes,
5480 pass_early_local_passes, gate_all_early_optimizations,
5481 pass_all_early_optimizations): ... here.
5482 * tree-optimize.c (execute_free_datastructures): Remove.
5483 * tree-flow.h (execute_free_datastructures): Remove.
5484 * tree-optimize.c (execute_init_datastructures,
5485 pass_init_datastructures): Move ...
5486 * tree-ssa.c (execute_init_datastructures,
5487 pass_init_datastructures): ... here.
5488 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
5489 execute_free_datastructures.
5490
fe9cf48d 54912012-04-12 Bernd Schmidt <bernds@codesourcery.com>
5492
5493 * dbgcnt.def (ira_move): New counter.
5494 * ira-int.h (ira_create_new_reg): Declare function.
5495 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
5496 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
5497 no longer static. All callers changed.
5498 * ira.c: Include "dbgcnt.h".
5499 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
5500 move_unallocated_pseudos): New static functions.
5501 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
5502 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
5503 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
5504 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
5505 to the pseudos generated in find_moveable_pseudos.
5506 * Makefile.in (ira.o): Add $(DBGCNT_H).
5507
06a9142d 55082012-04-12 Richard Guenther <rguenther@suse.de>
5509
5510 PR tree-optimization/52943
5511 * tree-chrec.h (chrec_is_positive): Remove.
5512 * tree-scalar-evolution.c (chrec_is_positive): Move ...
5513 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
5514 Return false for a constant zero instead of negative.
5515 (analyze_siv_subscript_cst_affine): Handle zero difference
5516 in the initial condition explicitely.
5517
b0b097b4 55182012-04-12 Richard Guenther <rguenther@suse.de>
5519
5520 * tree-parloops.c (parallelize_loops): Also consult the upper
5521 bound for the number of iterations.
5522 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
5523 (loop_prefetch_arrays): Likewise.
5524
fee017b3 55252012-04-12 Richard Guenther <rguenther@suse.de>
5526
5527 * cfgloop.h (estimated_loop_iterations_int): Ditch
5528 'conservative' parameter.
5529 (max_stmt_executions_int): Likewise.
5530 (estimated_loop_iterations): Likewise.
5531 (max_stmt_executions): Likewise.
5532 (max_loop_iterations): Declare.
5533 (max_loop_iterations_int): Likewise.
5534 (estimated_stmt_executions): Likewise.
5535 (estimated_stmt_executions_int): Likewise.
5536 * tree-ssa-loop-niter.c (estimated_loop_iterations):
5537 Split parts to ...
5538 (max_loop_iterations): ... this.
5539 (estimated_loop_iterations_int): Split parts to ...
5540 (max_loop_iterations_int): ... this.
5541 (max_stmt_executions_int): Split parts to ...
5542 (estimated_stmt_executions_int): ... this.
5543 (max_stmt_executions): Split parts to ...
5544 (estimated_stmt_executions): ... this.
5545 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
5546 * predict.c (predict_loops): Likewise.
5547 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
5548 (analyze_siv_subscript_cst_affine): Likewise.
5549 (compute_overlap_steps_for_affine_1_2): Likewise.
5550 (analyze_subscript_affine_affine): Likewise.
5551 (init_omega_for_ddr_1): Likewise.
5552 * tree-parloops.c (parallelize_loops): Likewise.
5553 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5554 (may_eliminate_iv): Likewise.
5555 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
5556 (loop_prefetch_arrays): Likewise.
5557 * tree-vrp.c (adjust_range_with_scev): Likewise.
5558
c3583c9c 55592012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
5560
5561 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
5562 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
5563 Fix line width.
5564 (dump_table): Use bool type for need_align and have_df variables.
5565 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
5566 (regs_used): Remove register modifier.
5567 (barrier_align): Move variables slot, credit, jump_to_next
5568 into if block above for loop. Use bool type for jump_to_next.
5569 (sh_function_arg): Use NULL_RTX instead of 0.
5570
886bfde4 55712012-04-11 Andreas Schwab <schwab@linux-m68k.org>
5572
5573 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
5574 (bswapsi2): New expander.
5575
7a1c6e92 55762012-04-11 H.J. Lu <hongjiu.lu@intel.com>
5577
5578 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
5579 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
5580
e623c80a 55812012-04-11 H.J. Lu <hongjiu.lu@intel.com>
5582
5583 PR rtl-optimization/52876
5584 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
ed13de71 5585 Don't call mark_reg_pointer for incompatible pointer sign extension.
e623c80a 5586
886bfde4 5587 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
e623c80a 5588 directly.
5589
51dbf409 55902012-04-11 Bernd Schmidt <bernds@codesourcery.com>
5591
5592 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
5593 comparisons against TYPE_PRECISION.
5594 * tree-ssa-forwprop.c (combine_conversions): Likewise.
5595
65082f57 55962012-04-11 Xinliang David Li <davidxl@google.com>
5597
5598 * tree-passes.h: Remove TODO_dump_func.
5599 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
5600 * trans-mem.c: Remove TODO_dump_func.
5601 * ira.c: Remove TODO_dump_func.
5602
78474516 56032012-04-11 H.J. Lu <hongjiu.lu@intel.com>
5604
5605 * config/i386/i386.c (ix86_option_override_internal): Check
5606 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
5607 after TARGET_64BIT is updated.
5608
d498e090 56092012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
5610
5611 * config/sh/sh.h: Remove old secondary reload code.
5612
855d5778 56132012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
5614
5615 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
5616 (ready_reorder): ... this function.
5617
c486a06e 56182012-04-11 Bernd Schmidt <bernds@codesourcery.com>
5619
5620 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
5621 sched_init calls.
5622
ca5e50e4 5623 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
5624 insns so that no other insn is queued for a time before them.
5625
6b87239a 5626 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
5627 unknown.
5628
08754147 56292012-04-11 Richard Guenther <rguenther@suse.de>
5630
5631 PR middle-end/52621
5632 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
5633 consider loop nesting.
5634 (evolution_function_is_univariate_p): Properly check the remainder
5635 for chrecs.
5636
a4575f9d 56372012-04-11 Richard Guenther <rguenther@suse.de>
5638
5639 PR middle-end/52918
8da8a06b 5640 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
a4575f9d 5641
e4858e6a 56422012-04-11 Nick Clifton <nickc@redhat.com>
5643
5644 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
5645 information, if requested.
5646
ecfbd70a 5647 * config/rx/rx.c (rx_expand_prologue): Likewise.
5648
0a98b6d9 56492012-04-11 Peter Bergner <bergner@vnet.ibm.com>
5650 Michael Matz <matz@suse.de>
5651
5652 PR target/16458
5653 * rtlanal.c (unsigned_reg_p): New function.
5654 Update copyright notice dates.
5655 * rtl.h (unsigned_reg_p): Prototype it.
5656 Update copyright notice dates.
5657 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
5658 Update comment.
5659 * expr.c (expand_expr_real_1): Set register attributes.
5660 * stmt.c (expand_case): Likewise.
5661
51bc6b40 56622012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
5663
5664 PR target/50751
5665 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
5666 consider_sh2a and allow_zero.
5667 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
5668 (disp_addr_displacement): New function.
5669 (sh_address_cost): Use disp_addr_displacement function instead
5670 of DISP_ADDR_OFFSET.
5671 (sh_legitimate_address_p): Adapt to changed
5672 sh_legitimate_index_p declaration.
5673 (sh_find_mov_disp_adjust): Remove HImode check.
5674 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
5675 disp_addr_displacement and max_mov_insn_displacement.
5676 (max_mov_insn_displacement): Remove HImode check.
e4858e6a 5677 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
51bc6b40 5678 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
5679 * config/sh/constraints.md (K05, K13): New constraints.
5680 (K12): Correct comment.
5681 (Sdd): Do not use DISP_ADDR_P macro.
5682 (Snd, Sbw): Use satisfies_constraint_Sdd.
5683 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
5684 (*extendhisi2_compact, movhi_i): Remove.
5685 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
5686 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
5687 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
5688 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
5689 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
5690 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
5691 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
5692 CONST_OK_FOR_Kxx.
5693 Add new peepholes for HImode displacement addressing.
5694
3dad52b6 56952012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
5696
5697 * config/sh/sh.h (SIDI_OFF): Remove.
5698 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
5699 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
5700 or operand_subword.
5701
74bdbe96 57022012-04-11 Eric Botcazou <ebotcazou@adacore.com>
5703
5704 PR target/52624
5705 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
5706 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
5707 * doc/md.texi (Standard Names): Add bswap.
5708 * builtin-types.def (BT_UINT16): New primitive type.
5709 (BT_FN_UINT16_UINT16): New function type.
5710 * builtins.def (BUILT_IN_BSWAP16): New.
5711 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
5712 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
5713 expand_builtin_bswap.
5714 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
5715 (fold_builtin_1): Likewise.
5716 (is_inexpensive_builtin): Likewise.
5717 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
5718 missing bits for bswap to libcall code.
5719 * tree.c (build_common_tree_nodes): Build uint16_type_node.
5720 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
5721 (uint16_type_node): New define.
5722 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
5723 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
5724 above builtin.
5725 (rs6000_init_builtins): Likewise.
5726 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
5727
669b0b52 57282012-04-11 Tristan Gingold <gingold@adacore.com>
5729
5730 * doc/extend.texi (Type Attributes): Move paragraph.
5731
5a983084 57322012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
5733
5734 PR 24985
886bfde4 5735 * diagnostic.h (show_caret): Declare.
5a983084 5736 (caret_max_width): Declare.
5737 (diagnostic_show_locus): Declare.
886bfde4 5738 * diagnostic.c (diagnostic_initialize): Initialize to false.
5739 (diagnostic_show_locus): New.
5740 (diagnostic_report_diagnostic): Call it.
5a983084 5741 (getenv_columns): New.
5742 (adjust_line): New.
5743 (diagnostic_set_caret_max_width): New.
886bfde4 5744 * input.c (read_line): New.
5a983084 5745 (location_get_source_line): New.
886bfde4 5746 * input.h (location_get_source_line): Declare.
5747 * toplev.c (general_init): Initialize show_caret from options.
5748 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
5749 * opts.c (common_handle_option): Likewise.
5a983084 5750 * pretty-print.h (pp_get_prefix): New.
5751 (pp_base_get_prefix): New.
886bfde4 5752 * common.opt (fdiagnostics-show-caret): New option.
5a983084 5753 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
5754
980af7e0 57552012-04-11 Richard Guenther <rguenther@suse.de>
5756
5757 PR rtl-optimization/52881
5758 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
5759
d906930c 57602012-04-11 Richard Guenther <rguenther@suse.de>
5761
5762 PR tree-optimization/52912
5763 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
5764 manipulation code we are threading through a loop header
5765 to an exit destination.
5766
3d177e8c 57672012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
5768
5769 * tree.h (warn_if_unused_value): Move declaration from here.
5770 * stmt.c (warn_if_unused_value): Move definition from here.
5771
ee612634 57722010-04-10 Michael Matz <matz@suse.de>
5773
5774 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
5775 grouped_stores.
5776 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
5777 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
5778 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
5779 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
5780 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
5781 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
5782 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
5783 (vect_record_strided_load_vectors): Rename to
5784 vect_record_grouped_load_vectors.
5785 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
5786 Rename use of above macros.
5787 (vect_verify_datarefs_alignment): Ditto.
5788 (vector_alignment_reachable_p): Ditto.
5789 (vect_peeling_hash_get_lowest_cost): Ditto.
5790 (vect_enhance_data_refs_alignment): Ditto.
5791 (vect_analyze_group_access): Ditto and rename stride to groupsize.
5792 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
5793 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
5794 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
5795 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
5796 (vect_record_strided_load_vectors): Rename to
5797 vect_record_grouped_load_vectors.
5798 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
5799 (destroy_loop_vec_info): Ditto.
5800 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
5801 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
5802 (vect_analyze_slp): Ditto.
5803 (new_bb_vec_info): Ditto.
5804 (destroy_bb_vec_info): Ditto.
5805 (vect_schedule_slp_instance): Ditto and rename strided_store to
5806 grouped_store.
5807 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
5808 vect_cost_group_size.
5809 (vect_model_store_cost): Rename use of above macros and call
5810 to vect_cost_strided_group_size.
5811 (vect_model_load_cost): Ditto.
5812 (vectorizable_store): Ditto, rename strided_store to grouped_store
5813 and calls to renamed tree-vectorizer.h functions.
5814 (vectorizable_load): Ditto.
5815 (vect_transform_stmt): Rename use of above macros and strided_store
5816 to grouped_store.
5817
b6c89d32 58182012-04-10 Jan Hubicka <jh@suse.cz>
5819
5820 * cgraph.h: Remove misledaing comment on ipa-ref.h.
5821 (symtab_type): New enum.
5822 (symtab_node): New structure.
5823 (cgraph_node, varpool_node): Add symbol base type.
5824 (cgraph, varpool): New accestor functions.
5825 * cgraph.c (cgraph_create_node_1): Set symbol type.
5826 * varpool.c (varpool_node): Set symbol type.
5827
03ad17bf 58282012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
5829 Richard Sandiford <rdsandiford@googlemail.com>
5830
5831 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
5832
0b06d494 58332012-04-10 Richard Guenther <rguenther@suse.de>
5834
5835 PR middle-end/52888
5836 * gimple-low.c (gimple_check_call_args): Properly account for
5837 compatible aggregate types.
5838
941366fd 58392012-04-10 Richard Guenther <rguenther@suse.de>
5840
5841 * toplev.h (tree_rest_of_compilation): Remove.
5842 * tree-optimize.c (tree_rest_of_compilation): Likewise.
5843 * cgraph.h (tree_rest_of_compilation): Declare.
5844 * tree-optimize.c (tree_rest_of_compilation): Move ...
5845 * cgraphunit.c (tree_rest_of_compilation): ... here.
5846 * cgraph.c (cgraph_add_new_function): Adjust.
5847 * Makefile.in (tree-optimize.o): Adjust.
5848 (cgraphunit.o): Likewise.
5849
e9b545c7 58502012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
5851
5852 PR tree-optimization/52870
5853 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
5854 presumed pattern statement is within the same loop or basic block.
5855
ee0af6e0 58562012-04-10 Tristan Gingold <gingold@adacore.com>
5857
5858 * gengtype.c (main): Make uintptr_t a known type.
5859
47199071 58602012-04-10 Richard Guenther <rguenther@suse.de>
5861
5862 * tree-pass.h (tree_lowering_passes): Remove.
5863 * tree-optimize.c (tree_lowering_passes): Remove.
5864 * cgraph.c (cgraph_add_new_function): Inline relevant parts
8da8a06b 5865 of tree_lowering_passes, avoid redundant call of early local passes.
47199071 5866 * cgraphunit.c (cgraph_lower_function): Fold into ...
5867 (cgraph_analyze_function): ... its single caller. Inline
5868 relevant parts of tree_lowering_passes.
5869
69116fc2 58702012-04-09 H.J. Lu <hongjiu.lu@intel.com>
5871
5872 PR other/52777
5873 * config/pa/pa.opt: Remove SIO and GNU_LD.
5874
7c067609 58752012-04-09 Jan Hubicka <jh@suse.cz>
5876
5877 PR lto/52722
5878 PR lto/51765
886bfde4 5879 PR lto/52634
8da8a06b 5880 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
5881 boundary, add its target too.
7c067609 5882 * lto.c (add_references_to_partition): Add also aliased nodes.
5883 (add_cgraph_node_to_partition,
5884 add_varpool_node_to_partition): Work on nodes, not functions/variables;
5885 when adding alias, add also the aliased object.
5886
259ad1be 58872012-04-09 Uros Bizjak <ubizjak@gmail.com>
5888
5889 PR target/52883
5890 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
5891 VOIDmode immediate operands.
5892 * config/i386/constraints.md (Wz): New constraint.
5893 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
5894
a1bec0b4 58952012-04-09 Eric Botcazou <ebotcazou@adacore.com>
5896
5897 PR target/52717
5898 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
5899 the DECL generated for the special GOT helper.
5900
15f60366 59012012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
5902
5903 * config/sh/constraints.md: Update list of constraints in
5904 comment block.
5905 (Sr0): Remove unused memory constraint.
5906
24a470ff 59072012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
5908
5909 * tree-pretty-print.h: Update comment.
5910
afb109dd 59112012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
5912
497f6450 5913 * config/sh/sh.md: Use braced string notation where applicable.
5914 (*prefetch_i4, prefetch_m2a): Merge into ...
afb109dd 5915 (*prefetch): ... this new insn.
5916
278fc7da 59172012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
5918
5919 * config/sh/sh.h (high_life_started): Remove
5920 * config/sh/predicates.md (general_movdst_operand): Use
5921 'reload_in_progress' instead of 'high_life_started'.
5922 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
5923 divsi_inv_fp): Likewise.
5924
7141d4fc 59252012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
5926
5927 * config/sh/sh-protos.h (prepare_move_operands): Return void
5928 instead of int.
5929 * config/sh/sh.c (prepare_move_operands): Likewise.
5930 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
5931
fb4fa5d7 59322012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
5933
5934 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
5935 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
5936 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
5937 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
5938 commutative_float_operator, noncommutative_float_operator,
5939 sh_handle_pragma): Remove.
5940
b8829713 59412012-04-06 Sandra Loosemore <sandra@codesourcery.com>
5942
5943 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
5944 Use @option markup on command-line options. Use @samp markup on
5945 literal keywords to options. Use @code markup on code fragments.
5946 Use other markup in preference to quotation marks in the text.
5947 Add markup to some passages without any.
5948
03231f32 59492012-04-06 Mike Stump <mikestump@comcast.net>
5950
5951 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
5952
e75e7428 59532012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
5954
5955 * config/sh/sh.c (hi_const): Remove.
5956 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
5957 of hi_const.
5958
9db04979 59592012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
5960
5961 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
5962 to bool.
5963 * config/sh/sh.c (sh_expand_t_scc): Likewise.
5964 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
5965 calling sh_expand_t_scc.
5966
a3b1178e 59672012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
5968
5969 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
5970 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
5971 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
5972 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
5973 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
5974 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
5975 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
5976 sh2a_is_function_vector_call): Use bool as return type.
5977 (sh_pass_in_reg_p): Remove.
5978 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
5979 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
5980 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
5981 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
5982 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
5983 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
5984 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
259ad1be 5985 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
a3b1178e 5986 sh_loads_bankedreg_p): Use bool as return type.
5987 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
5988 'register' modifier.
5989
f97942ad 59902012-04-06 Matt Turner <mattst88@gmail.com>
5991
5992 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
5993
2688e10b 59942012-04-06 Eric Botcazou <ebotcazou@adacore.com>
5995
5996 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
5997 of the destination isn't also a FP_REGS register.
5998
ce559b32 59992012-04-05 Teresa Johnson <tejohnson@google.com>
6000 H.J. Lu <hongjiu.lu@intel.com>
6001
8da8a06b 6002 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
ce559b32 6003 * config/i386/i386.md (move immediate to memory peephole2):
6004 Add cases for HImode move when LCP stall avoidance is needed.
6005 * config/i386/i386.c (initial_ix86_tune_features): Initialize
6006 X86_TUNE_LCP_STALL entry.
6007
2473490d 60082012-04-05 Uros Bizjak <ubizjak@gmail.com>
6009
6010 PR target/52882
6011 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
6012 CONST_INT operands, zero-extended with AND.
6013
00868707 60142012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
6015
6016 PR target/50751
6017 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
6018 first argument instead of mode size. Move displacement calculations
6019 to ...
2473490d 6020 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
00868707 6021 ... these new functions.
6022 (disp_adjust): Remove max_mov_disp field.
6023 (sh_legitimate_index_p): Use max_mov_insn_displacement and
6024 mov_insn_alignment_mask.
6025 (sh_address_cost): Use max_mov_insn_displacement.
6026
10efb95f 60272012-04-05 Andrew Stubbs <ams@codesourcery.com>
6028
6029 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
6030 (arch_enabled): Handle new arch types.
6031 (one_cmpldi2): Add NEON support.
6032
183e96b6 60332012-04-05 Richard Guenther <rguenther@suse.de>
6034
6035 * gimple.c (walk_gimple_op): Compute val_only for the LHS
6036 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
6037 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
6038 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
6039 ... here and make static.
6040 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
6041 Remove.
6042
10792deb 60432012-04-05 Richard Guenther <rguenther@suse.de>
6044
6045 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
6046 basic-block before removing it.
6047
f901fae2 60482012-04-05 Richard Guenther <rguenther@suse.de>
6049
6050 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
6051 version namespace as we release the freelist.
6052
bc8a8451 60532012-04-05 Richard Guenther <rguenther@suse.de>
6054
6055 * tree-nrv.c (tree_nrv): Release VDEFs.
6056 * tree-sra.c (sra_modify_constructor_assign): Likewise.
6057 (sra_modify_assign): Likewise.
6058 * tree-vect-stmts.c (vect_remove_stores): Likewise.
6059 * tree-vect-loop.c (vect_transform_loop): Likewise.
6060 * tree-ssa-dom.c (optimize_stmt): Likewise.
6061 * tree-vect-slp.c (vect_schedule_slp): Likewise.
6062 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
6063
13ff78a4 60642012-04-05 Richard Guenther <rguenther@suse.de>
6065
6066 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
6067 cleanup.
6068 * gimple.h (gsi_remove): Adjust.
6069 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
6070 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
6071 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
6072 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
6073 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
6074 * tree-ssa-pre.c (eliminate): Likewise.
6075
db20fb47 60762012-04-04 Mike Stump <mikestump@comcast.net>
6077
6078 * doc/rtl.texi (const_double): Document as sign-extending.
8da8a06b 6079 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
db20fb47 6080 * emit-rtl.c (immed_double_int_const): Refine to state the
6081 value is signed.
6082 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
6083 CONST_DOUBLE integers.
6084 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
6085 negative values are converted. Fix conversions bigger than
6086 HOST_BITS_PER_WIDE_INT.
8da8a06b 6087 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
db20fb47 6088 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
6089 * explow.c (plus_constant_mode): Add.
6090 (plus_constant): Implement with plus_constant_mode.
6091 * rtl.h (plus_constant_mode): Add.
6092
f889f544 60932012-04-04 Richard Guenther <rguenther@suse.de>
6094
6095 PR tree-optimization/52808
8da8a06b 6096 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
f889f544 6097 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
6098
450c6e32 60992012-04-04 Tristan Gingold <gingold@adacore.com>
6100
6101 * expr.c (expand_expr_real_2): Handle larger sizetype in
6102 POINTER_PLUS_EXPR.
6103
98fb5f75 61042012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
6105
6106 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
6107 to m2a-single instead of m2e.
6108
3cef948a 61092012-04-03 Eric Botcazou <ebotcazou@adacore.com>
6110
6111 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
6112 Change type of BITOFFSET to signed. Make sure the lower bound of
6113 the computed range is non-negative by adjusting OFFSET and BITPOS.
6114 (expand_assignment): Adjust call to get_bit_range.
6115
d3677aa8 61162012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
6117
6118 * h8300/h8300.c (h8300_current_function_monitor_function_p):
886bfde4 6119 New function. Added to check monitor functions.
6120 (h8300_option_override): Modified to generate error/warning
6121 messages for invalid combinations of different command line
d3677aa8 6122 options.
6123 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
886bfde4 6124 save EXR on stack for monitor function in case of H8S target
d3677aa8 6125 when "-mno-exr" is passed.
8da8a06b 6126 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
6127 Add prototype.
d3677aa8 6128 * doc/invoke.texi: Document H8S options.
6129
749dea2a 61302012-04-03 Tristan Gingold <gingold@adacore.com>
6131
6132 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
6133 of gcc_AC_FUNC_MMAP_BLACKLIST.
6134 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
6135 * Makefile.in (aclocal_deps): Add mmap.m4.
6136 * configure: Regenerate.
6137 * aclocal.m4: Regenerate.
6138
35c67c83 61392012-04-03 Richard Guenther <rguenther@suse.de>
6140
6141 PR tree-optimization/52808
6142 * tracer.c (tail_duplicate): Return whether we have duplicated
6143 any block.
6144 (tracer): If we have duplicated any block, cleanup the CFG.
6145 * cfghooks.c (duplicate_block): If we duplicated a loop
6146 header but not its loop, destroy the loop because it now has
6147 multiple entries.
6148 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
6149 the cfg manipulation routines we are not creating a multiple
6150 entry loop.
6151
bc05341c 61522012-04-03 Tristan Gingold <gingold@adacore.com>
6153
6154 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
6155 'byte' alignment.
6156 (vms_c_common_override_options): Allow parameterless variadic
6157 functions.
6158
96758487 61592012-04-03 Jakub Jelinek <jakub@redhat.com>
6160
6161 PR tree-optimization/52835
6162 * tree-data-ref.c (build_rdg): Return NULL if
6163 compute_data_dependences_for_loop failed.
6164
766b6590 61652012-04-03 Eric Botcazou <ebotcazou@adacore.com>
6166
6167 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
6168 for REAL_CST as well.
6169 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
6170 In the bitfield case, if the value is a REAL_CST, convert it first to
6171 an INTEGER_CST.
6172
6fa78bde 61732012-04-02 H.J. Lu <hongjiu.lu@intel.com>
6174
6175 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
6176 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
6177 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
6178
6179 * config/i386/biarchx32.h: New.
6180
ffdb0b2d 61812012-04-02 Anatoly Sokolov <aesok@post.ru>
6182
6183 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
6184 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6185 (arm_preferred_reload_class): New function.
6186
6eb99d8a 61872012-04-02 Richard Guenther <rguenther@suse.de>
6188
6189 PR tree-optimization/52756
6190 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
6191 (thread_through_loop_header): After threading through the loop latch
6192 remove the split part from the loop and clear further threading
6193 opportunities that would create a multiple entry loop.
6194
ec3167d1 61952012-04-02 Richard Guenther <rguenther@suse.de>
6196
6197 PR rtl-optimization/52800
6198 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
6199 CLEANUP_CFG_CHANGED.
6200
759626e6 62012012-04-02 Richard Guenther <rguenther@suse.de>
6202
6203 PR middle-end/52803
6204 * loop-init.c (gate_handle_loop2): Destroy loops here if
6205 we don't enter RTL loop optimizers.
6206
8bbbe2b5 62072012-04-02 Uros Bizjak <ubizjak@gmail.com>
6208
6209 Partially revert:
6210 2012-03-29 Richard Guenther <rguenther@suse.de>
6211
6212 * rtl.h (extended_count): Remove.
6213 * combine.c (extended_count): Remove.
6214
6b1f0797 62152012-04-02 Dodji Seketeli <dodji@redhat.com>
6216
6217 PR c++/40942
6218 * pt.c (more_specialized_fn): Don't apply decay conversion to
6219 types of function parameters.
6220
337c992b 62212012-04-02 Tristan Gingold <gingold@adacore.com>
6222
6223 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
6224 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
6225 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
6226 (ggc_pch_this_base): Use uintptr_t instead of size_t.
6227
f4b5bb69 62282012-03-31 H.J. Lu <hongjiu.lu@intel.com>
6229
6230 PR bootstrap/52784
6231 * config/i386/i386.c (ix86_option_override_internal): Don't
6232 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
6233
822dbdbc 62342012-03-31 Eric Botcazou <ebotcazou@adacore.com>
6235
6236 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
6237 (stmt_can_make_abnormal_goto): Use it.
6238 (is_ctrl_altering_stmt): Likewise.
6239
5a333029 62402012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
6241 Kaz Kojima <kkojima@gcc.gnu.org>
6242
6243 * config/sh/sh.c (push_regs): Skip banked registers when
6244 resbank attribute is specified.
6245 (sh_expand_epilogue): Likewise.
6246
1249885e 62472012-03-30 Richard Henderson <rth@redhat.com>
6248
6249 PR debug/52727
6250 * combine-stack-adj.c (prev_active_insn_bb): New.
6251 (next_active_insn_bb): New.
6252 (force_move_args_size_note): New.
6253 (combine_stack_adjustments_for_block): Use it.
6254
8ae0b70d 62552012-03-30 Richard Henderson <rth@redhat.com>
6256
6257 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
6258 (ix86_expand_vector_init_duplicate): Initialize it.
6259 (expand_vec_perm_palignr): Likewise.
6260 (ix86_expand_vec_perm_const): Likewise.
6261 (ix86_vectorize_vec_perm_const_ok): Likewise.
6262 (expand_vec_perm_blend): Use it.
6263 (expand_vec_perm_vpermil): Likewise.
6264 (expand_vec_perm_pshufb): Likewise.
6265 (expand_vec_perm_1): Likewise.
6266 (expand_vec_perm_pshuflw_pshufhw): Likewise.
6267 (expand_vec_perm_interleave2): Likewise.
6268 (expand_vec_perm_vpermq_perm_1): Likewise.
6269 (expand_vec_perm_vperm2f128): Likewise.
6270 (expand_vec_perm_interleave3): Likewise.
6271 (expand_vec_perm_vperm2f128_vblend): Likewise.
6272 (expand_vec_perm_vpshufb2_vpermq): Likewise.
6273 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
6274 (expand_vec_perm_broadcast): Likewise.
6275 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
6276
1e5105ae 62772012-03-30 Richard Henderson <rth@redhat.com>
6278
6279 * dwarf2out.c (gen_variable_die): Initialize off.
6280
b26acc64 62812012-03-30 Tristan Gingold <gingold@adacore.com>
6282
6283 * config/vms/vms-f.c: New file.
6284 * config/vms/t-vms (vms-f.o): New rule.
6285 * config.gcc (*-*-*vms*): Define fortran_target_objs.
6286
b97e39a0 62872012-03-30 Richard Guenther <rguenther@suse.de>
6288
6289 PR tree-optimization/52754
6290 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
6291 propagate arbitrary addresses into really plain dereferences.
6292
99cc6bba 62932012-03-30 Richard Guenther <rguenther@suse.de>
6294
6295 PR middle-end/52772
6296 * except.c (emit_to_new_bb_before): Move loop updating ...
6297 (dw2_build_landing_pads): ... here. Use a proper block for
6298 querying the loop father.
6299
3cab3251 63002012-03-30 Tristan Gingold <gingold@adacore.com>
6301
6302 * config/ia64/ia64.c (ia64_section_type_flags): Remove
6303 common_object attribute handling.
6304 (SECTION_VMS_OVERLAY): Remove
6305 (ia64_vms_common_object_attribute): Replace abort with an assert.
6306 Do not set DECL_SECTION_NAME.
6307 (ia64_vms_output_aligned_decl_common): Handle common_object
6308 attribute.
6309 (ia64_vms_elf_asm_named_section): Remove.
6310 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
6311
24a49f00 63122012-03-30 Richard Guenther <rguenther@suse.de>
6313
6314 PR middle-end/52786
6315 * double-int.c (rshift_double): Remove not needed cast.
6316
d129ada0 63172012-03-30 Richard Guenther <rguenther@suse.de>
6318
6319 * tree-affine.h (print_aff): Remove.
6320 * tree-affine.c (print_aff): Make static.
6321 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
6322 (get_references_in_stmt): Likewise.
6323 (print_direction_vector): Likewise.
6324 (print_dir_vectors): Likewise.
6325 (print_dist_vectors): Likewise.
6326 (dump_subscript): Likewise.
6327 (dump_ddrs): Likewise.
6328 (dump_dist_dir_vectors): Likewise.
6329 (dump_data_references): Likewise.
6330 (dump_data_dependence_relation): Likewise.
6331 (dump_data_dependence_direction): Likewise.
6332 (dump_rdg_vertex): Likewise.
6333 (dump_rdg_component): Likewise.
6334 (debug_ddrs): Declare.
6335 (struct data_ref_loc_d): Move ...
6336 * tree-data-ref.c (struct data_ref_loc_d): ... here.
6337 (get_references_in_stmt): Make static.
6338 (dump_data_references): Likewise.
6339 (dump_subscript): Likewise.
6340 (print_direction_vector): Likewise.
6341 (print_dir_vectors): Likewise.
6342 (print_dist_vectors): Likewise.
6343 (dump_data_dependence_relation): Likewise.
6344 (dump_dist_dir_vectors): Likewise.
6345 (dump_ddrs): Likewise.
6346 (dump_rdg_vertex): Likewise.
6347 (dump_rdg_component): Likewise.
6348 (debug_ddrs): New function.
6349 (access_matrix_get_index_for_parameter): Remove.
6350
bbced055 63512012-03-30 Tristan Gingold <gingold@adacore.com>
6352
6353 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
6354 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
6355 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
6356 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
6357 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
6358 (vms_patch_builtins): Handle new flags
6359 * config/vms/vms-crtlmap.map: Completed using nm on
6360 c and math system libraries.
6361 * config/vms/make-crtlmap.awk: Handle any number of flags.
6362
1543f720 63632012-03-30 Martin Jambor <mjambor@suse.cz>
6364
6365 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
6366 is a builtin_stack_save in a dominating BB.
6367
80f058cd 63682012-03-29 Uros Bizjak <ubizjak@gmail.com>
6369
6370 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
6371 crossing 128bit lane boundary.
6372
385bfbc6 63732012-03-29 Vladimir Makarov <vmakarov@redhat.com>
6374
6375 * ira-color.c (setup_left_conflict_sizes_p): Process all
6376 conflicting objects.
6377
aa17a496 63782012-03-29 Jakub Jelinek <jakub@redhat.com>
6379
6380 PR tree-optimization/52760
6381 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
6382 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
6383
d2bb3f9d 63842012-03-29 Richard Guenther <rguenther@suse.de>
6385
6386 * cgraph.h (cgraph_materialize_all_clones): Remove.
6387 (reset_inline_failed): Likewise.
6388 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
6389 * cgraphbuild.c (reset_inline_failed): Remove.
6390 * rtl.h (cse_main): Remove.
6391 (extended_count): Likewise.
6392 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
6393 (cse_main): Make static.
6394 * combine.c (extended_count): Remove.
6395 (dump_combine_stats): Mark as DEBUG_FUNCTION.
6396 * basic-block.h (reorder_basic_blocks): Remove.
6397 * bb-reorder.c (reorder_basic_blocks): Make static.
6398 * Makefile.in (dse.o): Remove dse.h dependency.
6399 * dse.h: Remove.
6400 * dse.c (gate_dse): Remove.
6401 (clear_alias_mode_eq): Likewise.
6402 (clear_alias_mode_hash): Likewise.
6403 (dse_record_singleton_alias_set): Likewise.
6404 (dse_invalidate_singleton_alias_set): Likewise.
6405
c0dc946a 64062012-03-29 H.J. Lu <hongjiu.lu@intel.com>
6407
6408 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
6409 crtbegin_so%O%s for -shared.
6410 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
6411
54879eec 64122012-03-29 Richard Guenther <rguenther@suse.de>
6413
6414 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
6415 (add_to_value): Remove.
6416 (print_value_expressions): Likewise.
6417 * tree-ssa-pre.c (add_to_value): Make static.
6418 (print_value_expressions): Likewise.
6419 * gimple.h (gimple_adjust_this_by_delta): Remove.
6420 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
6421
e058414d 64222012-03-29 Richard Guenther <rguenther@suse.de>
6423
6424 PR middle-end/50708
6425 * double-int.h (rshift_double): Remove.
4e0c0c52 6426 * double-int.c (lshift_double): Use absu_hwi to make count positive.
e058414d 6427 (rshift_double): Make static, take unsigned count argument,
6428 remove handling of negative count argument.
6429 (double_int_rshift): Dispatch to lshift_double.
6430
bac6f1f6 64312012-03-28 H.J. Lu <hongjiu.lu@intel.com>
6432
6433 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
6434 OPTION_MASK_ABI_64.
6435
6436 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
6437 (SPEC_X32): Likewise.
6438 (MULTILIB_DEFAULTS): Likewise.
6439
6440 * config/i386/i386.c (isa_opts): Remove -m64.
6441 (ix86_target_string): Properly handle -m32/-m64/-mx32.
6442 (ix86_option_override_internal): Properly
6443 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
6444 handle -m32, -m64 and -mx32.
6445
6446 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
6447 with OPTION_ABI_X32. Moved after TARGET_LP64.
6448 (TARGET_LP64): Changed to OPTION_ABI_64.
6449
6450 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
6451 (mx32): Replace ISA_X32 with ABI_X32.
6452
b257ad5f 64532012-03-28 Eric Botcazou <ebotcazou@adacore.com>
6454
6455 * tree.c (tree_size) <VECTOR_CST>: New case.
6456
df6b3006 64572012-03-28 Uros Bizjak <ubizjak@gmail.com>
6458
6459 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
6460 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
6461
891f5177 64622012-03-28 Jakub Jelinek <jakub@redhat.com>
6463
e7ed5dd7 6464 PR middle-end/52691
6465 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
6466 __builtin_va_start to __builtin_next_arg if the latter is
6467 builtin_decl_explicit_p rather than when it is not.
6468
891f5177 6469 PR middle-end/52750
6470 * tree-vect-generic.c (vector_element): Perform multiplication
6471 for pos in bitsizetype type instead of idx type.
6472
79f958cb 64732012-03-28 Richard Guenther <rguenther@suse.de>
6474
6475 * loop-init.c (loop_optimizer_init): If loops are preserved
6476 perform incremental initialization of required loop features.
6477 (loop_optimizer_finalize): If loops are to be preserved only
6478 clean up optional loop features.
6479 (rtl_loop_done): Forcefully free loops here.
df6b3006 6480 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
79f958cb 6481 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
6482 to existing loops.
6483 (construct_init_block): Likewise.
6484 (construct_exit_block): Likewise.
6485 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
6486 the CFG after expanding.
df6b3006 6487 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
6488 If we needed to calculate them, free them afterwards.
79f958cb 6489 * tree-pass.h (PROP_loops): New define.
6490 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
6491 * basic-block.h (CLEANUP_CFG_CHANGED): New.
6492 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
df6b3006 6493 (cleanup_cfg): If we did something and have loops around, fix them up.
79f958cb 6494 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
6495 with CLEANUP_CFG_CHANGED.
6496 * cfghooks.c (merge_blocks): If we merge a loop header into
6497 its predecessor, update the loop structure.
6498 (duplicate_block): If we copy a loop latch, adjust loop state
6499 to note we may have multiple latches.
6500 (delete_basic_block): Mark loops for fixup if we remove a loop.
6501 * cfganal.c (forwarder_block_p): Protect loop latches, headers
6502 and preheaders.
6503 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
6504 (cfg_layout_can_merge_blocks_p): Likewise.
6505 * cprop.c (bypass_block): If we create a loop with multiple
6506 entries, mark it for removal.
6507 * except.c (emit_to_new_bb_before): Add the new basic-block
6508 to existing loops.
6509 * tree-eh.c (lower_resx): Likewise.
6510 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
6511 (expand_omp_taskreg): Likewise.
6512 * tree-inline.c (initialize_cfun): Likewise.
6513 * tree-mudflap.c (add_bb_to_loop): Prototype.
6514 (mf_build_check_statement_for): Properly add new basic-blocks
6515 to existing loops.
6516 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
6517 if we remove a loop.
6518 (thread_through_loop_header): Likewise.
6519 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
6520 new basic-blocks to existing loops.
6521 (expand_transaction): Likewise.
6522 * Makefile.in (except.o): Add $(CFGLOOP_H).
6523 (expr.o): Likewise.
6524 (cgraph.o): Likewise.
6525 (cprop.o): Likewise.
6526 (cfgexpand.o): Likewise.
6527 (cfganal.o): Likewise.
6528 (trans-mem.o): Likewise.
6529 (tree-eh.o): Likewise.
6530
58cf0091 65312012-03-28 Georg-Johann Lay <avr@gjlay.de>
6532
6533 PR target/52692
6534 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
6535 (avr_builtin_decl): New static function.
6536 (struct avr_builtin_description, avr_bdesc): Move up.
6537 Add GTY marker. Add field fndecl. Remove redundant field id.
6538 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
6539 (avr_expand_builtin): Code cleanup because .id is removed.
6540
d32d7e3a 65412012-03-28 Georg-Johann Lay <avr@gjlay.de>
6542
6543 PR target/52737
6544 * config.gcc (tm_file): Remove avr/multilib.h.
6545
df6b3006 6546 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
d32d7e3a 6547
6548 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
6549 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
6550 * config/avr/t-avr: Remove generation of multilib.h.
6551 * config/avr/t-multilib: Regenerate.
6552 * config/avr/multilib.h: Remove.
6553 * config/avr/avr.opt (-msp8): New option.
6554 (avr_sp8): New variable.
6555 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
6556 * config/avr/avr.h (AVR_HAVE_SPH): New define.
6557 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
6558 (avr_device_to_sp8): New prototype.
6559 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
6560 (DRIVER_SELF_SPECS): New define.
6561 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
6562 __AVR_SP8__, __AVR_HAVE_SPH__.
6563 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
6564 AVR_HAVE_8BIT_SP to decide if SP_H is present.
6565 (avr_file_start): Ditto.
6566
9af8c7c5 65672012-03-28 Jakub Jelinek <jakub@redhat.com>
6568
6569 PR target/52736
6570 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
6571 instead of 8 in adjust_address.
6572
cefa4c33 65732012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
6574
6575 PR middle-end/51893
6576 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
6577 targets.
6578
fa9db843 65792012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
6580
6581 PR target/50751
6582 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
6583 Rearrange conditional logic. Move displacement address calculations
6584 to ...
6585 (sh_find_mov_disp_adjust): ... this new function.
6586
367d727c 65872012-03-27 H.J. Lu <hongjiu.lu@intel.com>
6588
6589 * config/arm/arm.opt (mapcs): Remove MaskExists.
6590 * config/cris/linux.opt (mno-gotplt): Likewise.
6591 * config/i386/i386.opt (mhard-float): Likewise.
6592 (msse4): Likewise.
6593 (mno-sse4): Likewise.
6594 * config/m68k/m68k.opt (mhard-float): Likewise.
6595 * config/mep/mep.op (mcop32): Likewise.
6596 * config/pa/pa-hpux.opt (msio): Likewise.
6597 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
6598 * config/picochip/picochip.opt (mlittle): Likewise.
6599 * config/sh/sh.opt (mrenesas): Likewise.
6600 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
6601 * config/sparc/sparc.opt (mhard-float): Likewise.
6602 * config/v850/v850.opt (mv850es): Likewise.
6603 * config/vax/vax.opt (mg-float): Likewise.
6604
49c38e93 66052012-03-27 Martin Jambor <mjambor@suse.cz>
6606
6607 PR middle-end/52693
6608 * tree-sra.c (sra_modify_assign): Do not call
6609 load_assign_lhs_subreplacements when working with an unscalarizable
6610 region.
6611
77c42bd4 66122012-03-27 Uros Bizjak <ubizjak@gmail.com>
6613
6614 PR target/52698
6615 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
6616 New prototype.
6617 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
6618 * config/i386/i386.c: Include reload.h.
6619 (ix86_legitimize_reload_address): New function.
6620
dbc6e347 66212012-03-27 H.J. Lu <hongjiu.lu@intel.com>
6622
6623 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
6624 hasn't been allocated. Define a target macro for Mask and
77c42bd4 6625 InverseMask if it hasn't been defined. Remove MaskExists handling.
dbc6e347 6626
0455e0da 6627 * doc/options.texi: Remove MaskExists.
dbc6e347 6628
6523974f 66292012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
6630
6631 PR target/52667
6632 * config/sh/sh.c (find_barrier): Add equality check of last_got
6633 to avoid going above orig insn. Update comments.
6634
902123ad 66352012-03-27 Richard Guenther <rguenther@suse.de>
6636
6637 PR middle-end/52720
6638 * fold-const.c (try_move_mult_to_index): Handle &x.array more
6639 explicitely.
6640
73041e9b 66412012-03-27 Eric Botcazou <ebotcazou@adacore.com>
6642
6643 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
6644 of a unit before computing the offset in units.
6645 * expr.c (get_bit_range): Return the null range if the enclosing record
6646 is part of a larger bit field.
6647
a2295d74 66482012-03-27 Tristan Gingold <gingold@adacore.com>
6649
6650 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
6651 * config/ia64/ia64.md: Remove mode in template.
6652 Sign extend operand in expand_simple_binop.
6653 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
6654 CASE_VECTOR_MODE instead of TARGET_ILP32.
6655 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
6656
43d744c8 66572012-03-26 Steven Bosscher <steven@gcc.gnu.org>
6658
6659 * varasm.c (assemble_external): #if 0 out the new assert from the
6660 previous commit, it breaks the Java and Go front ends.
6661
a723d770 66622012-03-26 Steven Bosscher <steven@gcc.gnu.org>
6663
ea259bbe 6664 * toplev.c (check_global_declaration_1): Do not call assemble_external.
6665 * expr.c (emit_block_move_libcall_fn): Likewise.
6666 (clear_storage_libcall_fn): Likewise.
6667 (expand_expr_addr_expr_1): Likewise.
6668 (expand_expr_real_1): Likewise.
6669 * calls.c (rtx_for_function_call): Likewise.
6670
a723d770 6671 * varasm.c (assemble_external): Assert this function is only called
6672 during or after expanding to RTL.
6673
7c2ed7d7 66742012-03-26 Martin Jambor <mjambor@suse.cz>
6675
6676 PR tree-optimization/50052
6677 * tree-sra.c (tree_non_aligned_mem_p): Removed.
6678 (tree_non_aligned_mem_for_access_p): Likewise.
6679 (build_accesses_from_assign): Removed strict alignment requirements
6680 checks.
6681 (access_precludes_ipa_sra_p): Likewise.
6682
58280b1f 66832012-03-26 Richard Guenther <rguenther@suse.de>
6684
6685 PR tree-optimization/52701
6686 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
6687 compute and set the evolution part of PHI nodes.
6688
a1dfcdd0 66892012-03-26 Richard Guenther <rguenther@suse.de>
6690
6691 PR tree-optimization/52721
6692 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
6693
1c928a0c 66942012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
6695
6696 PR tree-optimization/52686
6697 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
6698 WIDEN_LSHIFT_EXPR.
6699
784576c7 67002012-03-26 Tristan Gingold <gingold@adacore.com>
6701
6702 * config/alpha/vms.h (LINK_SPEC): Simplify.
6703 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
6704 (NAME__MAIN, SYMBOL__MAIN): Remove.
6705 (VMS_DEBUG_MAIN_POINTER): Remove.
6706 * config/ia64/vms.h: Likewise.
6707 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
6708 code to vms.c. Call vms_start_function.
6709 * config/ia64/ia64.c (ia64_start_function): Likewise.
6710 * config/vms/vms-protos.h (vms_start_function): Declare.
6711 * config/vms/vms.c (vms_start_function): New function.
6712 * config/vms/vms.h (MATH_LIBRARY): Define.
6713 (VMS_DEBUG_MAIN_POINTER): Define.
6714
ab3908c1 67152012-03-26 Eric Botcazou <ebotcazou@adacore.com>
6716
6717 PR rtl-optimization/52629
6718 * reload1.c (count_pseudo): Short-circuit common case.
6719 (count_spilled_pseudo): Return early for pseudos without hard regs.
6720 Assert that the pseudo has got a hard reg before manipulating it.
6721
4dca9aca 67222012-03-24 Jan Hubicka <jh@suse.cz>
6723
6724 PR lto/51663
6725 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
6726 (decide_is_variable_needed): Do not handle toplevel reorder here.
6727 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
6728 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
6729 even at -O0.
6730
40715742 67312012-03-24 Eric Botcazou <ebotcazou@adacore.com>
6732
6733 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
6734 and str_bitsize instead of more convoluted expressions.
6735
4b552df4 67362012-03-24 Eric Botcazou <ebotcazou@adacore.com>
6737
6738 PR target/52610
6739 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
6740
29c08f56 67412012-03-24 Eric Botcazou <ebotcazou@adacore.com>
6742
6743 PR target/52656
6744 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
6745
a00d04d2 67462012-03-23 Martin Jambor <mjambor@suse.cz>
6747
6748 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
6749
86faead7 67502012-03-23 Richard Guenther <rguenther@suse.de>
6751
6752 PR tree-optimization/52678
6753 * tree-vectorizer.h (struct _stmt_vec_info): Add
6754 loop_phi_evolution_part member.
6755 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
6756 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
6757 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
6758 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6759 Use the cached evolution part and the PHI nodes value from
6760 the loop preheader edge instead of re-analyzing the evolution.
6761
af1bc032 67622012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
6763
6764 * config/mips/mips-tables.opt: Update.
6765 * config/mips/mips.md (processor): Add xlp.
6766 * config/mips/mips-cpus.def: Add xlp.
6767 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
6768 5KF for now.
6769 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
6770 * doc/invoke.texi: Mention XLP.
6771
2ea94a74 67722012-03-22 Jakub Jelinek <jakub@redhat.com>
6773
6774 PR middle-end/52547
6775 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
6776 on any new_local_var_chain vars declared during recursing on
6777 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
6778
af3c0d00 67792012-03-22 Uros Bizjak <ubizjak@gmail.com>
6780
6781 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
6782 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
6783 (ASM_OUTPUT_LOCAL): Ditto.
6784 (ASM_OUTPUT_COMMON): Remove.
6785 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
6786 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
6787
41710b76 67882012-03-22 Jan Hubicka <jh@suse.cz>
6789
6790 PR middle-end/51737
6791 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
6792 parameter.
6793 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
af3c0d00 6794 * ipa-inline-transform.c (save_inline_function_body): Remove
6795 copied clone if needed.
41710b76 6796 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
6797
1957dffb 67982012-03-22 Richard Guenther <rguenther@suse.de>
6799
6800 PR middle-end/52666
6801 * fold-const.c (fold_ternary_loc): Fix typo.
6802
4349a1fa 68032012-03-22 Georg-Johann Lay <avr@gjlay.de>
6804
6805 PR target/52496
6806 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
6807 (unspecv): Add UNSPECV_MEMORY_BARRIER.
6808 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
6809 (delay_cycles_1, delay_cycles_2): Ditto.
6810 (delay_cycles_3, delay_cycles_4): Ditto.
6811 (nopv, *nopv): Ditto.
6812 (sleep, *sleep): Ditto.
6813 (wdr, *wdr): Ditto.
6814
3fd927c9 68152012-03-22 Richard Guenther <rguenther@suse.de>
6816
6817 PR tree-optimization/52548
6818 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
6819 because of clobbers.
6820 (prune_clobbered_mems): New function.
6821 (compute_antic_aux): Use it to prune ANTIC_OUT.
6822 (compute_partial_antic_aux): Use it to prune PA_IN.
af3c0d00 6823 (compute_avail): Only insert expressions into EXP_GEN that are not
6824 invalidated when translated up to the beginning of the block.
3fd927c9 6825
8ca02f71 68262012-03-22 Richard Guenther <rguenther@suse.de>
6827
6828 PR tree-optimization/52638
6829 * tree-vect-stmts.c (vect_init_vector_1): New function, split
6830 out from ...
6831 (vect_init_vector): ... here. Handle scalar vector inits.
6832 (vect_get_vec_def_for_operand): Adjust.
6833 (vectorizable_load): Likewise.
6834
a25bf392 68352012-03-22 Uros Bizjak <ubizjak@gmail.com>
6836
6837 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
6838 (alpha*-*-freebsd*): Ditto.
6839 (alpha*-*-netbsd*): Ditto.
6840 (alpha*-*-openbsd*): Ditto.
6841 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
6842 (DWARF2_DEBUGGING_INFO): Remove.
6843 (PREFERRED_DEBUGGING_TYPE): Remove.
6844 (ASM_FINAL_SPEC): Remove.
6845 (IDENT_ASM_OP): Remove.
6846 (ASM_OUTPUT_IDENT): Remove.
6847 (SKIP_ASM_OP): Remove.
6848 (ASM_OUTPUT_SKIP): Remove.
6849 (ALIGN_ASM_OP): Remove.
6850 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
6851 (ASM_OUTPUT_CASE_LABEL): Remove.
6852 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
6853 (COMMON_ASM_OP): Remove.
6854 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
6855 (ASCII_DATA_ASM_OP): Remove.
6856 (READONLY_DATA_SECTION_ASM_OP): Remove.
6857 (INIT_SECTION_ASM_OP): Remove.
6858 (FINI_SECTION_ASM_OP): Remove.
6859 (ASM_SECTION_START_OP): Remove.
6860 (ASM_OUTPUT_SECTION_START_FILE): Remove.
6861 (TARGET_ASM_NAMED_SECTION): Remove.
6862 (TARGET_ASM_SELECT_SECTION): Remove.
6863 (MAKE_DECL_ONE_ONLY): Remove.
6864 (TYPE_ASM_OP): Remove.
6865 (SIZE_ASM_OP): Remove.
6866 (ASM_WEAKEN_LABEL): Remove.
6867 (TYPE_OPERAND_FMT): Remove.
6868 (ASM_DECLARE_RESULT): Remove.
6869 (ASM_DECLARE_OBJECT_NAME): Remove.
6870 (ASM_FINISH_DECLARE_OBJECT): Remove.
6871 (ELF_ASCII_ESCAPES): Remove.
6872 (ELF_STRING_LIMIT): Remove.
6873 (STRING_ASM_OP): Remove.
6874 (ASM_OUTPUT_EXTERNAL): Remove.
6875 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
6876 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
6877 before define.
6878 (ASM_DECLARE_FUNCTION_NAME): Ditto.
6879 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
6880 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
6881 (ASM_OUTPUT_SKIP): Ditto.
6882 (READONLY_DATA_SECTION_ASM_OP): Remove.
6883 (USER_LABEL_PREFIX): Remove.
6884 (ASM_OUTPUT_ASCII): Remove.
6885 (ASM_OUTPUT_CASE_LABEL): Remove.
6886 (NO_DOLLAR_IN_LABEL): Undefine.
6887
38847948 68882012-03-22 Richard Guenther <rguenther@suse.de>
6889
6890 PR tree-optimization/52459
6891 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
6892 PHI insertion for calls.
6893
2aca5650 68942012-03-21 Steven Bosscher <steven@gcc.gnu.org>
6895
6896 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
6897 find_sets_in_insn, canonicalize_insn): Split out from ...
6898 (cse_insn): ... here.
6899 (invalidate_from_clobbers): Take an insn instead of the pattern.
6900
237a2429 69012012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
6902
6903 PR target/52479
6904 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
6905 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
6906 * config/sh/sh.md (sindf2, cosdf2): Remove.
6907
8fe7656f 69082012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
6909
b45e6434 6910 PR target/52642
8fe7656f 6911 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
a25bf392 6912 prologue for unwinder and profiler.
8fe7656f 6913
2ac000bb 69142012-03-21 Andreas Tobler <andreast@fgznet.ch>
6915
6916 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
6917 Introduce emul_name to select the right linker emulation for
6918 powerpc64-*-freebsd*.
6919 * configure: Regenerate.
6920 * config.gcc: Add bits to support powerpc64-*-freebsd*.
6921 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
6922 * config/rs6000/freebsd64.h: New file.
6923 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
6924 POWERPC_FREEBSD.
6925 (rs6000_savres_strategy): Likewise.
6926 (rs6000_savres_routine_name): Likewise.
6927 (rs6000_elf_file_end): Likewise.
6928 * config/rs6000/t-freebsd64: New file.
6929 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
6930 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
6931
d018c468 6932 * config/rs6000/freebsd64.h: Remove duplicated entries from last
6933 commit.
6934 * config/rs6000/t-freebsd64: Likewise.
6935
002565f0 69362012-03-21 Georg-Johann Lay <avr@gjlay.de>
6937
6938 PR rtl-optimization/52543
6939 PR target/52461
6940 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
6941 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
6942 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
6943 (avr_load_libgcc_p): Restrict to __flash loads.
6944 (avr_out_lpm): Only handle 1-byte loads from __flash.
6945 (avr_load_lpm): New function.
6946 (avr_find_unused_d_reg): Remove.
6947 (avr_out_lpm_no_lpmx): Remove.
6948 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
6949 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
6950 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
6951 (load_<mode>, load_<mode>_clobber): New insns.
6952 (mov<mode>): For multi-byte move from non-generic
6953 16-bit address spaces: Expand to load_<mode> resp.
6954 load_<mode>_clobber.
6955 (load<mode>_libgcc): Remove expander.
6956 (split-lpmx): Remove split.
6957
cd4e07db 69582012-03-21 Richard Earnshaw <rearnsha@arm.com>
6959
6960 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
6961 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
6962 All callers changed.
6963 (Fixed_core_reg): New feature.
6964 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
6965 disassembly.
6966 * neon-testgen.ml: Handle Fixed_core_reg.
6967
ae1dbab8 69682012-03-21 Andrew Stubbs <ams@codesourcery.com>
6969
6970 * config/arm/arm.c (thumb2_reorg): Add complete support
6971 for 16-bit instructions.
6972 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
6973
6fa78636 69742012-03-21 Richard Guenther <rguenther@suse.de>
6975
6976 PR tree-optimizer/52636
6977 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
6978 to the appropriate type.
6979
212dddd3 69802012-03-21 Richard Guenther <rguenther@suse.de>
6981
6982 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
6983 dependencies.
6984 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
6985 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
6986 * passes.c (init_optimization_passes): Remove pass_init_function,
6987 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
6988 * tree-pass.h (pass_init_function): Remove.
6989 (pass_jump): Remove.
6990 (pass_initial_value_sets): Remove.
6991 (pass_unshare_all_rtl): Remove.
6992 * integrate.c (pass_initial_value_sets): Remove.
6993 * emit-rtl.c (pass_unshare_all_rtl): Remove.
6994 * tree.h (init_function_for_compilation): Remove.
6995 * function.c (init_function_for_compilation): Remove.
6996 (pass_init_function): Remove.
6997 * cfgcleanup.c (rest_of_handle_jump): Remove.
6998 (pass_jump): Remove.
6999
358f9d96 70002012-03-20 Jason Merrill <jason@redhat.com>
7001
7002 * tree-streamer-in.c (streamer_alloc_tree): Call
7003 ggc_alloc_zone_cleared_tree_node instead of
7004 ggc_alloc_zone_cleared_tree_node_stat.
7005
6ad63f69 70062012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
7007
7008 * doc/extend.texi (Template Instantiation): Remove anachronisms.
7009
541e350d 70102012-03-20 Jakub Jelinek <jakub@redhat.com>
7011
0b991a69 7012 PR target/52607
7013 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
7014 (ix86_expand_vec_perm_const_1): Call it.
7015
245c00ec 7016 * config/i386/i386.c (vselect_insn): New variable.
7017 (init_vselect_insn): New function.
7018 (expand_vselect, expand_vselect_insn): Add testing_p argument.
7019 Call init_vselect_insn if vselect_insn is NULL. Adjust
7020 PATTERN (vselect_insn), instead of creating a new insn each time,
7021 only emit a copy of it if not testing and recog has been successful.
7022 (expand_vec_perm_pshufb, expand_vec_perm_1,
7023 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
7024 callers.
7025
541e350d 7026 PR target/52607
7027 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
7028 ("enabled" attribute): Handle avx2 and noavx2 isas.
7029 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
7030 New insns.
7031 (vec_dup<mode>): Add avx2 =x,x alternative.
7032 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
7033 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
7034 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
7035 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
7036 for V8SFmode.
7037 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
7038 if possible, handle also V8SFmode.
7039
1987d213 70402012-03-20 Richard Earnshaw <rearnsha@arm.com>
7041
7042 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
7043 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
7044 reg_or_zero_operand predicate.
7045 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
7046
17113bf6 70472012-03-20 Jakub Jelinek <jakub@redhat.com>
7048
7049 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
7050 If operand isn't UNSPEC, return 0.
7051
1dd4980f 70522012-03-20 Richard Guenther <rguenther@suse.de>
7053
7054 * tree-pass.h (pass_rtl_eh): Remove.
7055 * except.c (gate_handle_eh): Likewise.
7056 (rest_of_handle_eh): Likewise.
7057 (pass_rtl_eh): Likewise.
7058 (finish_eh_generation): Export.
7059 * except.h (finish_eh_generation): Declare.
7060 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
7061 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
7062 after expanding stack alignment. Instead of compacting blocks
7063 call cleanup_cfg.
7064
fa42e1a4 70652012-03-20 Richard Guenther <rguenther@suse.de>
7066
7067 * stor-layout.c (finish_bitfield_representative): Fallback
7068 to conservative maximum size if the padding up to the next
7069 field cannot be computed as a constant.
7070 (finish_bitfield_layout): If we cannot compute the distance
7071 between the start of the bitfield representative and the
7072 bitfield member start a new representative.
7073 * expr.c (get_bit_range): The distance between the start of
7074 the bitfield representative and the bitfield member is zero
7075 if the field offsets are not constants.
7076
748e5d45 70772012-03-20 Tristan Gingold <gingold@adacore.com>
7078
7079 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
7080 convert in lowercase.
7081 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
7082 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
7083 * stor-layout.c (sizetype_tab): Adjust.
7084 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
7085 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
7086 instead of type_kind_last.
7087 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
7088 instead of size_int_kind.
7089 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
7090 * doc/tm.texi: Regenerate.
7091 * defaults.h (SIZETYPE): Provide a default value.
7092 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
7093 (SIZETYPE): Define.
7094
a0554dde 70952012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
7096
7097 * config/sh/sh.md: Use braced string notation where applicable.
7098
ee1d2eea 70992012-03-19 Uros Bizjak <ubizjak@gmail.com>
7100
7101 * config/i386/i386.md (allocate_stack): Simplify.
7102
99182918 71032012-03-19 Uros Bizjak <ubizjak@gmail.com>
7104
7105 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
7106 copy_to_mode_reg (Pmode, ...).
7107 (expand_builtin_frame_address): Ditto.
7108 * expr.c (emit_block_move_via_libcall): Ditto.
7109 (set_storage_via_libcall): Ditto.
7110
7111 * config/i386/i386.c (ix86_expand_movmem): Ditto.
7112 (ix86_expand_setmem): Ditto.
7113 (ix86_trampoline_init): DItto.
7114 * config/i386/i386.md (cmpstrnsi): Ditto.
99182918 7115
11e875c9 71162012-03-19 Sandra Loosemore <sandra@codesourcery.com>
7117
7118 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
7119 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
7120 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
7121 (SH Options): Likewise.
7122
0a722f4b 71232012-03-19 Uros Bizjak <ubizjak@gmail.com>
7124
7125 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
7126 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
7127 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
7128 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
7129 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
7130
7131 Revert:
7132 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
7133
7134 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
7135 * config/i386/i386.c (ix86_decompose_address): Use
7136 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
7137 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
7138 thread pointer to a register.
7139
7140 Revert:
7141 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
7142
7143 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
7144 if Pmode != word_mode.
7145 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
7146 Pmode == SImode for TARGET_X32.
7147
7148 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
7149 (tls_initial_exec_x32): Likewise.
7150
89cace00 71512012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
7152
7153 PR target/50751
7154 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
7155 DISP_ADDR_OFFSET): New macros.
7156 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
7157 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
7158 (sh_legitimize_address): Add QImode displacement handling.
0a722f4b 7159 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
89cace00 7160 vector subregs.
7161 (sh_secondary_reload): Add QImode displacement handling.
7162 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
5efe717c 7163 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
7164 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
7165 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
7166 to register operands only.
7167 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
7168 (extendqihi2): Change insn to expander.
7169 (*extendqihi2_compact_reg): New insn.
7170 (movqi_i, movqi): Replace with ...
7171 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
7172 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
7173 Add new peepholes for QImode displacement addressing.
89cace00 7174
62206d34 71752012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
7176
7177 PR c++/14710
7178 * doc/invoke.texi: Document -Wuseless-cast.
7179
c165a033 71802012-03-19 Eric Botcazou <ebotcazou@adacore.com>
7181
7182 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
7183 * tree.h (handled_component_p): Reorder cases.
7184 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
7185 not initialize unsignedp.
7186 (loc_list_from_tree): Likewise.
7187 (fortran_common): Likewise.
7188 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
7189
a8b2b958 71902012-03-19 Uros Bizjak <ubizjak@gmail.com>
7191
7192 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
7193 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
7194 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
7195 (ix86_split_long_move): Ditto.
7196 (legitimize_tls_address): Use ix86_gen_sub3.
7197 (construct_plt_address): Assert that Pmode == DImode.
7198
abd4f58b 71992012-03-18 Uros Bizjak <ubizjak@gmail.com>
7200
7201 * config/i386/i386.md: Remove empty predicates and/or constraints.
7202 * config/i386/sync.md: Ditto.
7203 * config/i386/sse.md: Ditto.
7204 * config/i386/mmx.md: Ditto.
7205 * config/i386/pentium.md: Ditto.
7206 * config/i386/athlon.md: Ditto.
7207
08f83b65 72082012-03-16 Richard Guenther <rguenther@suse.de>
7209
7210 PR tree-optimization/52603
7211 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
7212 comment.
7213
7214 Revert
7215 2012-03-14 Richard Guenther <rguenther@suse.de>
7216
7217 PR tree-optimization/52571
7218 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
7219 flag_section_anchors check ...
7220 (vect_can_force_dr_alignment_p): ... here.
7221
e2c56221 72222012-03-16 Martin Jambor <mjambor@suse.cz>
7223
c165a033 7224 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
e2c56221 7225 memory through MEM_REFs by calling extract_bit_field.
7226
7e5db579 72272012-03-16 Richard Guenther <rguenther@suse.de>
7228
7229 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
7230 and REFERENCE_TYPE interpretations.
7231 (can_native_interpret_type_p): New function.
7232 (fold_ternary_loc): Use native encode/interpret to fold
7233 BIT_FIELD_REFs of constants.
7234
ae37ffaf 72352012-03-16 Richard Guenther <rguenther@suse.de>
7236
7237 PR middle-end/52584
7238 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
7239 of vector constants and constructors.
7240
ace64c06 72412012-03-16 Richard Guenther <rguenther@suse.de>
7242
7243 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
7244 VIEW_CONVERT_EXPR to convert constants.
7245 (vect_is_simple_use): Treat all constants as vec_constant_def.
7246
32b227eb 72472012-03-16 Richard Guenther <rguenther@suse.de>
abd4f58b 7248 Kai Tietz <ktietz@redhat.com>
32b227eb 7249
7250 PR middle-end/48814
7251 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
7252 side-effects completely in the pre-queue and use a temporary
7253 for the result.
7254
75188dc6 72552012-03-16 Richard Guenther <rguenther@suse.de>
7256
7257 * stor-layout.c (finish_bitfield_representative): Fall back
7258 to the conservative maximum size if we cannot compute the
7259 size of the tail padding.
7260
91976c6c 72612012-03-16 Tristan Gingold <gingold@adacore.com>
7262
7263 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
7264 __CRTL_VER and __VMS_VER.
7265 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
7266 and vms_c_get_vms_ver.
7267 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
7268 functions.
7269 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
7270 (VMS_DEFAULT_VMS_VER): Define.
7271 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
7272 (VMS_DEFAULT_VMS_VER): Define.
7273
3e299f5d 72742012-03-16 Richard Guenther <rguenther@suse.de>
7275
7276 * tree-vect-loop.c (get_initial_def_for_induction): Use
7277 build_constructor directly.
7278 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
7279 build_vector_from_val.
7280 * tree.c (build_vector_from_val): Avoid creating a constructor
7281 first when we want a constant vector.
7282
f3e265d7 72832012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7284
7285 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
7286
fadf62f4 72872012-03-16 Richard Guenther <rguenther@suse.de>
7288
7289 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
7290 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
7291 (struct tree_vector): Remove elements member, add variable size
7292 elts array member.
7293 (build_vector_stat): Declare.
7294 (build_vector): Define in terms of build_vector_stat.
7295 * tree.c (build_vector): Rename to ...
7296 (build_vector_stat): ... this. Take array of trees as parameter.
7297 (build_vector_from_ctor): Adjust.
7298 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
7299 initializer_zerop): Adjust.
7300 * cfgexpand.c (expand_debug_expr): Likewise.
7301 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
7302 const_vector_from_tree): Likewise.
7303 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
7304 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
7305 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
7306 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
7307 (lto_input_ts_vector_tree_pointers): Adjust.
7308 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
7309 (write_ts_vector_tree_pointers): Adjust.
7310 * varasm.c (const_hash_1, compare_constant, copy_constant,
7311 output_constant): Adjust.
7312 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
7313 * print-tree.c (print_node): Adjust.
7314 * tree-pretty-print.c (dump_generic_node): Adjust.
7315 * tree-vect-generic.c (uniform_vector_p, vector_element,
7316 lower_vec_perm): Adjust.
7317 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
7318 * tree-vect-slp.c (vect_get_constant_vectors,
7319 vect_transform_slp_perm_load): Adjust.
7320 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
7321 * expmed.c (make_tree): Adjust.
7322 * config/i386/i386.c (ix86_expand_builtin): Adjust.
7323 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
7324 and implementation.
7325 (sparc_fold_builtin): Adjust.
7326
e55b581d 73272012-03-16 Tristan Gingold <gingold@adacore.com>
7328
7329 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
7330 * config/vms/vms-stdint.h: New file.
7331
240f6bb5 73322012-03-16 Tristan Gingold <gingold@adacore.com>
7333
7334 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
7335 (ia64-hp-*vms*): Replaced by ...
7336 (*-*-*vms*): ... This new entry.
7337
e0c9db9b 73382012-03-15 Jakub Jelinek <jakub@redhat.com>
7339
6a8ad139 7340 PR target/52568
abd4f58b 7341 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
6a8ad139 7342 (ix86_expand_vec_perm_const_1): Use it.
7343
e0c9db9b 7344 PR target/52568
7345 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
7346 (avx2_permv4df): Remove.
7347 (avx2_permv4di): Macroize into...
7348 (avx2_perm<mode>): ... this using VI8F_256 iterator.
7349 (avx2_permv4di_1): Macroize into...
7350 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
7351
2ef72921 73522012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
7353
7354 * combine.c (apply_distributive_law): Do not distribute SUBREG.
7355
087903db 73562012-03-15 Ira Rosen <irar@il.ibm.com>
7357 Ulrich Weigand <ulrich.weigand@linaro.org>
7358
7359 * tree-vect-patterns.c (widened_name_p): Rename to ...
7360 (type_conversion_p): ... this. Add new argument to determine
7361 if it's a promotion or demotion operation. Check for
7362 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
7363 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
7364 widened_name_p.
7365 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
7366 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
7367 Likewise.
7368 (vect_recog_mixed_size_cond_pattern): Likewise and allow
7369 non-constant then and else clauses.
7370
4c0c783a 73712012-03-15 Ira Rosen <irar@il.ibm.com>
7372 Ulrich Weigand <ulrich.weigand@linaro.org>
7373
7374 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
7375 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
7376 vect_pattern_recog.
7377 * tree-vect-patterns.c (widened_name_p): Pass basic block
7378 info to vect_is_simple_use.
7379 (vect_recog_dot_prod_pattern): Fail for basic blocks.
7380 (vect_recog_widen_sum_pattern): Likewise.
7381 (vect_handle_widen_op_by_const): Support basic blocks.
7382 (vect_operation_fits_smaller_type,
7383 vect_recog_over_widening_pattern): Likewise.
7384 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
7385 Update call to vect_is_simple_use.
7386 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
7387 Add printing.
7388 (check_bool_pattern): Add an argument, update call to
7389 vect_is_simple_use and the recursive calls.
7390 (vect_recog_bool_pattern): Update relevant function calls.
7391 Add printing.
7392 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
7393 (vect_pattern_recog_1): Check for reduction only in loops.
7394 (vect_pattern_recog): Add new argument. Support basic blocks.
7395 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
7396 info to vect_is_simple_use_1.
a25bf392 7397 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
4c0c783a 7398 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
7399
e951f9a4 74002012-03-15 Jakub Jelinek <jakub@redhat.com>
7401 Andrew Pinski <apinski@cavium.com>
7402
7403 PR middle-end/52592
7404 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
7405 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
7406 calls instead of __builtin_ir{int,ound}*.
7407
ce1d2364 74082012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7409
7410 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
7411 documentation.
7412
bd29e244 74132012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4eb5a747 7414
7415 * config.gcc (target_type_format_char): New. Document it. Set it for
ce1d2364 7416 arm*-*-* .
abd4f58b 7417 * configure.ac (gnu_unique_option): Use target_type_format_char
7418 in test. Comment rationale.
4eb5a747 7419 * configure: Regenerate .
7420
7139adf8 74212012-03-15 Jakub Jelinek <jakub@redhat.com>
7422
7423 PR tree-optimization/52267
7424 * tree-vrp.c (masked_increment): New function.
7425 (register_edge_assert_for_2): Derive ASSERT_EXPRs
7426 from (X & CST1) cmp CST2 tests.
7427
2ecb06bc 74282012-03-15 Richard Guenther <rguenther@suse.de>
7429
7430 PR middle-end/52580
7431 * tree-data-ref.c (subscript_dependence_tester_1): Check
7432 all dimensions for non-conflicting access functions.
7433
249faa35 74342012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
7435
7436 PR c++/44783
7437 * doc/invoke.texi [C++ Language Options]: Document
7438 -ftemplate-backtrace-limit.
7439
dd8e8868 74402012-03-15 Tristan Gingold <gingold@adacore.com>
7441
7442 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
7443 before a parameter.
7444
9e8ac19d 74452012-03-15 Tristan Gingold <gingold@adacore.com>
7446
7447 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
7448 use DW_OP_call_frame_cfa.
7449
676fcf5f 74502012-03-14 H.J. Lu <hongjiu.lu@intel.com>
7451
7452 PR target/50797
7453 * config/i386/i386-opts.h (pmode): New.
7454
7455 * config/i386/i386.c (ix86_option_override_internal): Properly
7456 check and set ix86_pmode.
7457
a25bf392 7458 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
676fcf5f 7459
7460 * config/i386/i386.opt (maddress-mode=): New.
7461
7462 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
7463
c9185637 74642012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7465
7466 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
7467 (dwarf2out_do_cfi_asm): Likewise.
7468 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
7469 handling.
7470 (add_data_member_location_attribute): Likewise.
7471 (gen_array_type_die): Likewise.
7472 (gen_subprogram_die): Likewise.
7473 (gen_producer_string): Likewise.
7474 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
7475 Remove MIPS_DEBUGGING_INFO handling.
7476 (sdb_debug_hooks): Likewise.
7477 (sdbout_begin_block): Likewise.
7478 (sdbout_end_block): Likewise.
7479 (sdbout_begin_prologue): Likewise.
7480 (sdbout_start_source_file): Likewise.
7481 (sdbout_end_source_file): Likewise.
7482 (sdbout_init): Likewise.
7483 * system.h (MIPS_DEBUGGING_INFO): Poison.
7484
48a5030b 74852012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7486
7487 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
7488 (alpha_file_start) [MS_STAMP]: Remove.
7489
7490 * config/alpha/elf.h (TARGET_GAS): Remove.
7491 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
7492 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
7493 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
7494 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
7495 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
7496 (alpha*-*-freebsd*): Likewise.
7497 (alpha*-*-netbsd*): Likewise.
7498 (alpha*-*-openbsd*): Likewise.
7499 (alpha*-*-*): Remove target_cpu_default2.
7500 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
7501 handling.
7502 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
7503 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
7504 * config/alpha/alpha.c (print_operand): Always assume
7505 TARGET_AS_SLASH_BEFORE_SUFFIX.
7506 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
7507 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
7508 ("*builtin_setjmp_receiver_er_1"): Remove.
7509 * config/alpha/alpha.opt (malpha-as): Remove.
7510 (mgas): Ignore.
7511 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
7512 -malpha-as, -mgas.
7513 Remove DEC Unix reference.
7514
7515 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
7516 (EXTENDED_COFF): Remove.
7517 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
7518 (EXTENDED_COFF): Don't undef.
7519 * config/alpha/alpha.c (alpha_file_start): Always assume
7520 OBJECT_FORMAT_ELF.
7521 Don't set targetm.asm_file_start_file_directive.
7522 [!OBJECT_FORMAT_ELF]: Remove.
7523 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
7524
7525 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
7526 (DBX_DEBUGGING_INFO): Remove.
7527 (MIPS_DEBUGGING_INFO): Remove.
7528 (PREFERRED_DEBUGGING_TYPE): Remove.
7529 (DBX_OUTPUT_SOURCE_LINE): Remove.
7530 (SDB_OUTPUT_SOURCE_LINE): Remove.
7531 (DBX_CONTIN_LENGTH): Remove.
7532 (NO_DBX_FUNCTION_END): Remove.
7533 (ASM_STABS_OP): Remove.
7534 (ASM_STABN_OP): Remove.
7535 (ASM_STABD_OP): Remove.
7536 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
7537 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
7538 (PUT_SDB_DEF): Remove.
7539 (PUT_SDB_PLAIN_DEF): Remove.
7540 (PUT_SDB_TYPE): Remove.
7541 (sdb_label_count): Remove.
7542 (PUT_SDB_BLOCK_START): Remove.
7543 (PUT_SDB_BLOCK_END): Remove.
7544 (PUT_SDB_FUNCTION_START): Remove.
7545 (PUT_SDB_FUNCTION_END): Remove.
7546 (PUT_SDB_EPILOGUE_END): Remove.
7547 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
7548 (MIPS_DEBUGGING_INFO): Don't undef.
7549 (DBX_DEBUGGING_INFO): Don't undef.
7550 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
7551 (MIPS_DEBUGGING_INFO): Don't undef.
7552 (DBX_DEBUGGING_INFO): Don't undef.
7553 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
7554 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
7555 handling.
7556 (alpha_start_function): Likewise.
7557 (sdb_label_count): Remove.
7558 (alpha_output_filename): Remove DBX_DEBUG handling.
7559 (alpha_file_start): Likewise.
7560
264a5d11 75612012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7562
7563 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
7564 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
7565 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
7566 Solaris 8 support.
7567 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
7568 (ld_tls_support): Remove Solaris 8 references.
7569 (lwp_dir, lwp_spec): Remove support for alternate thread library.
abd4f58b 7570 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
264a5d11 7571 * configure: Regenerate.
7572 * config.in: Regenerate.
7573
7574 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
7575 * config/i386/sol2.h: Remove Solaris 8 references.
7576
7577 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
7578 (i?86-*-solaris2.9): ... this.
7579 Remove Solaris 8 references.
7580 (Specific, *-*-solaris2*): Document Solaris 8 removal.
7581 Remove Solaris 8 references.
7582
5641963c 75832012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7584
7585 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
7586 (mips-sgi-irix6.5*): Remove.
7587 * config.host (mips-sgi-irix*): Remove.
7588 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
7589 (set_have_as_tls): Remove *-*-irix6*.
7590 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
7591 * configure: Regenerate.
7592
7593 * config/mips/iris6.h: Remove.
7594 * config/mips/iris6.opt: Remove.
7595 * config/mips/t-irix6: Remove.
7596
7597 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
7598 (TARGET_IRIX6): Remove.
7599 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
7600 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
7601 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
7602 handling.
7603 (mips_file_start): Likewise.
7604 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
7605
7606 * config/mips/driver-native.c [__sgi__]: Remove.
7607 (host_detect_local_cpu) [__sgi__]: Remove.
7608
7609 * config/mips/gnu-user.h: Remove iris5.h reference.
7610
7611 * config/mips/mips-modes.def: Remove IRIX 6 reference.
7612 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
7613 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
7614 Remove.
7615
7616 * gcc.c (main): Move asm_debug initialization ...
7617 (asm_debug): ... here.
7618
7619 * ginclude/stddef.h (__STDDEF_H__): Don't define.
7620
7621 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
7622 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
7623 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
7624 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
7625 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
7626 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
7627 Remove.
7628 * doc/tm.texi: Regenerate.
7629
7630 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
7631 IRIX 6 reference.
7632 (MIPS Options, -march): Remove IRIX reference.
7633 * doc/install.texi (Binaries, SGI IRIX): Remove.
7634 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
7635 of section.
7636 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
7637
884b03c9 76382012-03-14 Martin Jambor <mjambor@suse.cz>
7639
7640 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
abd4f58b 7641 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
884b03c9 7642 (expand_expr_real_1): Do not handle misalignment if modifier is
7643 EXPAND_WRITE.
7644
f1690ec2 76452012-03-14 Richard Guenther <rguenther@suse.de>
7646
7647 PR middle-end/52584
7648 * tree-vect-generic.c (type_for_widest_vector_mode): Take
7649 element type instead of mode, use build_vector_type_for_mode
7650 instead of the langhook, build a vector of proper signedness.
7651 (expand_vector_operations_1): Adjust.
7652
e25d4891 76532012-03-14 Richard Guenther <rguenther@suse.de>
7654
7655 PR middle-end/52582
abd4f58b 7656 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
7657 a cgraph node for a FUNCTION_DECL that comes from a constructor.
e25d4891 7658 (gimple_get_virt_method_for_binfo): Likewise.
7659
1f0f7e1e 76602012-03-14 Richard Guenther <rguenther@suse.de>
7661
7662 PR tree-optimization/52571
7663 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
7664 flag_section_anchors check ...
7665 (vect_can_force_dr_alignment_p): ... here. Do not re-align
7666 DECL_COMMON variables.
7667
8d8a34f9 76682012-03-14 Richard Guenther <rguenther@suse.de>
7669
7670 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
7671 * stor-layout.c (start_bitfield_representative): New function.
7672 (finish_bitfield_representative): Likewise.
7673 (finish_bitfield_layout): Likewise.
7674 (finish_record_layout): Call finish_bitfield_layout.
7675 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
7676 for QUAL_UNION_TYPE fields.
7677 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
7678 Stream DECL_BIT_FIELD_REPRESENTATIVE.
7679 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
7680
7681 PR middle-end/52080
7682 PR middle-end/52097
7683 PR middle-end/48124
7684 * expr.c (get_bit_range): Unconditionally extract bitrange
7685 from DECL_BIT_FIELD_REPRESENTATIVE.
7686 (expand_assignment): Adjust call to get_bit_range.
7687
a6476f88 76882012-03-14 Richard Guenther <rguenther@suse.de>
7689
7690 PR middle-end/52578
7691 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
7692 the outermost conversion is a sign-change only.
7693 (fold_binary_loc): Disregard widening and sign-changing
7694 conversions when we determine if two variables are equal
7695 for reassociation.
7696 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
7697 (T1)x if the outermost conversion is a sign-change only.
7698
6281b3df 76992012-03-14 Uros Bizjak <ubizjak@gmail.com>
7700
7701 Revert:
7702 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
7703
7704 * config/i386/predicates.md (constant_call_address_operand): Declare
7705 as special predicate. Update all uses.
7706
666649ed 77072012-03-13 Jakub Jelinek <jakub@redhat.com>
7708
e739f10c 7709 PR c/52577
7710 * c-parser.c (c_parser_postfix_expression)
7711 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
7712
666649ed 7713 * config/i386/smmintrin.h: Avoid /* within a comment.
7714 * config/i386/nmmintrin.h: Likewise.
7715
b6833dc9 77162012-03-13 Uros Bizjak <ubizjak@gmail.com>
7717
7718 * config/i386/i386.md (xbegin): Remove constraint from expander.
7719
182c3534 77202012-03-13 Uros Bizjak <ubizjak@gmail.com>
7721
7722 * config/i386/predicates.md (constant_call_address_operand): Declare
7723 as special predicate. Update all uses.
7724 * config/i386/i386.md: Remove mode from constant_call_address_operand
7725 predicates.
7726 * config/i386/i386.c (ix86_output_call_insn): Call
7727 constant_call_address_operand with VOIDmode.
7728
0f844e09 77292012-03-13 Uros Bizjak <ubizjak@gmail.com>
7730
7731 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
7732 AND zero extended address correctly.
7733
6a755243 77342012-03-13 Uros Bizjak <ubizjak@gmail.com>
7735
7736 * config/i386/predicates.md (tls_symbolic_operand): Declare as
7737 special predicate.
7738 (tls_modbase_operand): Ditto.
7739 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
7740 tls_modbase_operand predicates.
7741
55e42d78 77422012-03-13 Martin Jambor <mjambor@suse.cz>
7743
7744 * expr.c (expand_assignment): Handle misaligned scalar writes to
7745 memory through top-level MEM_REFs by calling store_bit_field.
7746
7af97aed 77472012-03-13 Richard Guenther <rguenther@suse.de>
7748
7749 PR middle-end/52134
7750 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
7751 if Y is a constant multiple of 1 << CST.
7752
21467ee6 77532012-03-13 Georg-Johann Lay <avr@gjlay.de>
7754
7755 PR target/52488
7756 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
7757 offset (size) to a value the insns can deal with.
7758 (expand_epilogue): Ditto.
7759
fa89c18d 77602012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
7761
7762 * config/arm/neon.ml (ops): Fixup expected instructions for
7763 unsigned vector compares.
7764
1da1898e 77652012-03-13 Uros Bizjak <ubizjak@gmail.com>
7766
7767 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
7768 addresses only when %reg is not in word mode.
7769
c2c4377d 77702012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7771
7772 * config/microblaze/microblaze.md: Fix typo.
7773 * tree-if-conv.c: Likewise.
7774 * tree-vect-patterns.c: Likewise.
7775
7151decb 77762012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7777
7778 * config.gcc (extra_passes): Remove.
7779 * configure.ac (extra_passes): Don't substitute.
7780 * configure: Regenerate.
7781 * Makefile.in (EXTRA_PASSES): Remove.
7782 (GCC_PASSES): Remove $(EXTRA_PASSES).
7783 (MOSTLYCLEANFILES): Likewise.
7784 (native): Likewise.
7785 (install-common): Likewise.
7786
b966bb5f 77872012-03-13 Uros Bizjak <ubizjak@gmail.com>
7788
7789 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
7790 * config/i386/i386.c (ix86_decompose_address): Use
7791 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
7792 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
7793 thread pointer to a register.
7794
f500db2a 77952012-03-12 H.J. Lu <hongjiu.lu@intel.com>
7796
7797 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
7798 on tls_symbolic_operand.
7799 (tls_global_dynamic_64_<mode>): Likewise.
7800
0c8f5ee5 78012012-03-12 Georg-Johann Lay <avr@gjlay.de>
7802
7803 PR other/52545
7804 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
7805 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
7806
63477dcc 78072012-03-12 Georg-Johann Lay <avr@gjlay.de>
7808
7809 PR target/52499
7810 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
7811 type from reg_class_t to enum reg_class.
7812 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
7813
c3597b05 78142012-03-12 Andrew Pinski <apinski@cavium.com>
7815
7816 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
7817 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
7818 (value_replacement): Likewise.
7819 (empty_block_p): Check also if the PHIs for the block are empty.
7820
6bdcc5e4 78212012-03-12 Georg-Johann Lay <avr@gjlay.de>
7822
7823 PR target/52148
7824 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
7825 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
7826 r184615 from 2012-02-28.
7827
63e90859 78282012-03-12 H.J. Lu <hongjiu.lu@intel.com>
7829
7830 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
7831 (ix86_gen_tls_local_dynamic_base_64): Likewise.
7832 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
7833 and ix86_gen_tls_local_dynamic_base_64.
7834 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
7835 ix86_gen_tls_local_dynamic_base_64.
7836
7837 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
7838 (*tls_global_dynamic_64_<mode>): This.
7839 (tls_global_dynamic_64): Renamed to ...
7840 (tls_global_dynamic_64_<mode>): This.
7841 (*tls_local_dynamic_base_64): Renamed to ...
7842 (*tls_local_dynamic_base_64_<mode>): This.
7843 (tls_local_dynamic_base_64): Renamed to ...
7844 (tls_local_dynamic_base_64_<mode>): This.
7845
bf0a02ba 78462012-03-12 H.J. Lu <hongjiu.lu@intel.com>
7847
7848 * config/i386/i386.c (ix86_option_override_internal): Properly
7849 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
7850 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
abd4f58b 7851 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
7852 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
bf0a02ba 7853
7854 * config/i386/sse.md (sse3_monitor64): Renamed to ...
7855 (sse3_monitor64_<mode>): This.
7856
6b6253f2 78572012-03-12 Tristan Gingold <gingold@adacore.com>
7858
7859 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
7860 (ia64_function_arg_advance): Ditto.
7861
1f7e141e 78622012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7863
7864 * config.gcc (mips*-*-openbsd*): Remove.
7865 * config/mips/openbsd.h: Remove.
7866 * config/mips/sdb.h: Remove.
7867
7868 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
7869 * config/mips/mips.c (sdb_label_count): Remove.
7870 (mips_debugger_offset): Remove #if 0 code.
7871 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
7872 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
7873
1647539e 78742012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7875
7876 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
7877 binutils reference.
7878 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
7879 Update binutils references.
7880 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
7881 Update binutils reference.
7882 Update Sun as/GNU ld caveat.
7883 Document binutils largefile requirement for LTO plugin.
6776c1f3 7884 Remove reference to alternate libpthread.
1647539e 7885
126b6848 78862012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7887
7888 * config.gcc (alpha*-dec-osf5.1*): Remove.
7889 * config.host (alpha*-dec-osf*): Remove.
7890 * configure.ac (*-*-osf*): Remove.
7891 (alpha*-dec-osf*): Remove.
7892 * configure: Regenerate.
7893
abd4f58b 7894 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
7895 config/alpha/va_list.h, config/alpha/x-osf: Remove.
126b6848 7896
7897 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
7898 * config/alpha/alpha.c (struct machine_function): Update comment.
7899 (alpha_start_function): Remove Tru64 UNIX as handling for
7900 max_frame_size.
7901 * config/alpha/alpha.md ("exception_receiver"): Remove
7902 TARGET_LD_BUGGY_LDGP.
7903 ("*exception_receiver_2"): Likewise.
7904 * except.c (finish_eh_generation): Remove Tru64 reference.
7905 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
7906 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
7907 * target.def (handle_pragma_extern_prefix): Remove.
7908
7909 * Makefile.in (mips-tfile.o-warn): Remove.
7910 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
7911 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
7912 * mips-tdump.c, mips-tfile.c: Remove.
7913
7914 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
7915 extern_prefix.
7916 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
7917 (Specific, alpha*-dec-osf5.1): Note removal.
7918 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
7919 Remove.
7920 * doc/tm.texi: Regenerate.
7921 * doc/trouble.texi (Cross-Compiler Problems): Remove.
7922
969baf69 79232012-03-12 Richard Guenther <rguenther@suse.de>
7924
7925 * config/arm/arm.c (neon_dereference_pointer): Do not call
7926 covert during RTL expansion.
7927
cc48d234 79282012-03-12 Tristan Gingold <gingold@adacore.com>
7929
7930 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
7931 Options. Mention -mpointer-size.
7932
a51edb4c 79332012-03-12 Richard Guenther <rguenther@suse.de>
7934
7935 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
7936 build_nonstandard_integer_type.
7937
0177b1e3 79382012-03-12 Richard Guenther <rguenther@suse.de>
7939
7940 * tree.c (signed_or_unsigned_type_for): Use
7941 build_nonstandard_integer_type.
7942 (signed_type_for): Adjust documentation.
7943 (unsigned_type_for): Likewise.
7944 * tree-pretty-print.c (dump_generic_node): Use standard names
7945 for non-standard integer types if available.
7946
8f852c44 79472012-03-12 Tristan Gingold <gingold@adacore.com>
7948
7949 * config/vms/vms.opt: Add vms-opts.h header.
7950 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
7951 target mask.
7952 (-mvms-return-codes): Document.
7953 (-mpointer-size): New option.
7954 (vms_pointer_size): Add enumeration.
7955 * config/vms/vms-opts.h: New file.
7956 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
7957 __INITIAL_POINTER_SIZE.
7958 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
7959 (C_COMMON_OVERRIDE_OPTIONS): Define.
7960 (DWARF2_ADDR_SIZE): Define.
7961 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
7962 * config/vms/vms-protos.h (vms_c_common_override_options):
7963 New prototype.
7964 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
7965 if -mno-pointer-size.
7966 (vms_c_common_override_options): New function.
7967 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
7968 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
7969 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
7970 and flag_vms_pointer_size.
7971 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
7972 * config.gcc (*-*-*vms*): Define xm_file.
7973 (alpha*-dec-*vms*): Do not define xm_file.
7974 (alpha64-dec-*vms*): Remove.
7975 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
7976 and tmake_file.
7977
22676c8f 79782012-03-12 Jakub Jelinek <jakub@redhat.com>
7979
7980 PR tree-optimization/51721
7981 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
7982 if (int) unsvar cmp CST.
7983
7f23b9c0 79842012-03-12 Richard Guenther <rguenther@suse.de>
7985
abd4f58b 7986 * tree-sra.c (create_access_replacement): Only rename the replacement
7987 if we can rewrite it into SSA form. Properly mark register typed
7988 replacements that we cannot rewrite with TREE_ADDRESSABLE.
7f23b9c0 7989 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
7990 for aggregate or BLKmode results.
7991
6b48fd25 79922012-03-12 Jakub Jelinek <jakub@redhat.com>
7993
7994 PR tree-optimization/52533
7995 * tree-vrp.c (register_edge_assert_for_2): Use double_int
7996 type for mask, only handle shifts by non-zero in-range
7997 shift count, for LE_EXPR and GT_EXPR if new_val is
7998 maximum, don't add the assertion.
7999
bce88dc2 80002012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
8001
8002 * doc/invoke.texi: Document -mrtm option.
abd4f58b 8003 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
bce88dc2 8004 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
8005 (ix86_handle_option): Handle OPT_mrtm.
8006 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
8007 xtestintrin.h.
8008 (x86_64-*-*): Ditto.
8009 * i386-builtin-types.def (INT_FTYPE_VOID): New.
8010 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8011 __RTM__ if needed.
8012 (ix86_target_string): Define -mrtm option.
8013 (PTA_RTM): New.
abd4f58b 8014 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
8015 Handle new option.
bce88dc2 8016 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
8017 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
8018 IX86_BUILTIN_XTEST.
8019 (bdesc_special_args): Ditto.
8020 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
8021 (ix86_expand_special_args_builtin): Handle new built-in type.
8022 (ix86_expand_builtin): Handle XABORT instruction.
8023 * config/i386/i386.h (TARGET_RTM): New.
8024 * config/i386/i386.md (UNSPECV_XBEGIN): New.
8025 (UNSPECV_XEND): Ditto.
8026 (UNSPECV_XABORT): Ditto.
8027 (UNSPECV_XTEST): Ditto.
8028 (xbegin): Ditto.
8029 (xbegin_1): Ditto.
8030 (xend): Ditto.
8031 (xabort): Ditto
8032 (xtest): Ditto.
8033 (xtest_1): Ditto.
8034 * config/i386/i386.opt (mrtm): New.
abd4f58b 8035 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
bce88dc2 8036 * config/i386/rtmintrin.h: New header.
8037 * config/i386/xtestintrin.h: Ditto.
8038
74a1e041 80392012-03-12 Tristan Gingold <gingold@adacore.com>
8040
abd4f58b 8041 * ginclude/stddef.h: Adjust previous patch.
8042 Use __VMS__ instead of VMS.
74a1e041 8043
c6f81084 80442012-03-12 Uros Bizjak <ubizjak@gmail.com>
8045
8046 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
8047 Also convert sequences with CC setting arithmetic instruction.
8048
3e5e110f 80492012-03-11 Sandra Loosemore <sandra@codesourcery.com>
8050
8051 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
8052 from C Language Options to Preprocessor Options.
8053 (C Dialect Options): Move -no-integrated-cpp documentation
8054 from here...
8055 (Preprocessor Options): ...to here. Rewrite the description
abd4f58b 8056 so it makes more sense, and remove discussion of merging front ends.
3e5e110f 8057
af423a9d 80582012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8059
8060 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
8061 needed for loop.
8062 (ix86_expand_setmem): Likewise.
8063
c7def6ab 80642012-03-11 Uros Bizjak <ubizjak@gmail.com>
8065
8066 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
8067 convert_to_mode.
8068
9e8fad47 80692012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8070
8071 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
8072 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
8073
48ca984b 80742012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8075
c7def6ab 8076 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
48ca984b 8077
235d620e 80782012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8079
8080 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
8081 TARGET_64BIT.
8082
7dd29a1c 80832012-03-11 H.J. Lu <hongjiu.lu@intel.com>
8084 Uros Bizjak <ubizjak@gmail.com>
c290746e 8085
7dd29a1c 8086 * config/i386/predicates.md (call_insn_operand): Allow
c290746e 8087 constant_call_address_operand in Pmode only.
8088 (sibcall_insn_operand): Ditto.
8089 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
8090 (*call_vzeroupper): Ditto.
8091 (*sibcall): Ditto.
8092 (*sibcall_vzeroupper): Ditto.
8093 (*call_value): Ditto.
8094 (*call_value_vzeroupper): Ditto.
8095 (*sibcall_value): Ditto.
8096 (*sibcall_value_vzeroupper): Ditto.
8097 (*indirect_jump): Ditto.
8098 (*tablejump_1): Ditto.
8099 (indirect_jump): Convert memory address to word mode for TARGET_X32.
8100 (tablejump): Ditto.
8101 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
8102 to word mode.
8103
bdd0e5dc 81042012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
8105
8106 PR target/51244
8107 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
8108 Use movrt_negc instead of negc pattern for non-SH2A.
8109 (*movnegt): Remove.
8110 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
8111
fe73ce46 81122012-03-10 H.J. Lu <hongjiu.lu@intel.com>
8113
8114 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
8115 if Pmode != word_mode.
8116 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
c290746e 8117 Pmode == SImode for TARGET_X32.
fe73ce46 8118
8119 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
8120 (tls_initial_exec_x32): Likewise.
8121
bd279947 81222012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
8123
8124 PR rtl-optimization/52528
8125 * combine.c (can_combine_p): Add setting of subst_low_luid
8126 before call to expand_field_assignment().
8127
3bbe8a1c 81282012-03-09 Sandra Loosemore <sandra@codesourcery.com>
8129
8130 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
8131 and related program names.
8132
4eb48a77 81332012-03-09 Sandra Loosemore <sandra@codesourcery.com>
8134
8135 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
8136
f9c68163 81372012-03-09 Uros Bizjak <ubizjak@gmail.com>
8138
8139 PR target/52530
8140 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
8141 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
8142 to set code to 'q'.
8143 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
8144 (*movdi_internal_rex64): Use %E operand modifier for lea.
8145 (*movsi_internal): Ditto.
8146 (*lea_1): Ditto.
8147 (*lea<mode>_2): Ditto.
8148 (*lea_{3,4,5,6}_zext): Ditto.
8149 (*tls_global_dynamic_32_gnu): Ditto.
8150 (*tls_global_dynamic_64): Ditto.
8151 (*tls_dynamic_gnu2_lea_32): Ditto.
8152 (*tls_dynamic_gnu2_lea_64): Ditto.
8153 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
8154
8a3c7c63 81552012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
8156
8157 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
8158 redefine to be NULL if the current bit-size is different from the
8159 configured bit-size.
8160
8161 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
8162 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
8163 set the default tuning. Add asserts to make sure the cpu and tune
8164 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
8165 test whether the index is set, instead of > 0.
8166 (rs6000_file_start): Do not reset the default cpu if the current
8167 bit-size is different from the configured bit-size.
8168
439392ee 81692012-03-09 Tristan Gingold <gingold@adacore.com>
8170
8171 * config/vms/vms-crtlmap.map: Add comments.
8172 Add entries needed to build Ada RTS.
8173
11a439a1 81742012-03-09 Tristan Gingold <gingold@adacore.com>
8175
8176 * ginclude/stddef.h: Do not define __size_t on VMS.
8177
7714837c 81782012-03-09 Tristan Gingold <gingold@adacore.com>
8179
8180 * c-tree.h (c_default_pointer_mode): New variable.
8181 * c-decl.c (c_default_pointer_mode): New variable.
8182 (c_build_pointer_type): New function.
8183 (grokdeclarator): Call c_build_pointer_type instead
8184 of build_pointer_type.
8185
8186 * config/vms/vms-c.c: Include c-tree.h
8187 (saved_pointer_mode): New variable.
8188 (handle_pragma_pointer_size): New function.
8189 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
8190 (vms_c_register_pragma): Register __pointer_size and
8191 __required_pointer_size pragmas.
8192
9368e60a 81932012-03-09 Tristan Gingold <gingold@adacore.com>
8194
8195 * config/vms/vms-c.c (vms_construct_include_filename): New function.
8196 (vms_c_register_includes): Reference it.
8197
fb9912ea 81982012-03-09 Andrew Pinski <apinski@cavium.com>
8199
8200 PR middle-end/51988
8201 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
8202 print_generic_expr.
8203 (tree_ssa_phiopt_worker): Go through all the PHIs for
8204 value_replacement instead of just the singleton one.
8205 (value_replacement): Change return type to int. Return 0 instead of
8206 false.
9368e60a 8207 Allow the middle basic block to contain more than just the defining
8208 statement.
fb9912ea 8209 Handle non empty middle basic blocks.
8210 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
8211
62bc06ea 82122012-03-09 Jiangning Liu <jiangning.liu@arm.com>
8213
8214 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
8215 array reference and component reference.
8216 (analyze_scalar_evolution_for_address_of): New.
8217
d0295369 82182012-03-08 Jie Zhang <jzhang918@gmail.com>
8219
8220 PR target/49862
f9c68163 8221 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
d0295369 8222 (hwloop_pattern_reg): Fix set but not used warning.
8223 (bfin_reorg_loops): Remove unused parameter.
8224 (bfin_reorg): Update use of bfin_reorg_loops.
8225
df901db8 82262012-03-08 H.J. Lu <hongjiu.lu@intel.com>
8227
8228 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
8229 with integer parameters in registers.
8230 (gen_push): Push register in word_mode instead of Pmode.
8231 (ix86_emit_save_regs): Likewise.
f9c68163 8232 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
df901db8 8233 (gen_pop): Pop register in word_mode instead of Pmode.
8234 (ix86_emit_restore_regs_using_pop): Likewise.
8235 (ix86_expand_prologue): Replace Pmode with word_mode for push
8236 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
8237 restore RAX and R10 in word_mode.
8238 (ix86_emit_restore_regs_using_mov): Restore integer registers
8239 in word_mode.
8240 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
8241 word_mode.
8242 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
8243 (ix86_split_long_move): Likewise.
8244
8245 * config/i386/i386.md (W): New.
8246 (*push<mode>2_prologue): Replace :P with :W.
8247 (*pop<mode>1): Likewise.
8248 (*pop<mode>1_epilogue): Likewise.
8249 (push/pop peephole2): Use word_mode scratch registers.
8250
dea4eea4 82512012-03-08 Uros Bizjak <ubizjak@gmail.com>
8252
8253 * config/i386/predicates.md (indirect_branch_operand): Simplify.
8254
1c66468a 82552012-03-08 Georg-Johann Lay <avr@gjlay.de>
8256
8257 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
8258 for constants in [-63,63].
8259
27c1fe3b 82602012-03-08 Uros Bizjak <ubizjak@gmail.com>
8261
8262 PR target/52530
8263 Revert:
8264 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
8265
8266 * config/i386/i386.c (ix86_print_operand_address): Only handle
8267 zero-extended DImode addresses.
8268
5f031e88 82692012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8270
8271 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
8272 * configure: Regenerate.
8273
5af5ea69 82742012-03-08 Georg-Johann Lay <avr@gjlay.de>
8275
8276 PR target/52496
8277 * config/avr/avr.c (avr_mem_clobber): New static function.
8278 (avr_expand_delay_cycles): Add memory clobber operand to
8279 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
8280 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
8281 (enable_interrupt, disable_interrupt): New expander.
8282 (nopv, sleep, wdr): New expanders.
8283 (delay_cycles_1): Add memory clobber.
8284 (delay_cycles_2): Add memory clobber.
8285 (delay_cycles_3): Add memory clobber.
8286 (delay_cycles_4): Add memory clobber.
8287 (cli_sei): New insn from former "enable_interrupt",
8288 "disable_interrupt" with memory clobber.
8289 (*wdt): New insn from former "wdt" with memory clobber.
8290 (*nopv): Similar, but for "nopv".
8291 (*sleep): Similar, but for "sleep".
8292
acf1cb58 82932012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
8294 Kaz Kojima <kkojima@gcc.gnu.org>
8295
8296 PR target/52503
8297 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
8298 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
8299 (SUBTARGET_OVERRIDE_OPTIONS): Define.
8300
79c51b65 83012012-03-07 Uros Bizjak <ubizjak@gmail.com>
8302
8303 * config/i386/predicates.md (x86_64_zext_general_operand): New.
8304 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
8305 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
8306
c6cfe48f 83072012-03-07 Walter Lee <walt@tilera.com>
8308
8309 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
8310 REG_CFA_* notes for the stack pointer.
8311 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
8312 EH_RETURN_STACKADJ_RTX.
8313 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
8314 generate REG_CFA_* notes for the stack pointer.
8315 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
8316 by EH_RETURN_STACKADJ_RTX.
8317
cf19911a 83182012-03-07 Georg-Johann Lay <avr@gjlay.de>
8319
8320 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
8321 when __AVR_3_BYTE_PC__ is defined.
8322
eff54bae 83232012-03-07 Uros Bizjak <ubizjak@gmail.com>
8324
8325 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
8326 (ix86_print_operand): Handle '^'.
8327 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
8328 using P mode iterator. Add %^ to asm template to conditionally emit
8329 addr32 prefix.
8330 (*rep_movdi_rex64): Ditto.
8331 (*strsetdi_rex_1): Ditto.
8332 (*rep_stosdi_rex64): Ditto.
8333 (*strmov{si,hi,qi}_1): Add %^ to asm template to
8334 conditionally emit addr32 prefix.
8335 (*rep_mov{si,qi}): Ditto.
8336 (*strset{si,hi,qi}): Ditto.
8337 (*rep_stos{si,qi}): Ditto.
8338 (*cmpstrnqi_nz_1): Ditto.
8339 (*cmpstrnqi_1): Ditto.
8340 (*strlenqi_1): Ditto.
8341
f8ae29a7 83422012-03-07 H.J. Lu <hongjiu.lu@intel.com>
8343
8344 * config/i386/i386.c (function_value_64): Return pointers in
8345 word_mode instead of Pmode.
8346 (ix86_promote_function_mode): Likewise.
8347
1b3c3119 83482012-03-07 Richard Guenther <rguenther@suse.de>
8349
8350 * coverage.c (get_gcov_type): Use type_for_mode.
8351 (get_gcov_unsigned_t): Likewise.
8352 * expr.c (store_constructor): Use type_for_mode.
8353 (try_casesi): Likewise.
eff54bae 8354 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
1b3c3119 8355 (add_standard_iv_candidates): Use standard type trees.
8356 * dojump.c (do_jump): Remove dead code.
8357
3c9b85aa 83582012-03-07 Richard Guenther <rguenther@suse.de>
8359
8360 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
8361
481e2176 83622012-03-07 Richard Guenther <rguenther@suse.de>
8363
8364 * convert.c (strip_float_extensions): Move ...
8365 * tree.c (strip_float_extensions): ... here.
8366
3f149cc9 83672012-03-07 Georg-Johann Lay <avr@gjlay.de>
8368
8369 PR target/52484
8370 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
8371
3cea8318 83722012-03-07 Richard Guenther <rguenther@suse.de>
8373
8374 * omp-low.c (extract_omp_for_data): Use signed_type_for.
8375 (expand_omp_for_generic): Likewise.
8376 (expand_omp_for_static_nochunk): Likewise.
8377 (expand_omp_for_static_chunk): Likewise.
8378 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
8379 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
8380 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
8381 Use unsigned_type_for.
8382 (vect_create_cond_for_align_checks): Use signed_type_for.
8383
ed726cbf 83842012-03-07 Andrey Belevantsev <abel@ispras.ru>
8385
8386 PR rtl-optimization/52203
8387 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
8388 all callers to pass NULL except ...
8389 (reset_sched_cycles_in_current_ebb): ... here, save the value
8390 in new variable 'empty'. Increase issue_rate only for
eff54bae 8391 non-empty insns.
ed726cbf 8392
3f9e8673 83932012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
8394
8395 PR target/51417
eff54bae 8396 * Makefile.in: Let install-gcc-ar depend on installdirs,
8397 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
3f9e8673 8398 Don't double canonicalize if cross-compiling.
8399
69a2907c 84002012-03-07 Georg-Johann Lay <avr@gjlay.de>
8401
8402 PR target/52506
8403 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
8404 to: RAMPZ, RAMPY, RAMPX, RAMPD.
8405 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
8406
ee3ce577 84072012-03-07 Georg-Johann Lay <avr@gjlay.de>
8408
8409 PR target/52505
8410 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
8411 from RAM.
8412 * config/avr/avr.md (xload_8): Adjust insn length.
8413
be20cbdd 84142012-03-07 Georg-Johann Lay <avr@gjlay.de>
8415
8416 PR target/52461
8417 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
8418 if RAMPZ affects reading from RAM.
8419
8b046cbb 84202012-03-07 Richard Guenther <rguenther@suse.de>
8421
8422 PR pch/52518
8423 PR pch/38987
8424 * doc/invoke.texi (Precompiled Headers): Remove sentence that
8425 suggests you can include PCHs from inside another header.
8426
9737dd95 84272012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
8428
8429 PR middle-end/52515
8430 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
8431
4bc312c5 84322012-03-07 Kai Tietz <ktietz@redhat.com>
8433
8434 * doc/invoke.texi (fwritable-relocated-rdata): Document
8435 new Cygwin/MinGW target option.
8436 * config/i386/winnt.c (i386_pe_unique_section): Ignore
8437 reloc if flag -fwritable-relocated-rdata is not set.
8438 (i386_pe_section_type_flags): Likewise.
8439 * config/i386/cygming.opt (fwritable-relocated-rdata):
8440 Add new flag variable flag_writable_rel_rdata.
8441
b36be69d 84422012-03-07 Richard Guenther <rguenther@suse.de>
8443
8444 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
8445 precision against gimple constraints.
8446
7d7b0bac 84472012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
8448
8449 PR middle-end/52372
8450 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
8451 variables.
8452 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
8453 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
8454 variables.
8455 (init_emit_regs): Move associated initialization to...
8456 (init_emit_once): ...here.
8457
943b78f0 84582012-03-06 Richard Henderson <rth@redhat.com>
8459
8460 * config/m68k/m68k.h (ISA_HAS_TAS): New.
8461 * config/m68k/sync.md (atomic_test_and_set): Use it.
8462 (atomic_test_and_set_1): Likewise.
8463
506056fd 84642012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
8465
8466 PR target/50310
8467 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
8468 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
8469 (vector_ltgt<mode>): Likewise.
8470 (vector_ordered<mode>): Likewise.
8471 (vector_unordered<mode>): Likewise.
eff54bae 8472 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
506056fd 8473
5ab54790 84742012-03-06 Aldy Hernandez <aldyh@redhat.com>
8475
8476 * trans-mem.c: New typedef for tm_region_p.
8477 Define vector types for tm_region_p.
8478 (tm_region_init): Replace region_worklist to a vector called
8479 bb_regions.
8480
06e80d0a 84812012-03-06 Richard Guenther <rguenther@suse.de>
8482
8483 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
8484 MEM_REF with constant pointer operand.
8485
80b4d93e 84862012-03-06 Richard Guenther <rguenther@suse.de>
8487
8488 PR middle-end/52493
8489 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
8490
abb4c37a 84912012-03-06 Tristan Gingold <gingold@adacore.com>
8492
eff54bae 8493 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
abb4c37a 8494 (external_model_kind): Improve documentation.
8495 (vms_pragma_extern_model): Handle relaxed_redef.
8496 (vms_c_register_pragma): Allow expansion for nomember_alignment.
8497
3c90c054 84982012-03-06 Georg-Johann Lay <avr@gjlay.de>
8499
8500 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
8501 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
8502 Some more notes on EIND usage and reorder EIND subsection.
8503
f3925bb3 85042012-03-06 Tristan Gingold <gingold@adacore.com>
8505
8506 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
8507 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
8508
46d35275 85092012-03-06 Tristan Gingold <gingold@adacore.com>
8510
8511 * config/vms/t-vmsnative (version): Define.
8512 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
8513
ef4cf572 85142012-03-06 Andrey Belevantsev <abel@ispras.ru>
8515
8516 PR rtl-optimization/52250
8517 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
8518 to put note list into. Unconditionally call move_bb_info.
8519 (move_bb_info): Do not assert the blocks being in the same region,
46d35275 8520 just drop the note list if they are not.
ef4cf572 8521
3c2ed158 85222012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
8523
8524 PR target/51244
8525 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
8526 and use unified expansion logic.
8527 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
8528 closer to the existing movt insn.
8529 (negc): Rename insn to *negc. Add new expander.
8530 (movnegt): Use xor pattern for T bit negation. Reserve helper
8531 constant for negc pattern.
8532 (*movnegt): New insn and splitter.
8533
555c3766 85342012-03-05 Bernd Schmidt <bernds@codesourcery.com>
8535
8536 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
8537 PLUS_EXPR.
8538
e374c627 85392012-03-05 Richard Henderson <rth@redhat.com>
8540
8541 * genemit.c (main): Include "target.h" in insn-emit.c.
8542 * Makefile.in (insn-emit.o): Depend on TARGET_H.
8543 * config/sh/sync.md (atomic_test_and_set): Reference
8544 targetm.atomic_test_and_set_trueval instead of
8545 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
8546
d00acb08 85472012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
8548
8549 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
8550 Make static.
8551
549aab72 85522012-03-05 Steven Bosscher <steven@gcc.gnu.org>
8553
8554 * langhooks.c (add_builtin_type): New function.
8555 * langhooks.h (add_builtin_type): Export it.
8556 * config/mep/mep.c (mep_init_builtins): Use it.
8557 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
8558
665611e7 85592012-03-05 Jakub Jelinek <jakub@redhat.com>
8560
8561 PR debug/51902
8562 * tree.h (BLOCK_SAME_RANGE): Define.
8563 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
8564 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
8565 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
8566 isn't equal to supercontext fragment's fragment chain.
8567 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
8568 fragment origin.
8569 (blocks_nreverse_all): Likewise.
8570 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
8571 BLOCK_SUPERCONTEXT to supercontext fragment instead of
8572 supercontext fragment's fragment origin.
8573 * dwarf2out.c (add_high_low_attributes): If stmt has the same
8574 range as its parent (or parents thereof etc.), use the parent's
8575 DW_AT_ranges value instead of creating a new .debug_ranges range.
8576
dcf7024c 85772012-03-05 Richard Henderson <rth@redhat.com>
8578
8579 PR tree-opt/52242
8580 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
8581 * omp-low.c (expand_omp_atomic): Assume anything aligned to
8582 BIGGEST_ALIGNMENT is aligned.
8583
940bb42d 85842012-03-05 Richard Henderson <rth@redhat.com>
8585
8586 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
8587 * config/sh/sh.c: ... here.
8588
ba884946 85892012-03-05 Richard Henderson <rth@redhat.com>
8590
8591 PR target/52481
8592 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
8593 instead of calling negqi2 directly.
8594
1dfa4f7f 85952012-03-05 Aldy Hernandez <aldyh@redhat.com>
8596
8597 PR middle-end/52463
8598 * trans-mem.c (tm_region_init): Use last_basic_block.
8599
631f95de 86002012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
8601
8602 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
8603 * config/sh/sync.md (atomic_test_and_set): New expander.
8604 (tasb, atomic_test_and_set_soft): New insns.
8605 * config/sh/sh.opt (menable-tas): New option.
8606 * doc/invoke.texi (SH Options): Document it.
8607
ef0e6535 86082012-03-05 Richard Guenther <rguenther@suse.de>
8609
8610 * cfgloop.c (verify_loop_structure): Verify dominators before
8611 using them.
8612 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
8613 dominators from here.
8614 * graphite-scop-detection.c (create_sese_edges): Likewise.
8615 * loop-doloop.c (doloop_optimize_loops): Likewise.
8616 * loop-init.c (loop_optimizer_init): Likewise.
8617 * loop-unroll.c (unroll_and_peel_loops): Likewise.
8618 * loop-unswitch.c (unswitch_loops): Likewise.
8619 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
8620 * tree-parloops.c (parallelize_loops): Likewise. Verify
8621 only when checking is enabled.
8622 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
8623
e9eae8c8 86242012-03-05 Bernd Schmidt <bernds@codesourcery.com>
8625
8626 * genautomata.c (parse_automata_opt): New static function.
8627 (initiate_automaton_gen): Remove all option handling code. Remove
8628 argc argument. All callers changed.
eff54bae 8629 (main): Call init_rtx_reader_args_cb with the new function as argument.
e9eae8c8 8630
821ac701 86312012-03-05 Richard Guenther <rguenther@suse.de>
8632
8633 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
8634 * tree-if-conv.c (combine_blocks): Free post-dominator info
8635 after breaking it.
8636 * tree-parloops.c (create_parallel_loop): Free and re-compute
8637 dominator info after breaking it.
8638
4c79581c 86392012-03-05 Richard Guenther <rguenther@suse.de>
8640
8641 PR middle-end/52353
8642 * optabs.h (trapv_unoptab_p): New function.
8643 (trapv_binoptab_p): Likewise.
8644 * optabs.c (expand_binop): Use emit_libcall_block_1 with
8645 a proper equiv_may_trap argument.
8646 (expand_unop): Likewise.
8647 (emit_libcall_block_1): Take extra argument whether the
8648 instruction may trap. Renamed from ...
8649 (emit_libcall_block): ... this. New wrapper.
8650
d4afc00c 86512012-03-05 Jakub Jelinek <jakub@redhat.com>
8652
98f00c5b 8653 PR tree-optimization/51721
8654 * tree-vrp.c (register_edge_assert_for_2): If comparing
8655 lhs of right shift by constant with an integer constant,
8656 add ASSERT_EXPRs for the rhs1 of the right shift.
8657
d4afc00c 8658 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
8659
9ee917f7 86602012-03-05 Richard Guenther <rguenther@suse.de>
8661
8662 * tree.c (integer_zerop): Handle VECTOR_CSTs.
8663 (integer_onep): Likewise.
8664 (integer_all_onesp): Likewise.
8665
c2e23f8a 86662012-03-05 Georg-Johann Lay <avr@gjlay.de>
8667
8668 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
8669
7cb32b9e 86702012-03-04 H.J. Lu <hongjiu.lu@intel.com>
8671
8672 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
8673 instead of TARGET_64BIT.
8674
9868cee1 86752012-03-04 H.J. Lu <hongjiu.lu@intel.com>
8676
8677 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
8678 adjust_stack_insn.
8679
a8ebae34 86802012-03-04 H.J. Lu <hongjiu.lu@intel.com>
8681
8682 * config/i386/i386.c (ix86_print_operand_address): Only handle
8683 zero-extended DImode addresses.
8684
8f4b480e 86852012-03-04 Uros Bizjak <ubizjak@gmail.com>
8686
8687 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
8688 taken and cputaken as bool.
8689
ad797097 86902012-03-04 Uros Bizjak <ubizjak@gmail.com>
8691
8692 * config/i386/constraints.md (Ya): New internal constraint.
8693 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
8694 (*zero_extendsidi2_rex64): Add x,x alternative.
8695 (*zero_extendsidi2): Ditto. Add o,0 alternative.
8696 Remove flags reg clobber. Adjust corresponding splits.
8697 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
8698 zero_extendqisi2 expanders using SWI12 mode iterator.
8699 (zero_extend<mode>si2_and): Macroize insn from
8700 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
8701 splitters.
8702 (*zero_extend<mode>si2): Macroize insn from
8703 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
8704 (*zero_extend*2_movzbl_and): Remove insn patterns.
8705 (zero_extendqihi2_and): Merge corresponding splitter.
8706 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
8707 (*zero_extend*2_movzbl_and): Remove insn patterns.
8708 (*anddi_1): Split TYPE_IMOVX instructions.
8709 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
8710 (*andhi_1): Ditto.
8711 (and->zext splitter): Add splitter pattern.
8712 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
8713
0989c0ee 87142012-03-04 Sandra Loosemore <sandra@codesourcery.com>
8715
8716 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
8717 x86-specific text.
8718 (Debugging Options): Likewise.
8719 (Optimize Options): Likewise.
8720 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
8721 with other architectures. Use official processor names with correct
8722 spelling/capitalization. Fix formatting and grammar issues.
8723 (i386 and x86-64 Windows Options): Similar cleanup here.
8724
0f4929a3 87252012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
8726
8727 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
8728
3d7c0741 87292012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
8730
8731 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
8732 DBX_REGISTER_NUMBER.
8733
ed739787 87342012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
8735
8736 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
8737 operand is CONST_INT. Take COSTS_N_INSNS into account.
8738 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
8739 of shiftcosts.
8740
75ee1af4 87412012-03-02 Richard Henderson <rth@redhat.com>
8742
8743 * optabs.c (expand_atomic_test_and_set): Honor
8744 atomic_test_and_set_trueval even when atomic_test_and_set
8745 optab is not in use.
8746
07732170 87472012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
8748
8749 PR target/48596
8750 PR target/48806
8751 * config/sh/sh.c (sh_register_move_cost): Increase cost between
8752 GENERAL_REGS and FP_REGS for SImode.
8753
428d0ab7 87542012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
8755
8756 PR target/49486
8757 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
8758 (absdi2): New expander.
8759 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
8760
52671251 87612012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
8762
882390bb 8763 * config/sh/sync.md (atomic_exchange<mode>): New expander.
8764 (atomic_exchange<mode>_soft): New insn.
8765
87662012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
8767
8768 * config/sh/sync.md: Update copyright notice dates.
52671251 8769 (atomic_compare_and_swap<mode>): Use SImode for return value instead
8770 of QImode.
882390bb 8771 (atomic_compare_and_swap<mode>_soft): Likewise.
52671251 8772
87732012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
ad797097 8774
164fbbdf 8775 PR target/31640
8776 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
8777 * config/sh/sh.c: Update copyright notice dates.
8778 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
8779 alignment for TARGET_HARD_SH4.
ad797097 8780 (sh_option_override): Reduce default function alignment. Set
164fbbdf 8781 loop alignment to 4 bytes when not optimizing for size.
8782
d094f1d6 87832012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
8784
fa2f697a 8785 PR middle-end/50335
d094f1d6 8786 * doc/invoke.texi (floop-flatten): Remove.
8787 * toplev.c (process_options): Remove references to flag_loop_flatten.
8788 * tree-ssa-loop.c (gate_graphite_transform): Same.
8789 * common.opt (floop-flatten): Obsolete.
8790 * graphite-poly.c (apply_poly_transforms): Remove reference to
8791 flag_loop_flatten.
8792 * Makefile.in (graphite-flattening.o): Remove.
8793 * graphite-flattening.c: Remove.
8794
ea6ad4ae 87952012-03-02 Uros Bizjak <ubizjak@gmail.com>
8796
8797 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
8798 having mode compatible with the mode of previous compare. Substitute
8799 compare mode of previous compare with the mode, compatible
8800 with eliminated and previous compare.
8801
b1addacc 88022012-03-02 Peter Bergner <bergner@vnet.ibm.com>
8803
8804 * config/rs6000/dfp.md (floatdidd2): New define_insn.
8805
01c12879 88062012-03-02 Uros Bizjak <ubizjak@gmail.com>
8807
8808 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
8809 compatible with CCGOCmode and CCGCmode.
8810
508c1626 88112012-03-02 Peter Bergner <bergner@vnet.ibm.com>
8812
8813 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
8814
b49e3742 88152012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
8816
8817 * config/arm/arm.c (arm_sat_operator_match): New function.
8818 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
8819 * config/arm/arm.md ("insn" attribute): Add "sat" value.
8820 ("SAT", "SATrev"): New code iterators.
8821 ("SATlo", "SAThi"): New code iterator attributes.
8822 ("*satsi_<SAT:code>"): New pattern.
8823 ("*satsi_<SAT:code>_shift"): Likewise.
8824 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
8825 and "shift" attributes.
8826 ("arm_usatsihi"): Add "insn" attribute.
8827 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
8828 by powers of two. Do not allow shift by 32.
8829
7103ce44 88302012-03-02 Uros Bizjak <ubizjak@gmail.com>
8831
8832 PR target/46716
8833 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
8834 to pass the argument in the register of "natural" mode.
8835
95539e1d 88362012-03-02 Richard Guenther <rguenther@suse.de>
8837
8838 PR tree-optimization/52406
8839 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
8840 (struct indices): Add unconstrained_base member.
8841 (struct dr_alias): Remove unused vops member.
8842 (DR_UNCONSTRAINED_BASE): New define.
8843 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
8844 add indices to allow their disambiguation. Make DR_BASE_OBJECT
8845 be an artificial access that covers the whole indexed object,
8846 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
8847 plain decl base-objects to their MEM_REF variant.
8848 (dr_may_alias_p): When the base-object of either data reference
8849 has unknown size use only points-to information.
8850 (compute_affine_dependence): Make dumps easier to read and
8851 more verbose.
8852 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
8853 DR_REF when looking for packed references.
8854 (vect_supportable_dr_alignment): Likewise.
8855
9811ae10 88562012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
8857
7103ce44 8858 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
9811ae10 8859 Improve conditions for peepholes of loads followed by commutative
8860 operators.
7103ce44 8861 * config/arm/ldmstm.md: Regenerated.
9811ae10 8862
f5c0f433 88632012-03-02 Richard Guenther <rguenther@suse.de>
8864
8865 * BASE-VER: Set to 4.8.0.
8866
8f50e6ed 88672012-03-01 Richard Earnshaw <rearnsha@arm.com>
8868
8869 * config.gcc (obsolete): Add all ARM targets using the FPA.
8870 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
8871 * doc/install.texi: Avoid references to obsolete ARM ports.
8872
830730d6 88732012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
8874
8875 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
8876
43770c4d 88772012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
8878 Joern Rennecke <joern.rennecke@embecosm.com>
8879
8880 * doc/extend.texi: Expand and update information on interrupt
8881 attribute for Epiphany.
8882
bef96223 88832012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
8884
8885 * config/sh/sh-protos.h: Update copyright notice dates.
8886 * config/sh/sh.h: Likewise.
8887 * config/sh/sh.md: Likewise.
8888 * config/sh/constraints.md: Likewise.
8889 * config/sh/predicates.md: Likewise.
8890
b0b9387e 88912012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
8892
8893 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
8894 * config/sh/sh.c (tertiary_reload_operand): Likewise.
8895
7329bf9b 88962012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
8897
8898 * config/sh/constraints.md: Fix comment typo.
8899
aaeba072 89002012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8901
8902 PR target/52408
8903 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
8904 unsigned HOST_WIDE_INT.
8905 (zvdep_imm64): Likewise.
8906 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
8907 (vdepi_and): Likewise.
8908 Likewise for unamed 64-bit patterns.
8909 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
8910
85b6e75b 89112012-03-01 Alexandre Oliva <aoliva@redhat.com>
8912
8913 PR debug/52001
8914 PR rtl-optimization/52417
8915 * cselib.c (cselib_any_perm_equivs): New variable.
8916 (cselib_reset_table): Check that it's not set when not
8917 preserving constants.
8918 (cselib_add_permanent_equiv): Set it.
8919 (cselib_have_permanent_equivalences): New.
8920 (cselib_init, cselib_finish): Reset it.
8921 * cselib.h (cselib_have_permanent_equivalences): Declare.
8922 * alias.c (get_addr): Restore earlier behavior when there
8923 aren't permanent equivalences.
8924
ff560cc5 89252012-03-01 Steven Bosscher <steven@gcc.gnu.org>
8926
8927 * config/mn10300/mn10300-modes.def: Fix copyright notice.
8928 * config/v850/v850-modes.def: Fix copyright notice.
8929
12ffadfa 89302012-03-01 Georg-Johann Lay <avr@gjlay.de>
8931
8932 * doc/extend.texi (AVR Built-in Functions): Document
8933 __builtin_avr_flash_segment.
8934
8935 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
8936 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
8937 (*split.flash_segment): New insn-and-split.
8938 * config/avr/avr.c (avr_init_builtins): Add local variables:
8939 const_memx_void_node, const_memx_ptr_type_node,
8940 char_ftype_const_memx_ptr.
8941
963aee26 89422012-03-01 Jakub Jelinek <jakub@redhat.com>
8943
8944 PR tree-optimization/52445
8945 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
8946 add ssa_name_ver, offset and size fields and change store field
8947 to bool.
8948 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
8949 (add_or_mark_expr): Likewise. Only consider previous stores
8950 with the same size and offset.
8951 (nt_init_block): Only look at gimple_assign_single_p stmts,
8952 doesn't look at rhs2.
8953
5c332a23 89542012-03-01 Richard Guenther <rguenther@suse.de>
8955
8956 PR middle-end/52443
8957 * tree-cfg.c (verify_gimple_assign_unary): Allow any
8958 conversions from integral types to pointer types.
8959
47018d7b 89602012-03-01 Georg-Johann Lay <avr@gjlay.de>
8961
8962 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
7103ce44 8963 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
47018d7b 8964 unintentionally removed in r184616.
8965
fb7c1017 89662012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8967
8968 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
8969 3DNow from bdver1.
8970
2c9cbc56 89712012-02-29 Jakub Jelinek <jakub@redhat.com>
8972 Uros Bizjak <ubizjak@gmail.com>
8973
8974 PR target/52437
8975 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
8976 alternatives, add "e" constraint to the new last alternative
8977 and ! to last 3 alternatives.
8978
ffb4f309 89792012-02-29 Eric Botcazou <ebotcazou@adacore.com>
8980
8981 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
8982 DW_AT_artificial attributes at the end of the processing.
8983 (gen_array_type_die): Likewise.
8984 (gen_enumeration_type_die): Likewise.
8985 (gen_struct_or_union_type_die): Likewise.
8986 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
8987 the parent type.
8988
eee873f6 89892012-02-29 Jakub Jelinek <jakub@redhat.com>
8990
04df78dc 8991 PR middle-end/52419
8992 * expr.c (expand_assignment): If doing misaligned store that doesn't
8993 cover all mode bits, perform a RMW cycle.
8994
eee873f6 8995 PR tree-optimization/52429
8996 * tree-parloops.c (separate_decls_in_region_debug): Return early
8997 if var is LABEL_DECL.
8998
9f396eaf 89992012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9000
9001 PR tree-optimization/52424
9002 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
9003 calling dom_thread_across_edge.
9004
1602e4b0 90052012-02-29 Georg-Johann Lay <avr@gjlay.de>
9006
9007 * config/avr/avr.c: Move definition of TARGET macros to end of file.
9008
16d17f31 90092012-02-29 Georg-Johann Lay <avr@gjlay.de>
9010
9011 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
9012 * config/avr/avr.c (avr_output_bld): Remove unused function.
9013 (avr_out_sbxx_branch): Use "%T" to print bit position.
9014
3d78dda1 90152012-02-29 Georg-Johann Lay <avr@gjlay.de>
9016
9017 * config/avr/avr.md: Untabify.
9018
90192012-02-29 Georg-Johann Lay <avr@gjlay.de>
9020
9021 * config/avr/avr.md (eqne): New code iterator.
9022 (*dec-and-branchsi): Use it in text peephole's condition.
9023 (*dec-and-branchhi): Ditto.
9024 (*dec-and-branchqi): Ditto.
9025
f37ec592 90262012-02-29 Georg-Johann Lay <avr@gjlay.de>
9027
9028 PR target/49939
9029 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
9030 the device does not have the skip-bug.
9031
52bba6ce 90322012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
9033
9034 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
9035 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
9036 -mpretend-cmove): New.
9037
5df3e7ea 90382012-02-29 Jakub Jelinek <jakub@redhat.com>
9039
9040 PR bootstrap/52397
9041 * df.h (struct df_d): Adjust comment that hard_regs_live_count
9042 doesn't count DEBUG_INSN refs.
9043 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
9044 for DEBUG_INSN refs.
9045
31a56b87 90462012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9047
9048 Partially revert:
9049
9050 2012-02-20 Richard Guenther <rguenther@suse.de>
9051 PR tree-optimization/52298
9052 * tree-vect-stmts.c (vectorizable_load): Properly use
4e0c0c52 9053 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
31a56b87 9054
de60f90c 90552012-02-28 Aldy Hernandez <aldyh@redhat.com>
9056
9057 PR middle-end/51752
9058 * gimple.h (gimple_in_transaction): New.
9059 (gimple_set_in_transaction): New.
9060 (struct gimple_statement_base): Add in_transaction field.
9061 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
9062 transaction loads.
9063 (tree_ssa_lim_initialize): Compute transaction bits.
9064 * tree.h (compute_transaction_bits): Protoize.
9065 * trans-mem.c (tm_region_init): Use the heap to store BB
9066 auxilliary data.
9067 (compute_transaction_bits): New.
9068
042a76cf 90692012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9070
9071 * gcc.c (display_help): Document --help=common and sort entries
9072 alphabetically.
9073
ce7f5029 90742012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9075
9076 * doc/install.texi: Document check-$LANG specific shortcuts
9077
ca6c837f 90782012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
9079
9080 PR target/51534
9081 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
9082 and vcgtu.
9083 * config/arm/arm_neon.h: Regenerate.
9084 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
9085 (neon_vcgeu): New insn.
9086 (neon_vcgtu): Likewise.
9087 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
7103ce44 9088 (ops): Unsigned comparison intrinsics call a different builtin.
ca6c837f 9089
8b6c5604 90902012-02-28 Richard Guenther <rguenther@suse.de>
9091
9092 PR target/52407
9093 * config/i386/i386.c (ix86_expand_vector_set): Fix element
9094 ordering for the VEC_CONCAT for two element vectors for
9095 V2SFmode, V2SImode and V2DImode.
9096
736a63d4 90972012-02-28 Richard Earnshaw <rearnsha@arm.com>
9098
9099 PR target/49448
9100 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
9101 detecting big-endian triplets.
9102
9185f2d7 91032012-02-28 Richard Earnshaw <rearnsha@arm.com>
9104
9105 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
9106 mode if there is no type information available.
9107
a8d20b48 91082012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
9109
9110 PR tree-optimization/53207
9111 * doc/invoke.texi: Document as experimental and relying on graphite.
9112
1e946ea6 91132012-02-28 Georg-Johann Lay <avr@gjlay.de>
9114
9115 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
9116 of initializer to changes from r184614.
7103ce44 9117
627491ef 91182012-02-28 Richard Guenther <rguenther@suse.de>
9119
9120 PR tree-optimization/52395
9121 * tree-sra.c (build_ref_for_offset): Also look at the base
9122 TYPE_ALIGN when figuring out the alignment of the replacement.
9123
6b1b2cb7 91242012-02-28 Richard Guenther <rguenther@suse.de>
9125
9126 PR tree-optimization/52402
9127 * ipa-prop.c (ipa_modify_call_arguments): Properly use
9128 mis-aligned types when creating the accesses at the call site.
9129
c19a2f5f 91302012-02-28 Georg-Johann Lay <avr@gjlay.de>
9131
9132 * config/avr/builtins.def: New file.
9133 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
9134 * config/avr/avr.c (enum avr_builtin_id): Use it.
9135 (avr_init_builtins): Use it. And use avr_bdesc.
9136 (bdesc_1arg): Remove.
9137 (bdesc_2arg): Remove.
9138 (bdesc_3arg): Remove.
9139 (struct avr_builtin_description): Add field n_args.
9140 (avr_bdesc): New static variable using builtins.def.
9141 (avr_expand_builtin): Use it.
9142 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
9143 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
9144 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
9145
f1222c71 91462012-02-28 Georg-Johann Lay <avr@gjlay.de>
9147
9148 PR target/52148
9149 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
9150 match only one single hard register with respective hard reg rtx.
9151 (movmemx_<mode>): Ditto.
9152 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
9153 insn anatomy of movmem[x]_<mode>.
9154 (avr_out_movmem): Same for printing assembler and operand usage.
9155
e508bf98 91562012-02-28 Georg-Johann Lay <avr@gjlay.de>
9157
9158 PR target/49868
9159 PR target/52261
9160 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
9161 address spaces located outside of device flash.
9162
9163 * config/avr/avr.h (base_arch_s): Remove field n_segments.
9164 (mcu_type_s): Add field n_flash.
9165 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
9166 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
9167 (AVR_MCU): Add N_FLASH argument.
9168 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
9169 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
9170 macro __FLASH<n> if that address space makes sense for the device.
9171 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
9172 outside of target flash.
9173 (avr_asm_named_section): Ditto.
9174 (avr_asm_select_section): Ditto.
9175 (avr_addr_space_convert): Ditto.
9176 (avr_emit_movmemhi): Ditto.
9177 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
9178 address space is outside of device flash.
9179 (avr_insert_attributes): Ditto.
9180 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
9181 avr_current_arch->n_segments.
9182
1f2e8f6e 91832012-02-27 H.J. Lu <hongjiu.lu@intel.com>
9184
9185 PR target/52352
7103ce44 9186 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
1f2e8f6e 9187 (*movabs<mode>_2): Likewise.
9188
0f41c0cf 91892012-02-27 Jakub Jelinek <jakub@redhat.com>
9190
7510cf26 9191 PR target/52375
9192 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
9193 s_register_operand in the test instead of REG_P. Don't call
9194 gen_reg_rtx if it won't be used.
9195
0f41c0cf 9196 PR tree-optimization/52376
9197 * ipa-split.c (split_function): Ignore CLOBBER stmts.
9198
68b509aa 91992012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
9200
9201 * ifcvt.c (noce_get_condition): Check condition variable is not
9202 small_register_classes_for_mode_p before accepting.
9203
becba2b9 92042012-02-27 Uros Bizjak <ubizjak@gmail.com>
9205
9206 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
9207
347b9640 92082012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
9209
9210 Revert:
9211 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
9212 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
9213 tuning parameters.
9214 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
9215
5b9a8c31 92162012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
9217
9218 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
9219
7a288fec 92202012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
9221
9222 * config/sh/predicates.md: Remove blank lines.
9223 * config/sh/sh.c: Fix typos in comments.
9224 * config/sh/constraints.md: Likewise.
9225 * config/sh/sh.md: Remove blank lines.
9226 Fix typos in comments. Use ;; as comment characters.
9227
02be8f84 92282012-02-26 Walter Lee <walt@tilera.com>
9229
becba2b9 9230 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
02be8f84 9231 (replace_mov_pcrel_step2): Ditto.
9232
0be329ef 92332012-02-25 Alexandre Oliva <aoliva@redhat.com>
9234
fa5e407e 9235 PR debug/52001
9236 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
9237 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
9238 and locs that reference values newer than the non-canonical value
9239 at hand. Return the canonical value as a worst case.
9240 (memrefs_conflict_p): Walk canonical value's locs.
9241
0be329ef 9242 PR debug/52001
9243 * cselib.c (preserve_only_constants): Rename to...
9244 (preserve_constants_and_equivs): ... this. Split out...
9245 (invariant_or_equiv_p): ... this. Preserve plus expressions
9246 of other preserved expressions too.
9247 (cselib_reset_table): Adjust.
9248 * var-tracking.c (reverse_op): Use canonical value to build
9249 reverse operation.
9250
70c72222 92512012-02-23 Kai Tietz <ktietz@redhat.com>
9252
9253 * config/i386/i386.c (ix86_delegitimize_address): Handle
9254 UNSPEC_PCREL plus displacement.
9255
00c52bc9 92562012-02-24 Georg-Johann Lay <avr@gjlay.de>
9257
9258 PR target/52261
9259 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
9260 to test for unusedness in st X addressing.
9261
aa834ebc 92622012-02-24 Richard Guenther <rguenther@suse.de>
9263
9264 PR middle-end/52361
becba2b9 9265 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
aa834ebc 9266 (is_gimple_reg_type): Move inline ...
9267 * gimple.h (is_gimple_reg_type): ... here.
9268
e9d79eef 92692012-02-24 Richard Guenther <rguenther@suse.de>
9270
9271 PR middle-end/52361
9272 * passes.c (execute_function_todo): When verifying SSA form
9273 verify gimple form first.
9274 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
9275
7dd59140 92762012-02-24 Richard Guenther <rguenther@suse.de>
9277
9278 PR middle-end/52355
9279 * fold-const.c (fold_addr_of_array_ref_difference): New function.
becba2b9 9280 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
7dd59140 9281
10b55fcb 92822012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9283
9284 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
9285
8abed11e 92862012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9287
9288 * tree-phinodes.c (make_phi_node): Mark static.
9289 * tree-flow.h (make_phi_node): Remove extern decl.
9290 * doc/gimple.texi (make_phi_node): Remove documentation.
9291
7ef97146 92922012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9293
becba2b9 9294 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
7ef97146 9295 * tree-ssa-sccvn.c (print_scc): Ditto.
9296
6da426a8 92972012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9298
9299 * doc/passes.texi (Full redundancy elimination): Fix typo.
9300
98a3cc50 93012012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9302
9303 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
9304
148868c2 93052012-02-23 Eric Botcazou <ebotcazou@adacore.com>
9306
9307 PR bootstrap/52287
9308 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
9309
6b9c4a52 93102012-02-23 Uros Bizjak <ubizjak@gmail.com>
9311
9312 PR c/52290
9313 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
9314
8266991c 93152012-02-23 Georg-Johann Lay <avr@gjlay.de>
9316
9317 * config/avr/avr.md (code_stdname): Add ior, xor.
9318 (xior): New code iterator.
9319 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
9320 (*<code_stdname><mode>qi.byte1-3): Ditto.
9321
1a3c6423 93222012-02-23 Jakub Jelinek <jakub@redhat.com>
9323
9324 PR tree-optimization/52019
9325 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
9326 CLOBBER stmts.
9327
c3dd2023 93282012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9329
9330 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
9331 HAVE_INITFINI_ARRAY to work around namespace pollution in
9332 certain versions of newlib system headers.
9333 * config.in: Regenerate.
9334 * configure: Regenerate.
9335 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
9336 instead of HAVE_INITFINI_ARRAY.
9337
6bb01a79 93382012-02-22 Uros Bizjak <ubizjak@gmail.com>
9339
9340 PR target/52330
9341 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
9342 is not offsettable memory reference.
9343
5be63f82 93442012-02-22 Georg-Johann Lay <avr@gjlay.de>
9345
9346 PR target/18145
9347 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
9348 setting avr_need_clear_bss_p for __gnu_lto* symbols.
9349
c529cd37 93502012-02-22 Georg-Johann Lay <avr@gjlay.de>
9351
9352 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
6bb01a79 9353 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
c529cd37 9354
291426be 93552012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9356
9357 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
9358 library on Solaris 8 even without TLS support.
9359 * configure: Regenerate.
9360
48bcb852 93612012-02-22 Richard Guenther <rguenther@suse.de>
9362
9363 PR middle-end/52329
9364 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
9365 for GIMPLE_DEBUG stmts.
291426be 9366
3f06bd1b 93672012-02-22 Martin Jambor <mjambor@suse.cz>
9368
9369 PR middle-end/51782
9370 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
9371 according to the base object.
9372
b5b90b5a 93732012-02-22 Georg-Johann Lay <avr@gjlay.de>
9374
9375 PR rtl-optimization/50063
9376 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
9377 and 2 (8-bit SP) in operand 2.
9378 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
9379 setup to use movhi_sp_r instead of vanilla move to write SP.
9380 Adjust REG_CFA notes to superseed unspec.
9381 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
9382 of vanilla move.
9383 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
9384 known to be off) only with TARGET_NO_INTERRUPTS. Never use
9385 irq_state 1 (IRQ known to be on) here.
9386
769de935 93872012-02-21 Bernd Schmidt <bernds@codesourcery.com>
9388
9389 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
9390 WORDS_BIG_ENDIAN.
9391 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
9392 assign_hard_reg): Likewise.
9393
93942012-02-21 Georg-Johann Lay <avr@gjlay.de>
47f9f604 9395
9396 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
9397
769de935 93982012-02-21 Georg-Johann Lay <avr@gjlay.de>
21e3f268 9399
9400 * config/avr/avr.md
9401 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
9402 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
9403
769de935 94042012-02-21 Georg-Johann Lay <avr@gjlay.de>
184a25cd 9405
9406 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
9407 prototype from here to...
9408 * config/avr/avr.h: ...here.
9409
b600658e 94102012-02-21 Richard Earnshaw <rearnsha@arm.com>
9411
9412 PR target/52294
769de935 9413 * thumb2.md (thumb2_shiftsi3_short): Split register and
b600658e 9414 immediate shifts. For register shifts tie operands 0 and 1.
9415 (peephole2 for above): Check that register-controlled shifts
9416 have suitably tied operands.
9417
b65fb916 94182012-02-21 Quentin Neill <quentin.neill@amd.com>
9419
9420 PR target/52137
9421 * config/i386/bdver1.md (bdver1_call, bdver1_push,
9422 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
9423 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
9424 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
9425 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
9426 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
9427 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
9428 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
9429 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
9430 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
9431 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
9432 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
9433 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
9434 bdver1_ssevector_avx256_unaligned_load,
9435 bdver1_ssevector_sse128_unaligned_load,
9436 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
9437 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
9438 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
9439 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
9440 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
9441 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
9442 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
9443 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
9444 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
9445 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
9446 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
9447 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
9448 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
9449 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
9450 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
9451 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
9452 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
9453 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
9454 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
9455 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
9456 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
9457 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
9458 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
9459 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
9460 bdver1_ssediv_double_load, bdver1_ssediv_double,
9461 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
9462 Add "bdver2" attribute.
9463
dcba5e45 94642012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9465
9466 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
9467 default if possible and not specified otherwise.
9468
f2f6d96f 94692012-02-21 Richard Guenther <rguenther@suse.de>
9470
9471 PR middle-end/52314
9472 * gimplify.c (create_tmp_from_val): Use the main variant type
9473 for the type of the temporary we create.
9474
6b55f6d9 94752012-02-21 Richard Guenther <rguenther@suse.de>
9476
9477 PR tree-optimization/52324
9478 * gimplify.c (gimplify_expr): When re-gimplifying expressions
9479 do not gimplify a MEM_REF address operand if it is already
9480 in suitable form.
9481
e29fe543 94822012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9483
9484 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
9485 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
9486
7b0821ca 94872012-02-21 Richard Guenther <rguenther@suse.de>
9488
9489 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
9490 nested_in_vect_loop.
9491
e857485e 94922012-02-21 Jakub Jelinek <jakub@redhat.com>
9493
9494 PR tree-optimization/52318
9495 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
9496 vdef also to non-pure/const call stmts in the sequence.
9497
46d35275 94982012-02-21 Tristan Gingold <gingold@adacore.com>
9499
9500 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
9501
005acfe0 95022012-02-20 David S. Miller <davem@davemloft.net>
9503
9504 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
9505 don't use the "rd %pc" instruction on v9 for PIC register loads.
9506
43156aa3 95072012-02-20 Aldy Hernandez <aldyh@redhat.com>
9508
9509 PR middle-end/52141
9510 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
9511 in a transaction safe function.
9512
b527cbf0 95132012-02-20 Kai Tietz <ktietz@redhat.com>
9514
9515 PR target/52238
9516 * stor-layout.c (place_field): Handle desired_align for
9517 ms-bitfields, too.
9518
e4a9141c 95192012-02-20 Richard Guenther <rguenther@suse.de>
9520
9521 PR tree-optimization/52298
9522 * tree-vect-stmts.c (vectorizable_store): Properly use
9523 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
9524 outer loops.
9525 (vectorizable_load): Likewise.
9526 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9527 Access DR_STEP after ensuring it is not NULL.
9528
225ffc2f 95292012-02-20 Jakub Jelinek <jakub@redhat.com>
9530
9531 PR tree-optimization/52286
9532 * fold-const.c (fold_binary_loc): For (X & C1) | C2
9533 optimization use double_int_to_tree instead of build_int_cst_wide,
9534 rewrite to use double_int vars.
9535
1c6e4ce9 95362012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9537
9538 PR target/50166
9539 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
9540 Define _start.
9541 Remove -e 0 from $gcc_cv_ld invocation.
9542 Only use __GLIBC_PREREQ if defined.
9543 Enable on Solaris since Solaris 8 patch.
9544 (gcc_SUN_LD_VERSION): New macro.
9545 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
9546 gcc_SUN_LD_VERSION for version number format.
9547 * configure: Regenerate.
9548 * varasm.c (get_elf_initfini_array_priority_section): Set
9549 SECTION_NOTYPE for non-default priority.
9550 Use get_section instead of get_unnamed_section to emit
9551 .init_array/.fini_array with default priority.
9552
6a8f7b8b 95532012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
9554
9555 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
9556 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
9557 (mips_start_unique_function, mips_output_mips16_rdhwr)
9558 (mips_code_end): New functions.
9559 (TARGET_ASM_CODE_END): Define.
9560
7db87803 95612012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
9562
9563 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
9564 to stubs with non-sibling calls.
9565
ce3c28ad 95662012-02-18 Sandra Loosemore <sandra@codesourcery.com>
9567
9568 * doc/invoke.texi (-fira-* options): Copy-edit.
9569 (ira-* parameters): Copy-edit.
9570
1bed49cd 95712012-02-17 Sandra Loosemore <sandra@codesourcery.com>
9572
9573 * doc/invoke.texi: Minor copy-edits to bring into conformance with
9574 GCC coding conventions.
9575
720dbdb5 95762012-02-17 Sandra Loosemore <sandra@codesourcery.com>
9577
9578 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
9579 when used as adjectives.
9580
77d5f3a9 95812012-02-16 Sandra Loosemore <sandra@codesourcery.com>
9582
9583 * doc/invoke.texi: Clean up "that"/"which" confusion.
9584
c7e75c45 95852012-02-17 Steven Bosscher <steven@gcc.gnu.org>
9586
9587 * system.h: Poison SMALL_REGISTER_CLASSES
9588 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
9589 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
9590
97effc09 95912012-02-16 Jakub Jelinek <jakub@redhat.com>
9592
9593 PR tree-optimization/52285
9594 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
9595 when deciding if a call is a tail call or tail recursion.
9596
3f96cc96 95972012-02-16 Kai Tietz <ktietz@redhat.com>
9598
9599 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
9600 interger-constant displacement for UNSPEC_PCREL.
9601
830de880 96022012-02-16 Jakub Jelinek <jakub@redhat.com>
9603
72e3d363 9604 PR rtl-optimization/52208
9605 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
9606 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
9607
38091110 9608 PR tree-optimization/52255
9609 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
9610 loop->header has virtual PHI, but exit_e->dest doesn't, add
9611 virtual PHI to exit_e->dest and adjust all uses after the loop.
9612
830de880 9613 PR debug/52260
9614 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
9615 children with clone_tree_hash, not after it.
9616
dd76b89f 96172012-02-16 Iain Sandoe <iains@gcc.gnu.org>
9618
9619 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
9620 extended identifiers.
9621
70f89d12 96222012-02-16 Jakub Jelinek <jakub@redhat.com>
9623
cdf67cee 9624 PR middle-end/51929
9625 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
9626 a same_body_alias, also test whether e->callee isn't a former
9627 or current clone of the decl this is a same body alias of.
9628
70f89d12 9629 PR translation/52264
9630 * cgraphunit.c (verify_cgraph_node): Fix a typo.
9631
ea76f7e1 96322012-02-15 Sandra Loosemore <sandra@codesourcery.com>
9633
9634 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
9635
3619a9e5 96362012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9637
9638 PR target/52199
9639 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
9640 force_reg instead of copy_to_reg for better optimization. Force
9641 non-register or memory operands into a register.
9642
fd46ba2e 96432012-02-15 Andrew MacLeod <amacleod@redhat.com>
9644
9645 * extend.texi: Reserve upper bits of memory model for future use.
9646
0b6cf66f 96472012-01-15 Georg-Johann Lay <avr@gjlay.de>
9648 Anatoly Sokolov <aesok@post.ru>
9649 Eric Weddington <eric.weddington@atmel.com>
9650
9651 PR target/52261
9652 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
9653 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
9654 Rewrite initializers for .macro.
9655 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
9656 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
9657 atxmega32d4, atxmega32x1.
9658 avrxmega4: atxmega64a3, atxmega64d3.
9659 avrxmega5: atxmega64a1, atxmega64a1u.
9660 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
9661 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
9662 avrxmega7: atxmega128a1, atxmega128a1u.
9663 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
9664 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
9665 (struct base_arch_s): Rename reserved to xmega_p.
9666 Rename reserved2 to have_rampd.
9667 (AVR_XMEGA): New define.
9668 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
9669 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
9670 * config/avr/predicates.md (io_address_operand): Take into
9671 account SFR offset.
9672 (low_io_address_operand): Ditto.
9673 (high_io_address_operand): Ditto.
9674 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
9675 (enabled, movhi_sp_r): Use them.
9676 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
9677 cpp_define_formatted to built-in define __AVR_ARCH__.
9678 (__AVR_XMEGA__): New built-in define.
9679 (__AVR_HAVE_RAMPD__): New built-in define.
9680 (__AVR_HAVE_RAMPX__): New built-in define.
9681 (__AVR_HAVE_RAMPY__): New built-in define.
9682 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
9683
9684 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
9685 (avr_option_override): Initialize them.
9686 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
9687 (avr_init_expanders): Initialize them. No more block several calls.
9688 (emit_push_sfr): New static function.
9689 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
9690 Handle AVR_XMEGA.
9691 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
9692 (avr_print_operand): Print addreeses as symbols for
9693 RAMPX, RAMPY, RAMPD, CCP.
9694 (output_movhi): Handle AVR_XMEGA when writing to SP.
9695 (avr_out_movhi_mr_r_xmega): New static function.
9696 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
9697 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
9698 __RAMPD__, __CCP__ as needed.
9699
9700 * config/avr/multilib.h: Regenerate.
9701 * config/avr/t-multilib: Regenerate.
9702 * config/avr/avr-tables.opt: Regenerate.
9703
f260bce7 97042012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
9705
9706 PR tree-optimization/50561
9707 * graphite-flattening.c (lst_project_loop): Do not
9708 remove old scattering dimensions after flattening.
9709 (lst_do_flatten): Likewise.
9710
15b84087 97112012-02-15 Georg-Johann Lay <avr@gjlay.de>
9712
9713 * doc/extend.texi (AVR Built-in Functions): Remove doc for
9714 __builtin_avr_map8, __builtin_avr_map16.
9715 Document __builtin_avr_insert_bits.
9716
9717 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
9718 (insert_bits): New insn.
9719 (adjust_len.map_bits): Rename to insert_bits.
9720 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
9721 * avr-protos.h (avr_out_map_bits): Remove.
9722 (avr_out_insert_bits, avr_has_nibble_0xf): New.
9723 * config/avr/constraints.md (Cxf,C0f): New.
9724 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
9725 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
9726 New built-in define __BUILTIN_AVR_INSERT_BITS.
9727 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
9728 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
9729 (avr_move_bits): Rewrite.
9730 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
9731 functions.
9732 (avr_map_op_t): New typedef.
9733 (avr_map_op): New static variable.
9734 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
9735 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
9736 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
9737 (bdesc_3arg, avr_expand_triop_builtin): New.
9738 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
9739 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
9740 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
9741 (avr_map_equal_p, avr_map_sig_p): Remove.
9742 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
9743 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
9744 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
9745 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
9746 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
9747 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
9748
a905d913 97492012-02-14 Bernd Schmidt <bernds@codesourcery.com>
9750
9751 * config/c6x/c6x.md (reserve_cycles): New attribute.
9752 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
9753 don't reserve functional units after the branch occurs.
9754
3bd76a99 97552012-02-14 Aldy Hernandez <aldyh@redhat.com>
9756
9757 PR middle-end/52142
9758 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
9759 functions into non-tm_pure functions.
9760
073dcaef 97612012-02-14 Eric Botcazou <ebotcazou@adacore.com>
9762
9763 PR lto/52178
9764 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
9765 (iterative_hash_canonical_type): Likewise.
9766 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
9767 the dead edges.
9768
97692012-02-14 Bernd Schmidt <bernds@codesourcery.com>
38d8f4bb 9770
9771 * haifa-sched.c (prune_ready_list): Ensure that if there is a
6bb01a79 9772 sched-group insn, it either remains alone or the entire list is pruned.
38d8f4bb 9773
f9ed49a8 97742012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
9775
9776 * doc/install.texi (Prerequisites): Fix grammar.
9777 (Configuration): Likewise.
9778
257fb739 97792012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
9780
9781 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
9782 MPC as part of GCC before describing configuring with --with-gmp etc.
9783 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
9784 sources are present.
9785
65d3bb17 97862012-02-14 Jakub Jelinek <jakub@redhat.com>
9787
9788 PR debug/51950
9789 * dwarf2out.c (clone_tree_hash): New function.
9790 (copy_decls_walk): Use it instead of clone_tree.
9791
a32556d5 97922012-02-14 Richard Guenther <rguenther@suse.de>
9793
9794 PR tree-optimization/52244
9795 PR tree-optimization/51528
9796 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
9797 replacements for integral types.
9798
7ce78e23 97992012-02-14 Walter Lee <walt@tilera.com>
9800
9801 * config.gcc: Handle tilegx and tilepro.
9802 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
9803 tilegx and tilepro.
9804 Add HAVE_AS_TLS check for tilegx and tilepro.
9805 * configure: Regenerate.
9806 * doc/contrib.texi: Add Mat Hostetter and self.
9807 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
9808 Document instruction intrinsics and network accessing intrinsics.
9809 (TILEPro Built-in Functions): New node. Document instruction
9810 intrinsics and network accessing intrinsics.
9811 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
9812 (Specific, tilepro-*-linux*): Likewise.
9813 * doc/invoke.texi (TILE-Gx Options): New section.
9814 (TILEPro Options): New section.
9815 * doc/md.texi (TILE-Gx): New section.
9816 (TILEPro): New section.
9817 * common/config/tilegx/tilegx-common.c: New file.
9818 * common/config/tilepro/tilepro-common.c: New file.
9819 * config/tilegx/constraints.md: New file.
9820 * config/tilegx/linux.h: New file.
9821 * config/tilegx/mul-tables.c: New file.
9822 * config/tilegx/predicates.md: New file.
9823 * config/tilegx/sync.md: New file.
9824 * config/tilegx/t-tilegx: New file.
9825 * config/tilegx/tilegx-builtins.h: New file.
9826 * config/tilegx/tilegx-c.c: New file.
9827 * config/tilegx/tilegx-generic.md: New file.
9828 * config/tilegx/tilegx-modes.def: New file.
9829 * config/tilegx/tilegx-multiply.h: New file.
9830 * config/tilegx/tilegx-protos.h: New file.
9831 * config/tilegx/tilegx.c: New file.
9832 * config/tilegx/tilegx.h: New file.
9833 * config/tilegx/tilegx.md: New file.
9834 * config/tilegx/tilegx.opt: New file.
9835 * config/tilepro/constraints.md: New file.
9836 * config/tilepro/gen-mul-tables.cc: New file.
9837 * config/tilepro/linux.h: New file.
9838 * config/tilepro/mul-tables.c: New file.
9839 * config/tilepro/predicates.md: New file.
9840 * config/tilepro/t-tilepro: New file.
9841 * config/tilepro/tilepro-builtins.h: New file.
9842 * config/tilepro/tilepro-c.c: New file.
9843 * config/tilepro/tilepro-generic.md: New file.
9844 * config/tilepro/tilepro-modes.def: New file.
9845 * config/tilepro/tilepro-multiply.h: New file.
9846 * config/tilepro/tilepro-protos.h: New file.
9847 * config/tilepro/tilepro.c: New file.
9848 * config/tilepro/tilepro.h: New file.
9849 * config/tilepro/tilepro.md: New file.
9850 * config/tilepro/tilepro.opt: New file.
9851
4e158897 98522012-02-14 Jakub Jelinek <jakub@redhat.com>
9853
9854 PR tree-optimization/52210
9855 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
9856 vect_model_simple_cost with two entry vect_def_type array instead
9857 of an address of dt.
9858
0ffa2e92 98592012-02-14 Richard Guenther <rguenther@suse.de>
9860
9861 PR lto/52178
9862 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
9863 Do not stream DECL_QUALIFIER.
9864 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
9865 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
9866 (find_decls_types_r): Do not walk DECL_QUALIFIER.
9867
fc0d4990 98682012-02-14 Jakub Jelinek <jakub@redhat.com>
9869
9870 PR c/52181
9871 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
9872 newdecl.
9873
2af89801 98742012-02-13 Jakub Jelinek <jakub@redhat.com>
9875
9876 PR bootstrap/52172
9877 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
9878 * cselib.c (cselib_subst_to_values_from_insn): New function.
9879 * sched-deps.c (add_insn_mem_dependence,
9880 sched_analyze_1, sched_analyze_2): Use it.
9881
6e3803fb 98822012-02-13 Jan Hubicka <jh@suse.cz>
9883
9884 PR middle-end/52214
9885 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
9886
9a8d01ee 98872012-02-13 Eric Botcazou <ebotcazou@adacore.com>
9888
9889 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
9890 (GTM_SELF_SPECS): Define if not already defined.
9891 (driver_self_specs): Add GTM_SELF_SPECS.
6bb01a79 9892 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
9893 (GTM_SELF_SPECS): Define.
9a8d01ee 9894 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
9895 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
9896
0416ca72 98972012-02-13 Jakub Jelinek <jakub@redhat.com>
9898
533ae4c7 9899 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
9900 away if seen.
9901
6bb01a79 9902 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
0e508b49 9903
0416ca72 9904 PR middle-end/52230
6bb01a79 9905 * omp-low.c (expand_omp_for): If a static schedule without chunk size
9906 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
0416ca72 9907
c5519669 99082012-02-13 Andrew MacLeod <amacleod@redhat.com>
9909
9910 PR c/52190
9911 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
9912
dc35e8f6 99132012-02-13 Richard Guenther <rguenther@suse.de>
9914
9915 PR translation/52211
9916 * passes.c (enable_disable_pass): Fix typo.
9917
7e5608ca 99182012-02-13 Jakub Jelinek <jakub@redhat.com>
9919
9920 PR middle-end/52209
9921 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
9922 XOR for reduce_bit_field if type is unsigned.
9923
7a0443dc 99242012-02-12 Eric Botcazou <ebotcazou@adacore.com>
9925
9926 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
9927 disallow changes from SFmode to mode with different size in FP regs.
9928
99292012-02-12 Robert Millan <rmh@gnu.org>
6bb01a79 9930 Gerald Pfeifer <gerald@pfeifer.com>
a40d9b7c 9931
9932 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
9933 Tweak comment.
9934
f0421938 99352012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
9936
9937 PR rtl-optimization/52175
9938 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
9939 to frame-related instructions.
9940
ee7ee34d 99412012-02-10 Jason Merrill <jason@redhat.com>
9942
9943 PR c++/51910
9944 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
9945 (demangle_new_symbols): Fill it.
9946 (scan_linker_output): Walk it.
9947 (start_tweaking): Split out from scan_linker_output.
9948 (maybe_tweak): Update sym->chosen.
9949 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
9950
f8d0f01f 99512012-02-11 Jakub Jelinek <jakub@redhat.com>
9952
9953 PR debug/52132
6bb01a79 9954 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
f8d0f01f 9955
67755ff0 99562012-02-11 Uros Bizjak <ubizjak@gmail.com>
9957
9958 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
9959 having the same mode as previous compare.
9960
4cdb9b47 99612012-02-10 Eric Botcazou <ebotcazou@adacore.com>
9962
9963 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
9964 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
9965 (nonlocal_goto_internal): Likewise.
9966 (nonlocal_goto): Emit a use and an indirect jump directly.
9967
c311fe7e 99682012-02-10 Andrew MacLeod <amacleod@redhat.com>
9969
9970 PR c/52190
9971 * doc/extend.texi : Update comments for __atomic_compare_exchange and
9972 __atomic_{is,always}_lock_free.
9973
c766750c 99742012-02-10 Uros Bizjak <ubizjak@gmail.com>
9975
9976 PR target/52146
9977 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
c290746e 9978 negative constant address for TARGET_X32.
c766750c 9979
b65fbe25 99802012-02-10 Richard Henderson <rth@redhat.com>
9981
67755ff0 9982 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
9983 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
9984 for GIMPLE_TRANSACTION. Tidy if's into a switch.
b65fbe25 9985
5df2530b 99862012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9987 Ira Rosen <irar@il.ibm.com>
9988
9989 PR tree-optimization/50031
9990 * targhooks.c (default_builtin_vectorization_cost): Handle
9991 vec_promote_demote.
9992 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
9993 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
9994 all types of reduction and pattern statements.
9995 (vect_estimate_min_profitable_iters): Likewise.
9996 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
9997 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
9998 for explicit realigns.
9999 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
10000 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
10001 vec_promote_demote.
10002 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
10003 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
10004 vec_perm for VSX and handle vec_promote_demote.
10005
06308d2a 100062012-02-10 Jakub Jelinek <jakub@redhat.com>
10007
10008 PR middle-end/52177
10009 * builtins.c (fold_builtin_atomic_always_lock_free,
10010 expand_builtin_atomic_always_lock_free,
67755ff0 10011 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
10012 Return and/or test boolean_true_node/boolean_false_node instead of
06308d2a 10013 integer_one_node/integer_zero_node.
10014
d3443011 100152012-02-10 Jan Hubicka <jh@suse.cz>
10016
10017 PR middle-end/48600
10018 * predict.c (predict_paths_for_bb): Prevent looping.
10019 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
10020
151d02b1 100212012-02-10 Roman Zhuykov <zhroma@ispras.ru>
10022
10023 * config/arm/arm.c (output_move_double): In one case properly
10024 count number of instructions that will be emitted.
10025
6d36105a 100262012-02-10 Richard Guenther <rguenther@suse.de>
10027
10028 PR translation/52193
10029 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
10030
670fc240 100312012-02-09 Peter Bergner <bergner@vnet.ibm.com>
10032
10033 PR middle-end/52140
10034 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
10035
d5d74c5f 100362012-02-09 Jakub Jelinek <jakub@redhat.com>
10037
10038 PR debug/52165
10039 * var-tracking.c (emit_note_insn_var_location): If
10040 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
10041 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
10042 non-NOTE_DURING_CALL_P insn.
10043
d95cfd30 100442012-02-09 Bin Cheng <bin.cheng@arm.com>
10045
10046 PR middle-end/51867
10047 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
10048
cbe25b89 100492012-02-08 Magnus Granberg <zorry@gentoo.org>
10050
10051 PR driver/48524
67755ff0 10052 * gcc.c (switch_matches) Support switches with separated form,
10053 -D and -U.
cbe25b89 10054
72851b68 100552012-02-08 Georg-Johann Lay <avr@gjlay.de>
10056
10057 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
10058 (SP_ADDR): Ditto.
10059 (RAMPZ_ADDR): Ditto.
10060 * config/avr/avr.c (avr_addr_t): New typedef.
10061 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
10062 (avr_init_expanders): Initialize it.
10063 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
10064 SREG_ADDR.
10065 (expand_epilogue): Ditto.
10066 (avr_print_operand): Ditto.
10067 (avr_file_start): Ditto.
10068 (avr_emit_movmemhi): Ditto.
10069
8b0287e2 100702012-02-08 Richard Guenther <rguenther@suse.de>
10071
10072 PR tree-optimization/46886
10073 * tree-flow.h (do_while_loop_p): Declare.
10074 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
67755ff0 10075 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
8b0287e2 10076
3b967909 100772012-02-08 Andrew MacLeod <amacleod@redhat.com>
10078
10079 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
10080 always succeed for integers larger than a native word.
10081
3e527904 100822012-02-08 Richard Guenther <rguenther@suse.de>
10083
10084 PR rtl-optimization/52170
10085 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
10086 properly handle integer vector modes.
10087
5a23e907 100882012-02-08 Jakub Jelinek <jakub@redhat.com>
10089
8d354582 10090 PR gcov-profile/52150
10091 * coverage.c: Include target.h.
10092 (build_var): Call targetm.strip_name_encoding on the assembler name.
10093 Change one _ into . or $ if the target allows it.
10094 * Makefile.in (coverage.o): Depend on $(TARGET_H).
10095
5a23e907 10096 PR rtl-optimization/52139
10097 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
10098 is a BARRIER after emit_insn_after_noloc, move BB_END
10099 to the last non-BARRIER insn before it.
10100
9a9bf421 101012012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
10102
10103 PR middle-end/24306
10104 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
10105 (mips_gimplify_va_arg_expr): Call it instead of
10106 std_gimplify_va_arg_expr.
10107
ffc589a8 101082012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10109
10110 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
10111 message for -mno-pointers-to-nested-function.
10112
476e59ce 101132012-02-07 Eric Botcazou <ebotcazou@adacore.com>
10114
10115 PR middle-end/51994
10116 * expr.c (get_inner_reference): If there is an offset, add a negative
10117 bit position to it (if any).
10118
ec458c01 101192012-02-07 Jakub Jelinek <jakub@redhat.com>
10120
10121 PR rtl-optimization/52060
10122 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
10123 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
10124 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
10125 and/or i0src_copy2 when needed.
10126
47c380e4 101272012-02-07 Jakub Jelinek <jakub@redhat.com>
10128
1d784785 10129 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
10130 or LTOPLUGINSONAME if have_c.
10131
47c380e4 10132 * config/freebsd-spec.h: Add comment about what macros can be defined
10133 in this header.
10134 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
10135 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
10136 here instead.
10137
57d4f313 101382012-02-07 Richard Guenther <rguenther@suse.de>
10139
10140 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
10141 newline in -alias dumps.
10142
b86a2627 101432012-02-07 Kai Tietz <ktietz@redhat.com>
67755ff0 10144 Dave Korn <dave.korn.cygwin@gmail.com>
b86a2627 10145
10146 PR target/40068
10147 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
10148 Take care that typinfo gets dllexport-attribute.
10149
792729b8 101502012-02-07 Jakub Jelinek <jakub@redhat.com>
10151
10152 PR middle-end/52074
10153 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
10154 if modifier < EXPAND_SUM call force_operand on the result.
10155
83debce3 101562012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
10157
10158 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
10159 adding __forwarder_dst__ prefix if a forwarder_section attribute is
10160 present.
10161 (epiphany_function_type): Replace types for specific interrupts with
10162 EPIPHANY_FUNCTION_INTERRUPT.
10163 (EPIPHANY_INTERRUPT_P): Update.
10164 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
10165 New static function.
10166 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
10167 <disinterrupt>: Affects type identity.
10168 (epiphany_handle_interrupt_attribute): Handle variable number of
10169 arguments.
10170 (epiphany_compute_function_type): Update for new
10171 epiphany_function_type definition.
10172 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
10173 handlers with a longcall forwarder.
10174 (epiphany_start_function): Handle multiple interrupt arguments and/or
10175 forwarder_section attribute.
10176
67755ff0 10177 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
10178 libgloss.
fad55529 10179
fd68342f 101802012-02-07 Alan Modra <amodra@gmail.com>
10181
10182 PR target/52107
10183 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
10184 subregs of TFmode.
10185
de8d8819 101862012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10187
10188 PR tree-optimization/50969
10189 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
10190 use vec_perm rather than vector_stmt.
10191 (vect_model_load_cost): Likewise.
10192 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
10193 vec_perm to be the same as other vector statements.
10194 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
10195 cost of vec_perm for TARGET_VSX.
10196
f509e778 101972012-02-06 Richard Guenther <rguenther@suse.de>
10198
10199 PR tree-optimization/52115
10200 * tree-sra.c (access_has_replacements_p): New function.
10201 (sra_modify_assign): Use it to decide whether a use is uninitialized.
10202
c86dbacd 102032012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
10204
10205 PR middle-end/52047
10206 * trans-mem.c (expand_call_tm): Add an assertion.
10207 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
10208 functions.
10209
316830ac 102102012-02-06 Richard Guenther <rguenther@suse.de>
10211
10212 PR tree-optimization/50955
10213 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
10214 raise cost of expressions that replace an address with an
10215 expression based on a different pointer.
10216
98d44ce4 102172012-02-06 Jakub Jelinek <jakub@redhat.com>
10218
10219 PR target/52129
10220 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
10221 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
10222
0737bc6a 102232012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
10224
10225 PR c++/48680
10226 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
10227 -Weffc++ and specify guidelines come from second edition.
10228
cc798c09 102292012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
10230
10231 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
10232 (sibcall_value_multiple_internal, call_split, call_internal_direct)
10233 (call_direct_split, call_value_split, call_value_internal_direct)
10234 (call_value_direct_split, call_value_multiple_split): Use jal and
10235 jal_macro attributes.
10236
677315b6 102372012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
10238
10239 * reload1.c (reload_regs_reach_end_p): Replace with...
10240 (reload_reg_rtx_reaches_end_p): ...this function.
10241 (new_spill_reg_store): Update commentary.
10242 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
10243 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
10244 before setting new_spill_reg_store.
10245 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
10246 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
10247 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
10248 for non-spill reload registers.
10249
bed8b93b 102502012-02-05 Ira Rosen <irar@il.ibm.com>
10251
10252 PR tree-optimization/52091
10253 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
10254 (vect_is_simple_use_1): Likewise.
10255 * tree-vect-loop.c (vectorizable_reduction): Update calls
10256 to vect_is_simple_use_1 and vect_is_simple_use.
10257 (vectorizable_live_operation): Likewise.
10258 * tree-vect-patterns.c (widened_name_p,
67755ff0 10259 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
bed8b93b 10260 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
67755ff0 10261 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
10262 vectorizable_shift,vectorizable_operation, vectorizable_store,
10263 vectorizable_load): Likewise.
bed8b93b 10264 (vect_is_simple_cond): Add an argument, pass it to
10265 vect_is_simple_use_1.
10266 (vectorizable_condition): Update calls to vect_is_simple_cond,
10267 vect_is_simple_use.
10268 (vect_is_simple_use): Add an argument, the statement in which
10269 OPERAND is used. Check that if OPERAND's def stmt is a double
10270 reduction phi node, the use is a phi node too.
10271 (vect_is_simple_use_1): Add an argument, pass it to
10272 vect_is_simple_use.
10273 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
10274 to vect_is_simple_use.
10275
08b31038 102762012-02-04 Jakub Jelinek <jakub@redhat.com>
10277
56134a9f 10278 PR rtl-optimization/52095
10279 * modulo-sched.c (dump_insn_locator): New function.
10280 (loop_canon_p, sms_schedule): Use it.
10281
08b31038 10282 PR rtl-optimization/52113
10283 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
10284 even for decomposable shift/zext insns.
10285
4a169b5e 102862012-02-03 Jakub Jelinek <jakub@redhat.com>
10287 Zdenek Dvorak <ook@ucw.cz>
10288
10289 PR rtl-optimization/52092
10290 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
10291 on get_iv_value result.
10292
24d7beb3 102932012-02-02 Andrew Pinski <apinski@cavium.com>
10294
10295 PR middle-end/47982
10296 PR middle-end/43967
10297 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
10298
00c00a40 102992012-02-02 Jakub Jelinek <jakub@redhat.com>
10300
10301 PR middle-end/48071
10302 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
10303
169d9eaf 103042012-02-02 Vladimir Makarov <vmakarov@redhat.com>
10305
10306 PR rtl-optimization/49800
10307 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
10308 (sched_finish): Call regstat_free_n_sets_and_refs.
10309
a13b68f1 103102012-02-02 Jia Liu <proljc@gmail.com>
10311
10312 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
10313 than operand 2.
10314
6bb01a79 103152012-02-02 Jan Hubicka <jh@suse.cz>
10316 Tom de Vries <tom@codesourcery.com>
b0898cb7 10317
10318 PR middle-end/51998
10319 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
10320 * varpool.c (varpool_analyze_pending_decls): Likewise.
10321
b9fdd12b 103222012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
10323 Jayant R Sonar <jayant.sonar@kpitcummins.com>
10324
10325 * config.gcc: Add cr16-* support.
10326
10327 * doc/extend.texi: Document cr16 extensions.
10328 * doc/install.texi: Document cr16 install.
10329 * doc/invoke.texi: Document cr16 options.
10330 * doc/md.texi: Document cr16 constraints.
10331
10332 * common/config/cr16/cr16-common.c: New file.
10333 * config/cr16/cr16.c: New file.
10334 * config/cr16/cr16.h: New file.
10335 * config/cr16/cr16.md: New file.
10336 * config/cr16/cr16.opt: New file.
10337 * config/cr16/cr16-protos.h: New file.
10338 * config/cr16/predicates.md: New file.
10339 * config/cr16/constraints.md: New file.
10340 * config/cr16/t-cr16: New file.
10341
ddee24bb 103422012-02-02 Jakub Jelinek <jakub@redhat.com>
10343
80b67e55 10344 PR target/52086
10345 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
10346 that operands[2] is either immediate, or q_regs_operand.
10347
ddee24bb 10348 PR tree-optimization/52073
10349 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
10350 a pattern stmt for pattern uses, ignore uses outside of the loop.
10351
02a011e9 103522012-02-01 Georg-Johann Lay <avr@gjlay.de>
10353
10354 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
10355 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
10356 (OUT_AS1, OUT_AS2): Remove.
10357
5dcaa548 103582012-02-01 Georg-Johann Lay <avr@gjlay.de>
10359
10360 PR rtl-optimization/51374
10361 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
10362 to cross other volatile_refs_p insns.
10363
b75cad1f 103642012-02-01 Richard Guenther <rguenther@suse.de>
10365
10366 * doc/invoke.texi (fno-inline): Clarify documentation.
10367 (finline-small-functions): Likewise.
10368 (finline-functions): Likewise.
10369 * common.opt (finline): Adjust comment and documentation.
10370 (finline-small-functions): Clarify documentation.
10371 (finline-functions): Likewise.
10372 (finline-functions-called-once): Likewise.
10373
b589b3b4 103742012-02-01 Tristan Gingold <gingold@adacore.com>
10375
10376 * c-typeck.c (composite_type): Keep mode for pointers.
10377
e49cbd3a 103782012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
10379
10380 * function.h (regno_reg_rtx): Adjust comment.
10381 * reginfo.c (init_reg_modes_target): Only use the previous mode
10382 if it fits within one register. Remove MIPS comment.
10383
3e9db8fa 103842012-01-31 Jakub Jelinek <jakub@redhat.com>
10385
10386 PR bootstrap/52058
10387 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
10388
a6dcd7c0 103892012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10390
10391 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
10392 to srak instruction.
10393
b004da1e 103942012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
10395
67755ff0 10396 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
b004da1e 10397
b74ba78c 103982012-01-31 Jakub Jelinek <jakub@redhat.com>
10399
10400 PR bootstrap/52041
10401 PR bootstrap/52039
10402 PR target/51974
10403 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
10404
192d2ed8 104052012-01-31 Richard Guenther <rguenther@suse.de>
10406
10407 PR tree-optimization/51528
10408 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
10409 assigns.
10410
32a07a44 104112012-01-31 Jakub Jelinek <jakub@redhat.com>
10412
10413 PR bootstrap/52041
10414 PR bootstrap/52039
10415 PR target/51974
10416 * ree.c (add_removable_extension): Change def_map argument
10417 to unsigned *, store in def_map 1 + offset into *insn_list vector
10418 instead of pointers into the vector.
10419 (find_removable_extensions): Adjust caller.
10420
97bdce59 104212012-01-30 Georg-Johann Lay <avr@gjlay.de>
10422
10423 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
10424 Transform all "* quoted-c-code" to { c-code }.
10425 Remove redundant test for "optimize" in combine patterns.
10426 Move (include "avr-dimode.md") to end of file.
10427
232b7e7e 104282012-01-30 Bin Cheng <bin.cheng@arm.com>
10429
10430 PR target/51835
10431 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
10432 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
10433
a4d16d30 104342012-01-30 Richard Guenther <rguenther@suse.de>
10435
10436 PR tree-optimization/52028
10437 * tree-loop-distribution.c (ldist_gen): Properly update
10438 virtual SSA form.
10439
30e4f955 104402012-01-30 Jakub Jelinek <jakub@redhat.com>
10441
f9a7b553 10442 PR debug/52027
10443 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
10444 set_cur_line_info_table if not emitting debug info.
10445
3a542b98 10446 PR tree-optimization/52046
10447 * tree-vect-patterns.c (check_bool_pattern): Give up if
10448 a comparison could throw.
10449
30e4f955 10450 PR debug/52048
10451 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
10452
b7b10fb5 104532012-01-30 Richard Guenther <rguenther@suse.de>
10454
10455 PR tree-optimization/52045
10456 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
10457 SSA form if cfgcleanup did anything.
10458
e723655c 104592012-01-30 Richard Guenther <rguenther@suse.de>
10460
10461 PR tree-optimization/52045
10462 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
10463 before computing final todo.
10464
ce0c5a57 104652012-01-30 Richard Guenther <rguenther@suse.de>
10466
10467 PR tree-optimization/51528
10468 * tree-sra.c (sra_modify_assign): Re-factor in preparation
10469 for PR51528 fix.
10470
a1cf9167 104712012-01-30 Paolo Bonzini <bonzini@gnu.org>
10472
10473 * df-problems.c (df_kill_notes): Check that the use refers
10474 to the note under examination.
10475
6d293a49 104762012-01-30 Eric Botcazou <ebotcazou@adacore.com>
10477
10478 PR target/51920
10479 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
10480 parameter and use short-lived pseudos.
10481 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
10482 (sparc_expand_vector_init): Const-ify local variables and adjust
10483 calls to above functions.
10484
578c09ca 104852012-01-30 Georg-Johann Lay <avr@gjlay.de>
10486
10487 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
10488
009f90be 104892012-01-29 Sandra Loosemore <sandra@codesourcery.com>
10490
10491 * doc/invoke.texi: Make usage of "compile time" and
10492 "run time"/"runtime" consistent throughout the file.
10493
669cf718 104942012-01-29 Uros Bizjak <ubizjak@gmail.com>
10495
67755ff0 10496 * config/alpha/alpha.c (alpha_option_override): Default to
669cf718 10497 full IEEE compliance mode for Go language.
10498
0cfd09e4 104992011-01-29 Tijl Coosemans <tijl@coosemans.org>
10500
10501 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
10502 (LINK_SSP_SPEC): Define.
10503
16309fef 105042012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10505
10506 PR target/51871
10507 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
10508 stubs.
10509
82e24083 105102012-01-28 Sandra Loosemore <sandra@codesourcery.com>
10511
10512 * doc/invoke.texi: Correct hyphenation of "floating point",
10513 "double precision", and related terminology throughout the file.
10514
2d05dfad 105152012-01-28 Jakub Jelinek <jakub@redhat.com>
10516
10517 PR target/52006
10518 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
10519 arm_general_register_operand predicate for operand 2 instead of
10520 register_operand.
10521
c307f106 105222012-01-27 Ian Lance Taylor <iant@google.com>
10523
10524 PR go/47656
10525 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
10526 * builtins.c (expand_builtin_init_trampoline): Add onstack
10527 parameter. Change caller.
10528 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
10529 * tree.c (build_common_builtin_nodes): Declare
10530 __builtin_init_heap_trampoline.
10531
2d86450c 105322012-01-27 Georg-Johann Lay <avr@gjlay.de>
10533
10534 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
10535 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
10536 * config/avr/avr.c: Ditto.
10537 (avr_regnames): Remove because unused.
10538 * config/avr/avr.md (*cpse.ne): New peephole.
10539 (*cpse.eq): New peephole from former cpse peepholes.
10540
3542dbe2 105412012-01-27 Michael Eager <eager@eagercon.com>
10542
10543 * config/microblaze.c (microblaze_emit_compare): Correct
10544 test after pcmp instruction.
10545
9d9e2a99 105462012-01-27 Richard Guenther <rguenther@suse.de>
10547
10548 PR tree-optimization/52020
10549 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
10550
541c6dbb 105512012-01-27 Richard Guenther <rguenther@suse.de>
10552
10553 * ipa-pure-const.c (check_stmt): Clobbers do not make a
10554 function non-const/pure.
10555
25b3bbad 105562012-01-27 Richard Guenther <rguenther@suse.de>
10557
10558 PR tree-optimization/50444
10559 * tree-sra.c (build_ref_for_offset): Properly adjust the
10560 MEM_REF type for unaligned accesses.
10561
a598af2a 105622012-01-27 Richard Guenther <rguenther@suse.de>
10563
10564 PR tree-optimization/50444
10565 * expr.c (mem_ref_refers_to_non_mem_p): New function.
10566 (expand_assignment): Use it. Properly handle misaligned
10567 bases when expanding stores to component references.
10568 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
10569 refactor that case.
10570
c7af8ae7 105712012-01-27 Andrey Belevantsev <abel@ispras.ru>
10572
10573 PR middle-end/51389
10574 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
10575 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
10576 * tree-data-ref.c (find_data_references_in_loop): Make static.
10577 (compute_all_dependences): Change return type to bool. Bail out
10578 for too many datarefs in a loop. Move the hunk resetting the data
10579 dependences vector from ...
10580 (compute_data_dependences_for_loop): ... here. Account for
10581 compute_all_dependences returning false.
10582 (compute_data_dependences_for_bb): Likewise.
10583 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
10584 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
10585
3c089259 105862012-01-27 Richard Guenther <rguenther@suse.de>
10587
10588 PR middle-end/51959
10589 * expr.c (store_field): Use the alias-set of the scratch memory
10590 for storing to it.
10591
8a19bda6 105922012-01-27 Tom de Vries <tom@codesourcery.com>
10593
10594 PR tree-optimization/51990
669cf718 10595 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10596 WITH_SIZE_EXPR.
8a19bda6 10597 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
10598
0a35a733 105992012-01-27 Jakub Jelinek <jakub@redhat.com>
10600
10601 PR debug/52001
10602 * var-tracking.c (reverse_op): Don't add any reverse operation
10603 if V already has any constant locations.
10604
95e413db 106052012-01-27 Sandra Loosemore <sandra@codesourcery.com>
10606
10607 * doc/invoke.texi: Correct usage of "command line" (noun)
10608 vs "command-line" (adjective) throughout.
10609
ec9e53f7 106102012-01-27 Sandra Loosemore <sandra@codesourcery.com>
10611
10612 * doc/invoke.texi (Language Independent Options): Move
10613 -Wcoverage-mismatch blurb from here....
10614 (Warning Options): ...to here.
10615
7b3c2599 106162012-01-27 Peter Bergner <bergner@vnet.ibm.com>
10617
10618 * config/rs6000/rs6000.c (rs6000_option_override_internal):
10619 Set rs6000_always_hint to false for 476.
10620
c5698d9f 106212012-01-27 Matthias Klose <doko@ubuntu.com>
10622
10623 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
10624 system root.
10625 * incpath.c (add_standard_paths): Likewise.
10626
2a967206 106272012-01-27 Richard Henderson <rth@redhat.com>
10628
10629 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
10630 * config/m68k/sync.md (atomic_test_and_set): Rename from
10631 sync_test_and_setqi and adjust the operands.
10632 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
10633 and unconditionally enable.
10634
8481386e 106352012-01-27 Richard Henderson <rth@redhat.com>
10636
10637 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
10638 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
10639 (ldstub): Rename from ldstubqi.
10640 (ldstub<I24MODE>): Remove.
10641
df1680c8 106422012-01-27 Richard Henderson <rth@redhat.com>
10643
10644 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
10645 * c-cppbuiltin.c (cpp_atomic_builtins): Define
10646 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
10647 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
10648 * doc/tm.texi: Rebuild.
10649
ea17dfa7 106502012-01-27 Richard Henderson <rth@redhat.com>
10651
10652 * optabs.c (gen_atomic_test_and_set): Remove default.
10653 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
10654
7715a410 106552012-01-26 Jakub Jelinek <jakub@redhat.com>
10656
10657 PR rtl-optimization/51978
669cf718 10658 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
7715a410 10659 (combine_reaching_defs): Likewise.
10660 (struct re_info): Remove.
10661 (add_removable_extension): Remove x and data arguments,
10662 add insn, insn_list and def_map. Use the arguments directly
10663 instead of using struct re_info.
10664 (find_removable_extensions): Don't call add_removable_extension
10665 through note_stores, instead just call it with single_set
10666 result if non-NULL.
10667 (find_and_remove_re): Pass curr_cand->expr instead of
669cf718 10668 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
7715a410 10669
b74338cf 106702012-01-26 Michael Matz <matz@suse.de>
10671
10672 PR tree-optimization/46590
10673 * cfgexpand.c: Revert last change (r183305).
10674 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
10675 regs.
10676 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
10677 checking for emptiness.
10678
597cee6a 106792012-01-26 Jakub Jelinek <jakub@redhat.com>
10680
10681 PR middle-end/51895
10682 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
10683 non-addressable non-BLKmode base correctly.
10684
4b393c71 106852012-01-26 Michael Matz <matz@suse.de>
10686
10687 PR tree-optimization/48794
10688 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
10689 regions referenced from RESX/EH_DISPATCH.
10690
abb9bd4b 106912012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10692
10693 * config/s390/s390.h: Make BRANCH_COST an option.
10694 * config/s390/s390.opt: New option -mbranch-cost.
10695
e0f3ea3e 106962012-01-26 Richard Henderson <rth@redhat.com>
10697
10698 Revert 2012-01-24 change:
10699 * trans-mem.c (requires_barrier): Do not instrument thread local
10700 variables and emit save/restore for them.
10701
1d5a3bac 107022012-01-25 Jakub Jelinek <jakub@redhat.com>
10703
10704 PR middle-end/51986
10705 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
10706 for pat == 0.
10707
fb7bf3ef 107082012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
10709
0788eaac 10710 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
10711 ASM_OPERANDS.
fb7bf3ef 10712
590da9f2 107132012-01-25 Georg-Johann Lay <avr@gjlay.de>
10714
10715 PR target/49868
10716 Rename __pgm to __flash.
10717 Rename __pgm1 to __flash1.
10718 Rename __pgm2 to __flash2.
10719 Rename __pgm3 to __flash3.
10720 Rename __pgm4 to __flash4.
10721 Rename __pgm5 to __flash5.
10722 Rename __pgmx to __memx.
10723 * doc/extend.texi (AVR Named Address Spaces)
10724 Rename address space names as indicated above.
10725 * config/avr/avr.c (avr_addrspace): Ditto.
10726
10727 * config/avr/avr-protos.h
10728 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
10729 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
10730 * config/avr/predicates.md: Ditto.
10731 * config/avr/avr.c Ditto, and
10732 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
10733 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
10734
10735 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
10736 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
10737 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
10738 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
10739 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
10740 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
10741 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
10742 * config/avr/avr.c: Ditto.
10743 * config/avr/avr.md: Ditto.
10744
807e0fc2 107452012-01-25 Jason Merrill <jason@redhat.com>
10746
10747 PR c++/51992
10748 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
10749
e9156cad 107502012-01-25 Jakub Jelinek <jakub@redhat.com>
10751
10752 PR tree-optimization/51987
10753 * tree-data-ref.c (get_references_in_stmt): Handle references in
10754 non-volatile GIMPLE_ASM.
10755
f9f051a3 107562012-01-25 Richard Guenther <rguenther@suse.de>
10757
10758 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
10759 bases are dereferenced.
10760
2c622b2e 107612012-01-25 Andrey Belevantsev <abel@ispras.ru>
10762
10763 PR rtl-optimization/48374
669cf718 10764 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
2c622b2e 10765
713f1f14 107662012-01-25 Andrey Belevantsev <abel@ispras.ru>
10767
10768 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
10769 compute_data_dependences_for_loop returns false.
10770 * tree-parloops.c (loop_parallel_p): Likewise.
10771
69fbc3aa 107722012-01-25 Richard Guenther <rguenther@suse.de>
10773
10774 * tree.h (get_pointer_alignment_1): Declare.
10775 * builtins.c (get_pointer_alignment_1): New function.
10776 (get_pointer_alignment): Use it.
10777
eed2904a 107782012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10779
10780 PR rtl-optimization/48308
10781 * combine.c (enum undo_kind): Add UNDO_LINKS.
10782 (struct undo): Add member l to other_contents and where.
10783 (do_SUBST_LINK): New.
10784 (SUBST_LINK): New.
10785 (try_combine): Handle LOG_LINKS for the dummy i1 case.
10786 (undo_all): Handle UNDO_LINKS.
10787
d7c18c60 107882012-01-25 Richard Henderson <rth@redhat.com>
10789
10790 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
10791 mem inputs.
10792
dc4461a1 107932012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
10794
10795 * optabs.c (gen_atomic_test_and_set): Use each argument.
10796
11a9f55b 107972012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
10798
10799 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
10800 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
10801 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
10802 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
10803 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
10804 TARGET_PAIRED_SINGLE_FLOAT.
10805
402f6a9e 108062012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
10807
10808 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
10809 (in_struct, return_val): Remove MEM documentation.
10810 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
10811 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
10812 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
10813 and MEM_SCALAR.
10814 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
10815 * cfgexpand.c (add_alias_set_conflicts): Likewise.
10816 * expr.c (store_field): Likewise.
10817 * function.c (assign_stack_temp_for_type): Likewise.
10818 * ifcvt.c (noce_try_cmove_arith): Likewise.
10819 * reload1.c (reload): Likewise.
10820 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
10821 (alpha_set_memflags): Likewise.
10822 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
10823
376a287d 108242012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
10825
10826 * rtl.h (true_dependence, canon_true_dependence): Remove varies
10827 parameter.
10828 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
10829 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
10830 (true_dependence_1, true_dependence, canon_true_dependence): Remove
10831 varies parameter.
10832 * cselib.c (cselib_rtx_varies_p): Delete.
10833 (cselib_invalidate_mem): Update call to canon_true_dependence.
10834 * dse.c (record_store, check_mem_read_rtx): Likewise.
10835 (scan_reads_nospill): Likewise.
10836 * cse.c (check_dependence): Likewise.
10837 (cse_rtx_varies_p): Delete.
10838 * expr.c (safe_from_p): Update call to true_dependence.
10839 * ira.c (validate_equiv_mem_from_store): Likewise.
10840 (memref_referenced_p): Likewise.
10841 * postreload-gcse.c (find_mem_conflicts): Likewise.
10842 * sched-deps.c (sched_analyze_2): Likewise.
10843 * store-motion.c (load_kills_store): Likewise.
10844 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
10845 * gcse.c (mems_conflict_for_gcse_p): Likewise.
10846 (compute_transp): Update call to canon_true_dependence.
10847
39ca90d5 108482012-01-25 Richard Henderson <rth@redhat.com>
10849
10850 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
10851 (maybe_emit_atomic_test_and_set): New.
10852 (expand_sync_lock_test_and_set): Use it.
10853 (expand_atomic_test_and_set): Likewise.
10854 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
10855 the implementation; clarify implementation defined details.
10856 * doc/md.texi (atomic_test_and_set): Document.
10857
803dea20 108582012-01-25 Richard Henderson <rth@redhat.com>
10859
10860 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
10861
256897f4 108622012-01-25 Richard Henderson <rth@redhat.com>
10863
10864 PR target/51968
10865 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
10866 to effect no-op split.
10867
9eb529b8 108682012-01-24 Aldy Hernandez <aldyh@redhat.com>
10869
10870 PR lto/51698
10871 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
10872 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
10873 (BT_FN_VOID_PTR_INT_SIZE): New.
10874 (BT_FN_UINT_UINT_VAR): Remove.
10875 (BT_FN_UINT32_UINT32_VAR): New.
10876 (BT_FN_DOUBLE_VPTR): Remove.
10877 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
10878
669cf718 10879 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
9eb529b8 10880 (_ITM_changeTransactionMode): Same.
10881 (_ITM_memmoveRtWt): Change return type to void.
10882 (_ITM_memcpyRtWt): Same.
10883 (_ITM_memsetW): Same.
10884 (_ITM_RaRD): Change types to double.
10885 (_ITM_RD): Same.
10886 (_ITM_RaWD): Same.
10887 (_ITM_RfWD): Same.
10888
10889 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
10890
5db3f9d5 108912012-01-24 Aldy Hernandez <aldyh@redhat.com>
10892 Patrick Marlier <patrick.marlier@gmail.com>
10893
10894 * trans-mem.c (requires_barrier): Do not instrument thread local
10895 variables and emit save/restore for them.
10896
07828d90 108972012-01-24 Jason Merrill <jason@redhat.com>
10898
10899 PR c++/51812
10900 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
10901 output static aliases.
10902
1412b935 109032012-01-24 Jakub Jelinek <jakub@redhat.com>
10904
10905 PR driver/47249
10906 * common.opt (-pie, -shared, pie, shared): Change from Common to
10907 Driver.
10908 * gcc.c (display_help): Display help for -pie and -shared.
10909
6ee532ba 109102012-01-24 Georg-Johann Lay <avr@gjlay.de>
10911
10912 PR target/49868
10913 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
10914 Remove note on size/offset limitation.
10915 (AVR Variable Attributes): Add example how to read data located
10916 with progmem. Refer to named address spaces.
10917 * doc/invoke.texi (AVR Options): Fix typo.
10918
7f295214 109192012-01-24 Richard Guenther <rguenther@suse.de>
10920
10921 Forward-port to trunk
10922 2010-09-21 Jakub Jelinek <jakub@redhat.com>
10923
10924 PR middle-end/45678
10925 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
10926 op0 isn't sufficiently aligned and there is movmisalignM
10927 insn for mode, use it to load op0 into a temporary register.
10928
202e7097 109292012-01-24 Jakub Jelinek <jakub@redhat.com>
10930
10931 PR target/51957
10932 * target.def (const_not_ok_for_debug_p): New hook.
10933 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
10934 documentation.
10935 * doc/tm.texi: Regenerated.
10936 * dwarf2out.c (const_ok_for_output_1): If
10937 targetm.const_not_ok_for_debug_p returns true, fail.
10938 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
10939 function.
10940 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
10941
c96c9817 109422012-01-23 Kai Tietz <ktietz@redhat.com>
10943
10944 PR target/51900
10945 * config/i386/predicates.md (symbolic_operand): Allow
10946 UNSPEC_PCREL as PIC expression for lea.
10947 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
10948 * config/i386/i386.c (ix86_delegitimize_address): Handle
10949 UNSPEC_PCREL for none-MEM, too.
10950
caf29404 109512012-01-23 Aldy Hernandez <aldyh@redhat.com>
10952
10953 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
10954 (ipa_tm_create_version_alias): Same.
10955
669cf718 109562012-01-23 Uros Bizjak <ubizjak@gmail.com>
be83ebf7 10957
10958 PR libitm/51830
10959 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
10960 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
10961
38fe0c89 109622012-01-23 Aldy Hernandez <aldyh@redhat.com>
10963 Patrick Marlier <patrick.marlier@gmail.com>
10964 Iain Sandoe <developer@sandoe-acoustics.co.uk>
10965
10966 PR lto/51916
10967 * lto-wrapper.c (run_gcc): Pass the LTO section name to
10968 simple_object_start_read.
10969
b94ae734 109702012-01-23 Richard Guenther <rguenther@suse.de>
10971
38fe0c89 10972
b94ae734 10973 PR tree-optimization/51895
10974 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
10975 parameter decomposition into BLKmode components.
10976
bd57fdff 109772012-01-23 Eric Botcazou <ebotcazou@adacore.com>
10978
10979 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
10980 fake variables for restrict-qualified pointers whose pointed-to type
10981 contains a placeholder.
10982
f3941af5 109832012-01-23 Richard Guenther <rguenther@suse.de>
10984
10985 PR tree-optimization/51949
be83ebf7 10986 * ipa-split.c (execute_split_functions): Do not split malloc functions.
f3941af5 10987
6bd23a69 109882012-01-23 Jakub Jelinek <jakub@redhat.com>
10989
10990 PR rtl-optimization/51933
10991 * ree.c (transform_ifelse): Return true right away if dstreg is
10992 already wider or equal to cand->mode.
10993 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
10994 (make_defs_and_copies_lists): Remove defs_list and copies_list
10995 arguments, add state argument, just truncate state->work_list
10996 instead of always allocating and freeing the vector. Assert that
be83ebf7 10997 get_defs succeeds instead of returning 2. Changed return type to bool.
6bd23a69 10998 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
10999 have ext_src_mode, see if it has been modified already with the
11000 right kind of extension and has been extended before from the
11001 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
be83ebf7 11002 just return true. Remember the original mode in state->modified array.
6bd23a69 11003 (combine_reaching_defs): Add state argument. Don't allocate and
11004 free here def_list, copied_list and vec vectors, instead just
be83ebf7 11005 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
6bd23a69 11006 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
11007 Add state variable, clear vectors in it, initialize state.modified
11008 if needed. Free all the vectors at the end and state.modified too.
11009 Don't skip a candidate if the extension expression has been modified.
11010
af8e12d0 110112012-01-22 Douglas B Rupp <rupp@gnat.com>
11012
11013 PR target/47096
11014 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
11015 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
11016 (extra_options) interix.opt -> i386/interix.opt"
11017 (extra_objs):Add winnt-stubs.o
11018 * configure.ac: Add interix to target_os .comm on PE check.
11019 * configure: Regenerate.
11020 * config/interix3.h: Delete and move bits to..
11021 * config/interix.h: Delete and move bits to..
11022 * config/i386/i386-interix3.h: Delete and move bits to..
11023 * config/i386/i386-interix.h: ..here.
11024 (TARGET_CPU_DEFAULT): Remove redefinition.
11025 (TARGET_ASM_CONSTRUCTOR): Undefine.
11026 (SUBTARGET_SWITCHES): Define for ms-bitfields.
11027 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
11028 (PTRDIFF_TYPE): Define.
11029 (LONG_DOUBLE_TYPE_SIZE): Define.
11030 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
11031 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
11032 (TARGET_SECTION_TYPE_FLAGS): Define.
11033 (ASM_DECLARE_FUNCTION_NAME): Define.
11034 (ASM_OUTPUT_EXTERNAL): Define.
11035 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
11036 (ASM_OUTPUT_ALIGNED_BSS): Define.
11037 (PCC_BITFIELD_TYPE_MATTERS): Define.
11038 (USE_CONST_SECTION): Define.
11039 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
11040 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
11041 (SUPPORTS_ONE_ONLY): Remove.
11042 (I386_PE_STRIP_ENCODING): Define.
11043 * config/interix.opt: Delete and move bits to..
11044 * config/i386/interix.opt: ..here. New.
11045 (mpe-aligned-commons): Add.
11046 * config/i386/t-interix: Add copyright header.
11047 (winnt-stubs.o): Add rule.
11048
e87b587e 110492012-01-22 Jason Merrill <jason@redhat.com>
11050
11051 PR c++/51832
11052 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
11053 for extra name aliases.
11054
4a77f173 110552012-01-22 Eric Botcazou <ebotcazou@adacore.com>
11056
11057 PR rtl-optimization/51924
11058 * ree.c (combine_set_extension): Improve debugging message.
11059 (combine_reaching_defs): Likewise.
11060 (get_defs): Rename confusingly named variable.
11061 (find_and_remove_re): Skip a candidate if the extension expression has
11062 been modified.
11063
e351cc52 110642012-01-21 Robert Millan <rmh@gnu.org>
11065 Gerald Pfeifer <gerald@pfeifer.com>
11066
11067 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
11068 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
11069
3991e956 110702012-01-20 Jakub Jelinek <jakub@redhat.com>
11071
11072 PR tree-optimization/51914
11073 * tree-vect-stmts.c (vectorizable_conversion): For
11074 cvt_type && modifier == WIDEN, put temporary with cvt_type
11075 at the beginning of vec_dsts and set vec_dest to temporary
11076 with vectype_out.
11077
4c2112a3 110782012-01-20 Eric Botcazou <ebotcazou@adacore.com>
11079
11080 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
11081
9492fb06 110822011-01-20 Tijl Coosemans <tijl@coosemans.org>
11083
11084 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
11085 * config/rs6000/rs6000.c: Likewise.
11086
40053ccb 110872012-01-20 Jakub Jelinek <jakub@redhat.com>
11088
11089 PR target/51915
11090 * config/arm/arm.c (arm_count_output_move_double_insns): Call
11091 output_move_double on a copy of operands array.
11092
be83ebf7 110932012-01-20 Cary Coutant <ccoutant@google.com>
11094 Dodji Seketeli <dodji@redhat.com>
946ae316 11095
11096 PR debug/45682
11097 * dwarf2out.c (copy_declaration_context): Return ref to parent
11098 of declaration DIE, if necessary.
11099 (remove_child_or_replace_with_skeleton): Add new parameter; update
11100 caller. Place skeleton DIE under parent DIE of original declaration.
11101 Move call to copy_declaration_context to here ...
11102 (break_out_comdat_types): ... from here.
11103
2bfb4f13 111042012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11105
11106 PR rtl-optimization/51856
11107 * reload.c (find_reloads_subreg_address): Set the address_reloaded
11108 flag to reloaded.
11109
093defc8 111102012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11111
11112 PR target/51819
11113 * config/arm/arm.c (arm_print_operand): Correct output of alignment
11114 hints for neon loads and stores.
11115
8516b1c4 111162012-01-20 Georg-Johann Lay <avr@gjlay.de>
11117
11118 PR target/49868
11119 PR target/50887
11120 * doc/extend.texi (Named Address Spaces): Split into subsections.
11121 (AVR Named Address Spaces): New subsection.
11122 (M32C Named Address Spaces): New subsection.
11123 (RL78 Named Address Spaces): New subsection.
11124 (SPU Named Address Spaces): New subsection.
11125 (Variable Attributes): New anchor "AVR Variable Attributes".
11126 (AVR Variable Attributes): Rewrite and avoid wording
11127 "address space" in this context.
11128 * doc/invoke.texi (AVR Options): Rewrite and add documentation
11129 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
11130 (AVR Built-in Macros): New subsubsection therein.
11131 * doc/md.texi (AVR constraints): Remove "C04", "R".
11132
173bd570 111332012-01-20 Richard Guenther <rguenther@suse.de>
11134
11135 PR tree-optimization/51903
11136 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
11137 when removing stmts.
11138
350ccca5 111392012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11140
11141 PR target/50313
11142 * config/arm/arm.c (arm_load_pic_register): Use
11143 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
11144 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
11145 (arm_pic_static_addr): Likewise.
11146 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
11147 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
11148 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
11149 (pic_load_addr_unified): New.
11150
fb10e416 111512012-01-20 Andrey Belevantsev <abel@ispras.ru>
11152
11153 PR target/51106
11154 * function.c (instantiate_virtual_regs_in_insn): Use
11155 delete_insn_and_edges when removing a wrong asm insn.
11156
9f8ac546 111572012-01-19 Vladimir Makarov <vmakarov@redhat.com>
11158
11159 PR rtl-optimization/40761
be83ebf7 11160 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
11161 Add new member loop_num.
9f8ac546 11162 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
11163 (ira_build): Remove the parameter.
11164
be83ebf7 11165 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
9f8ac546 11166 (ira.c): Do not build CFG loops for one region allocation. Remove
11167 argument from ira_build call.
11168
11169 * ira-build.c (init_loop_tree_node): New function.
11170 (create_loop_tree_nodes): Use it. Separate the case when CFG
11171 loops are not built.
11172 (more_one_region_p): Check current_loops.
11173 (finish_loop_tree_nodes): Separate the case when CFG loops are not
11174 built.
11175 (add_loop_to_tree): Process loop equal to NULL too.
11176 (form_loop_tree): Separate the case when CFG loops are not built.
11177 Use explicitly number for the root.
11178 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
11179 an assertion.
11180 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
11181 instead of loop->num.
be83ebf7 11182 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
9f8ac546 11183 (mark_all_loops_for_removal): Ditto.
11184 (remove_unnecessary_regions): Separate the case when CFG loops
11185 are not built.
11186 (ira_build): Remove the parameter. Use explicit number of regions
11187 when CFG loops are not built.
11188
be83ebf7 11189 * ira-color.c (print_loop_title): Separate the case for the root node.
11190 Use loop_num instead of loop->num.
9f8ac546 11191 (move_spill_restore): Use loop_num instead of loop->num.
11192
11193 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
11194 (change_loop): Ditto.
11195 (change_loop): Use loop_num instead of loop->num.
11196
11197 * ira-lives.c (process_bb_node_lives): Ditto.
11198
be83ebf7 11199 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
9f8ac546 11200
11201 * ira-conflicts.c (print_allocno_conflicts): Ditto.
11202
042161e8 112032012-01-19 Jakub Jelinek <jakub@redhat.com>
11204
8c1094a6 11205 PR libmudflap/40778
11206 * tree-mudflap.c (mf_artificial): New function.
11207 (execute_mudflap_function_ops, execute_mudflap_function_decls,
11208 mx_register_decls, mudflap_enqueue_decl): Use it.
11209
042161e8 11210 PR target/51876
11211 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
11212 numbers in the insn pattern.
11213
c729109b 112142012-01-19 Michael Matz <matz@suse.de>
11215
11216 PR tree-optimization/46590
11217 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
11218 use it in remembering which conflicts we already created.
11219 (add_scope_conflicts): Adjust call to above, (de)allocate helper
11220 bitmap.
11221
50f418ca 112222012-01-19 Aldy Hernandez <aldyh@redhat.com>
11223
11224 PR lto/51280
11225 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
11226 (merge_and_complain): Same.
11227
35f51475 112282012-01-19 Jakub Jelinek <jakub@redhat.com>
11229
11230 PR bootstrap/50237
11231 * config/initfini-array.h: Guard content of the header
11232 with #ifdef HAVE_INITFINI_ARRAY.
11233 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
11234 Add initfini-array.h to tm_file here.
be83ebf7 11235 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
35f51475 11236 * config.gcc: Don't add initfini-array.h to tm_file here.
11237 * configure: Regenerated.
11238
112392012-01-19 Andrey Belevantsev <abel@ispras.ru>
918fbeb3 11240
11241 PR rtl-optimization/51505
11242 * df-problems.c (df_kill_notes): New parameter live. Update comment.
11243 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
be83ebf7 11244 (df_note_bb_compute): Update the call to df_kill_notes.
918fbeb3 11245
3c8b8a41 112462012-01-18 Aldy Hernandez <aldyh@redhat.com>
11247
11248 * trans-mem.c (requires_barrier): Remove call to is_global_var.
11249
561ee8fc 112502012-01-18 Richard Guenther <rguenther@suse.de>
11251
11252 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
11253 of conversions to void *.
11254
4d18c297 112552012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11256 Richard Sandiford <rdsandiford@googlemail.com>
11257
11258 PR middle-end/50325
11259 PR middle-end/51192
11260 * optabs.h (simplify_expand_binop): Declare.
11261 * optabs.c (simplify_expand_binop): Make global.
11262 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
11263 endian targets if the source cannot be exactly covered by word
11264 mode chunks.
11265
2e851bb8 112662012-01-17 Jakub Jelinek <jakub@redhat.com>
11267
11268 PR bootstrap/51872
11269 * hard-reg-set.h (struct hard_reg_set_container): New type.
11270 * target.h (struct hard_reg_set_container): Forward declare.
11271 * target.def (set_up_by_prologue): New target hook.
11272 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
11273 * doc/tm.texi: Regenerated.
11274 * function.c (thread_prologue_and_epilogue_insns): Change
11275 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
11276 Call targetm.set_up_by_prologue on it.
11277 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
11278 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
11279
f35edb6f 112802012-01-17 Nick Clifton <nickc@redhat.com>
11281
11282 * config/rx/rx.c (rx_can_use_simple_return): New function.
11283 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
11284 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
11285
1211c450 112862012-01-17 Richard Guenther <rguenther@suse.de>
11287
11288 PR middle-end/51782
11289 * expr.c (expand_assignment): Take address-space information
11290 from the address operand of MEM_REF and TARGET_MEM_REF.
11291 (expand_expr_real_1): Likewise.
11292
59157d8c 112932012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11294
11295 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
11296 reload dump is requested.
11297
d6ded716 112982012-01-17 Aldy Hernandez <aldyh@redhat.com>
11299
11300 PR other/51165
11301 * trans-mem.c (requires_barrier): Call may_be_aliased.
11302
87af2d00 113032012-01-17 Jakub Jelinek <jakub@redhat.com>
11304
11305 PR tree-optimization/51877
11306 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
11307 call arguments and fndecls compare equal, instead return false if they
11308 don't. Return true only if lhs1 and lhs2 are either both NULL, or
11309 both SSA_NAMEs that are valueized the same, or they satisfy
11310 operand_equal_p.
11311
dfeb8a07 113122012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11313
11314 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
11315 Solaris 11+.
11316 * configure: Regenerate.
11317
4470b8f6 113182012-01-16 Jan Hubicka <jh@suse.cz>
11319
11320 PR c/12245
11321 PR c++/14179
11322 * convert.c (convert_to_integer): Use fold_convert for
11323 converting an INTEGER_CST to integer type.
11324
0ecef4a2 113252012-01-16 Jason Merrill <jason@redhat.com>
11326
11327 PR c++/14179
11328 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
11329
0c41699c 113302012-01-16 Jakub Jelinek <jakub@redhat.com>
11331
414bc417 11332 PR bootstrap/51860
11333 * config/s390/s390.c (s390_chunkify_start): Don't skip
11334 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
11335 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
11336 If insn is followed by NOTE_INSN_VAR_LOCATION or
11337 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
11338 Don't use location of note insns.
11339
0c41699c 11340 PR tree-optimization/51865
11341 * tree-inline.c (tree_function_versioning): Call remap_decl
11342 on DECL_RESULT whenever it has VOID_TYPE_P type.
11343
1f873db2 113442012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
11345
11346 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
11347 for calls to locally-binding MIPS16 functions if only the return
11348 type uses float regs.
11349
a657080a 113502012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
11351 Richard Sandiford <rdsandiford@googlemail.com>
11352
11353 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
11354 (SYMBOL_32_HIGH): Likewise.
11355 (mips_output_tls_reloc_directive): Declare.
11356 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
11357 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
11358 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
11359 (mips_lo_relocs, mips_hi_relocs): Make extern.
11360 (mips16_stub_function): Move up file.
11361 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
11362 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
11363 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
be83ebf7 11364 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
11365 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
a657080a 11366 (mips_get_tp): Add MIPS16 support.
11367 (mips_legitimize_tls_address): Remove MIPS16 sorry().
11368 Generalize DTPREL and TPREL handling.
11369 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
11370 Add MIPS16 TLS support.
11371 (mips_output_tls_reloc_directive): New function.
11372 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
11373 * config/mips/predicates.md (symbolic_operand_with_high)
11374 (tls_reloc_operand): New predicates.
11375 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
11376 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
11377 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
be83ebf7 11378 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
a657080a 11379 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
11380 (*tls_get_tp_mips16_call_<mode>): Likewise.
11381
75e237b7 113822012-01-15 Uros Bizjak <ubizjak@gmail.com>
11383
11384 PR rtl-optimization/51821
11385 * recog.c (peep2_find_free_register): Determine clobbered registers
11386 from insn pattern.
11387
9f42c829 113882012-01-14 Denis Chertykov <chertykov@gmail.com>
11389
11390 PR target/50925
11391 * config/avr/avr-protos.h: Revert change of 2012-01-09.
11392 * config/avr/avr.c: Likewise.
11393 * config/avr/avr.h: Likewise.
11394
3637bb87 113952012-01-13 Ian Lance Taylor <iant@google.com>
11396
11397 PR c++/50012
11398 * tree.h (TYPE_QUALS): Add cast to int.
11399 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
11400
981afcd0 114012012-01-13 Ian Lance Taylor <iant@google.com>
11402
11403 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
11404 comparing param_index to VEC_length result.
11405
13b67b5c 114062012-01-13 Steven Bosscher <steven@gcc.gnu.org>
11407
11408 * c-decl.c: Do not include tree-mudflap.h
11409 * tree-optimize.c: Likewise.
11410 * Makefile.in: Update dependencies.
11411
fc0c4d51 114122012-01-13 Richard Guenther <rguenther@suse.de>
11413
11414 PR middle-end/8081
11415 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
11416 variable-sized result always use RSO.
11417
df7f3935 114182012-01-12 DJ Delorie <dj@redhat.com>
11419
11420 * cfgexpand.c (convert_debug_memory_address): Allow any valid
11421 pointer type, not just the default pointer type.
11422
36b6158e 114232012-01-09 Richard Henderson <rth@redhat.com>
11424 Denis Chertykov <chertykov@gmail.com>
11425
11426 PR target/50925
11427 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
11428 * config/avr/avr.c (avr_can_eliminate): Simplify.
11429 (avr_initial_elimination_offset): Likewise.
11430 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
11431 (expand_epilogue): Likewise.
11432 (avr_legitimize_address): Gut.
11433 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
11434 (avr_hard_regno_nregs): New.
11435 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
11436 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
11437 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
11438 add soft frame pointer.
11439 (CALL_USED_REGISTERS): Likewise.
11440 (REG_CLASS_CONTENTS): Likewise.
11441 (REGISTER_NAMES): Likewise.
11442 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
11443 (HARD_FRAME_POINTER_REGNUM): New.
11444 (FRAME_POINTER_REGNUM): Use soft frame pointer.
11445 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
11446 remove the HARD_FRAME_POINTER self-elimination.
11447
4bdc263b 114482012-01-12 Georg-Johann Lay <avr@gjlay.de>
07b2ccdc 11449
11450 PR target/51756
11451 * config/avr/avr.c (avr_encode_section_info): Test for absence of
11452 DECL_EXTERNAL when checking for initializers of progmem variables.
11453
6175d24a 114542012-01-12 Ira Rosen <irar@il.ibm.com>
11455
11456 PR tree-optimization/51799
11457 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
11458 that the last operation is a type demotion.
11459
ad1f1582 114602012-01-12 Uros Bizjak <ubizjak@gmail.com>
11461
11462 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
11463 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
11464
45152a7b 114652012-01-11 Jakub Jelinek <jakub@redhat.com>
11466
11467 PR bootstrap/51796
11468 * combine.c (distribute_notes): If i3 is a noreturn call,
11469 allow old_size to be equal to args_size and make sure the
11470 noreturn call gets REG_ARGS_SIZE note.
11471 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
11472 on noreturn calls even when the delta is 0.
11473
93fcbf99 114742012-01-11 Nathan Sidwell <nathan@acm.org>
11475
11476 * gcov.c (STRING_SIZE): Remove.
11477 (generate_results): Erase annotations for source files with no
11478 coverage information.
11479 (read_line): New.
11480 (output_lines): Use it.
11481
7e3aae05 114822012-01-11 Eric Botcazou <ebotcazou@adacore.com>
11483
11484 * gimple.h (gimplify_body): Remove first argument.
11485 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
11486 pointer set here, instead just pass DATA to walk_tree.
11487 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
11488 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
11489 (unvisit_body): Likewise, but with unmark_visited.
11490 (gimplify_body): Remove BODY_P argument and adjust.
11491 (gimplify_function_tree): Adjust call to gimplify_body.
11492 * omp-low.c (finalize_task_copyfn): Likewise.
11493
7a3ec978 114942012-01-11 Eric Botcazou <ebotcazou@adacore.com>
11495
11496 * tree.h (build_function_decl_skip_args): Add boolean parameter.
11497 (build_function_type_skip_args): Delete.
11498 * tree.c (build_function_type_skip_args): Make static and add
11499 SKIP_RETURN parameter. Fix thinko in the handling of variants.
11500 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
11501 pass it to build_function_type_skip_args.
11502 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
11503 (tree_function_versioning): Likewise.
11504 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
11505 build_function_decl_skip_args.
11506 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
11507 and pass it to build_function_decl_skip_args/tree_function_versioning.
11508 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
11509 * ipa-inline-transform.c (save_inline_function_body): Likewise.
11510 * trans-mem.c (ipa_tm_create_version): Likewise.
11511 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
11512 * tree-inline.c (declare_return_variable): Remove always-true test.
11513 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
11514 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
11515 * ipa-split.c (split_function): Skip the return value for the split
11516 part if it doesn't return.
11517
aa2edcb9 115182012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11519
11520 PR tree-optimization/49642
11521 * ipa-split.c (forbidden_dominators): New variable.
11522 (check_forbidden_calls): New function.
11523 (dominated_by_forbidden): Likewise.
11524 (consider_split): Check for forbidden dominators.
11525 (execute_split_functions): Initialize and free forbidden
11526 dominators info; call check_forbidden_calls.
11527
7d0a3bab 115282012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
11529
11530 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
11531
301901d2 115322012-01-11 Nick Clifton <nickc@redhat.com>
11533
11534 * config/rx/rx.md (return): Define pattern.
11535
35cbef6c 115362012-01-11 Richard Guenther <rguenther@suse.de>
11537
11538 * doc/extend.texi (malloc attribute): Adjust according to
11539 implementation.
11540
3e426b86 115412012-01-10 Aldy Hernandez <aldyh@redhat.com>
11542 Patrick Marlier <patrick.marlier@gmail.com>
11543
11544 PR middle-end/51516
11545 * trans-mem.c (get_cg_data): Traverse aliases if requested.
11546 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
11547 (ipa_tm_note_irrevocable): Same.
11548 (ipa_tm_scan_irr_block): Same.
11549 (ipa_tm_decrement_clone_counts): Same.
11550 (ipa_tm_scan_irr_function): Same.
11551 (ipa_tm_create_version_alias): Same.
11552 (ipa_tm_create_version): Same.
11553 (ipa_tm_transform_calls_redirect): Same.
11554 (ipa_tm_transform_calls): Same.
11555 (ipa_tm_transform_transaction): Same.
11556 (ipa_tm_execute): Same.
11557
90e2341f 115582012-01-10 Richard Guenther <rguenther@suse.de>
11559
11560 PR middle-end/51806
11561 * opts.c (common_handle_option): Handle -Werror.
11562
42720af3 115632012-01-10 Andreas Schwab <schwab@linux-m68k.org>
11564
11565 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
11566 operand number.
11567
2e3ca6dd 115682012-01-10 Jason Merrill <jason@redhat.com>
11569
11570 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
11571 information.
11572
31d2f7ca 115732012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11574
11575 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
11576 supports R_386_TLS_GD_PLT reloc.
11577 (gcc_cv_as_ix86_tlsldmplt): Check if linker
11578 supports R_386_TLS_LDM_PLT reloc.
11579 * configure: Regenerate.
11580 * config.in: Regenerate.
11581
ed2541ea 115822012-01-10 Georg-Johann Lay <avr@gjlay.de>
11583
11584 PR target/49868
11585 Extend __pgmx semantics to linearize memory.
11586 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
11587 determine if code comes inline or from libgcc.
11588 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
11589 (movmem_qi, movmem_qi): Set constraint #2 to "n".
11590 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
11591 (movmemx_qi, movmemx_hi): New insns.
11592 (xload_<mode>_libgcc): Rewrite to new insn condition.
11593 (xload_<mode>): Remove insns.
11594 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
11595 cases that don't satisfy avr_xload_libgcc_p().
11596 (avr_addr_space_convert): Allow converting in any direction.
11597 (avr_addr_space_subset_p): Return always true.
11598 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
11599 (avr_emit_movmemhi): Ditto.
11600 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
11601 (avr_out_movmem): Ditto.
11602 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
11603 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
11604 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
11605 (avr_encode_section_info): Encode 'progmem' in symbol flags.
11606 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
11607
e97c4b0d 116082012-01-10 Richard Guenther <rguenther@suse.de>
11609
11610 PR tree-optimization/50913
11611 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
11612 Require data-refs to be representable by Graphite with respect
11613 to any loop nest.
11614
553c4d0b 116152012-01-10 Uros Bizjak <ubizjak@gmail.com>
11616
11617 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
11618 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
11619
e2ab608c 116202012-01-10 Tom de Vries <tom@codesourcery.com>
11621
abbecd80 11622 PR rtl-optimization/51271
e2ab608c 11623 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
11624 handling annulled branch.
11625
47ddcd6b 116262012-01-10 Richard Henderson <rth@redhat.com>
11627
553c4d0b 11628 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
47ddcd6b 11629 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
11630 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
11631 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
11632 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
11633 arm_expand_vec_perm_const): New.
11634 * config/arm/arm-protos.h: Update.
11635 * config/arm/neon.md (UNSPEC_VCONCAT): New.
11636 (*neon_vswp<VDQX>): New.
11637 (neon_vcombine<VDX>): Use neon_split_vcombine.
11638 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
11639 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
11640 (vec_perm<VE>): New.
11641
e1b93706 116422012-01-10 Richard Henderson <rth@redhat.com>
11643
11644 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
11645 use it if reload_completed.
11646 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
11647 arm_output_asm_insn, arm_process_output_memory_barrier,
11648 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
11649 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
11650 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
11651 arm_process_output_sync_insn, arm_output_sync_insn,
11652 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
11653 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
11654 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
11655 (emit_unlikely_jump): New.
11656 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
11657 (arm_split_atomic_op): New.
11658 * config/arm/arm-protos.h: Update.
11659 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
11660 (struct arm_sync_generator): Remove.
11661 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
11662 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
11663 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
11664 (VUNSPEC_LL, VUNSPEC_SC): New.
11665 (sync_result, sync_memory, sync_required_value, sync_new_value,
11666 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
11667 (attr length): Don't use arm_sync_loop_insns.
11668 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
11669 (movsfcc, movdfcc): Likewise.
11670 * config/arm/constraints.md (Ua): New.
11671 * config/arm/prediates.md (mem_noofs_operand): New.
11672 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
11673 (sync_clobber, sync_t2_reqd): Remove.
11674 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
11675 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
11676 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
11677 (arm_sync_compare_and_swap<SIDI>): Remove.
11678 (arm_sync_compare_and_swap<NARROW>): Remove.
11679 (arm_sync_lock_test_and_set<SIDI>): Remove.
11680 (arm_sync_lock_test_and_set<NARROW>): Remove.
11681 (arm_sync_new_<syncop><SIDI>): Remove.
11682 (arm_sync_new_<syncop><NARROW>): Remove.
11683 (arm_sync_new_nand<SIDI>): Remove.
11684 (arm_sync_new_nand<NARROW>): Remove.
11685 (arm_sync_old_<syncop><SIDI>): Remove.
11686 (arm_sync_old_<syncop><NARROW>): Remove.
11687 (arm_sync_old_nand<SIDI>): Remove.
11688 (arm_sync_old_nand<NARROW>): Remove.
11689 (*memory_barrier): Merge arm_output_memory_barrier.
11690 (atomic_compare_and_swap<QHSD>): New.
11691 (atomic_compare_and_swap<NARROW>_1): New.
11692 (atomic_compare_and_swap<SIDI>_1): New.
11693 (atomic_exchange<QHSD>): New.
11694 (cas_cmp_operand, cas_cmp_str): New.
11695 (atomic_op_operand, atomic_op_str): New.
11696 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
11697 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
11698 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
11699 (arm_load_exclusive<NARROW>): New.
11700 (arm_load_exclusivesi, arm_load_exclusivedi): New.
11701 (arm_store_exclusive<QHSD>): New.
11702
117032012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
ca8c55ac 11704
11705 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
11706 reload patterns if -mvsx-scalar-memory.
11707
11708 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
11709 generated, even -mno-vsx-scalar-double was used.
11710 (vsx_xscvdpsp_scalar): Likewise.
11711 (vsx_xscvspdp_scalar2): Likewise.
11712
5cbfefc3 117132012-01-09 Tom de Vries <tom@codesourcery.com>
11714 Andrew Pinski <apinski@cavium.com>
11715
abbecd80 11716 PR debug/51471
553c4d0b 11717 * reorg.c (fill_slots_from_thread): Don't speculate
11718 frame-related insns.
5cbfefc3 11719
018f0595 117202012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
11721
11722 * sched-int.h (bb_note): Move to...
11723 * basic-block.h: ...here.
11724 * haifa-sched.c (bb_note): Move to...
11725 * cfgrtl.c: ...here.
11726 * function.c (next_block_for_reg): New function.
11727 (move_insn_for_shrink_wrap): Likewise.
11728 (prepare_shrink_wrap): Rewrite to use the above.
11729
28098b5b 117302012-01-09 Aldy Hernandez <aldyh@redhat.com>
11731
11732 * gimple.c (is_gimple_non_addressable): Remove.
11733 * gimple.h: Remove is_gimple_non_addressable.
11734 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
11735 is_gimple_non_addressable.
11736 * trans-mem.c (expand_assign_tm): Same.
11737
f6093533 117382012-01-09 Richard Guenther <rguenther@suse.de>
11739
11740 PR tree-optimization/51775
11741 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
11742 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
11743
92409bbc 117442012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
11745
11746 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
11747 tuning parameters.
11748 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
11749
3f7685cd 117502012-01-09 Richard Guenther <rguenther@suse.de>
11751
11752 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
11753
e67e73bd 117542012-01-08 Jan Hubicka <jh@suse.cz>
11755
11756 PR tree-optimize/51680
3f7685cd 11757 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
11758 on when known_vals needs to be computed; cleanup.
e67e73bd 11759
7aedab82 117602012-01-08 Jan Hubicka <jh@suse.cz>
11761
11762 PR tree-optimize/51694
11763 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
11764
49dc2bdc 117652012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
11766
11767 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
11768 for -std=c++98 and -std=c++11 too.
11769
bf4b25d7 117702012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
11771
11772 * cfgloop.c (cancel_loop): Add free() of bbs array.
11773
5dcaa672 117742012-01-07 Jan Hubicka <jh@suse.cz>
11775
11776 PR tree-optimization/51600
11777 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
11778 that benefits small functions.
11779
117802012-01-07 Jan Hubicka <jh@suse.cz>
11781
11782 * ipa-inline.c (want_inline_small_function_p): Fix formating.
11783
a844747e 117842012-01-07 Jan Hubicka <jh@suse.cz>
11785
11786 PR tree-optimization/51680
11787 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
11788 whose inlining reduce unit size.
11789
c98120f0 117902012-01-07 Alexandre Oliva <aoliva@redhat.com>
11791
11792 PR bootstrap/51725
11793 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
11794 Add canonical node to containing_mem chain after the non-canonical
11795 one, even if there weren't any locs to propagate.
11796 (remove_useless_values): Keep only canonical values.
11797 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
11798 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
11799 canonicalize mem_chain elements that are not discarded.
11800
b9aec3f5 118012012-01-06 Jakub Jelinek <jakub@redhat.com>
11802
5c8ad8f5 11803 PR target/47333
11804 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
11805 before emitting functions.
11806
b9aec3f5 11807 PR gcov-profile/50127
11808 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
11809 clear_aux_for_blocks.
11810
29c70ce8 118112012-01-06 Alexandre Oliva <aoliva@redhat.com>
11812
11813 PR debug/51746
11814 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
11815
00ce46e2 118162012-01-06 Arnaud Charlet <charlet@adacore.com>
11817
11818 * c-decl.c (ext_block): Moved up.
11819 (collect_all_refs, for_each_global_decl): Take ext_block into account.
11820
36ddd5fe 118212012-01-06 Han Shen <shenhan@google.com>
11822
11823 Translate built-in include paths for sysroot.
11824 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
11825 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
11826
11827 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
11828 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
11829
11830 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
11831 control whether sysroot should be prepended to gxx include dir.
11832
11833 * configure: Regenerate.
11834
aa848e47 118352012-01-06 Torvald Riegel <triegel@redhat.com>
11836
11837 PR rtl-optimization/51771
553c4d0b 11838 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
aa848e47 11839 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
11840
89c7922d 118412012-01-05 Eric Botcazou <ebotcazou@adacore.com>
11842
11843 PR tree-optimization/51315
11844 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
11845 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
11846
7208667b 118472012-01-05 Uros Bizjak <ubizjak@gmail.com>
11848
11849 PR target/51681
11850 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
11851 for shrp pattern. Correctly handle and fixup shift variable.
11852 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
11853
27827244 118542012-01-05 Jakub Jelinek <jakub@redhat.com>
11855
11856 PR debug/51762
11857 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
11858 note when !ACCUMULATE_OUTGOING_ARGS.
11859
df8f94d5 118602012-01-05 Eric Botcazou <ebotcazou@adacore.com>
11861
11862 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
11863 condition.
11864 (extract_range_from_unary_expr_1): Avoid useless computations.
11865
180c5ea0 118662012-01-05 Jakub Jelinek <jakub@redhat.com>
11867
d7ff3ab6 11868 PR rtl-optimization/51767
11869 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
11870 of jump_block and add an extra edge for degenerated asm gotos.
11871
1aed71d6 11872 PR middle-end/51768
11873 * stmt.c (check_unique_operand_names): Don't ICE during error
11874 reporting if i is from labels chain.
11875
180c5ea0 11876 PR middle-end/44777
11877 * profile.c (branch_prob): Split bbs that have exit edge
11878 and need a fake entry edge too.
11879
753f2949 118802012-01-05 Jan Hubicka <jh@suse.cz>
11881
11882 PR middle-end/49710
11883 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
11884 unlooping loops.
11885
8a3acf3f 118862012-01-05 Richard Guenther <rguenther@suse.de>
11887
11888 PR lto/50490
11889 * tree-streamer-out.c (write_ts_optimization): New function.
11890 (streamer_write_tree_body): Call it.
11891 * tree-streamer-in.c (lto_input_ts_optimization): New function.
11892 (streamer_read_tree_body): Call it.
11893 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
11894
cbabc8eb 118952012-01-05 Jakub Jelinek <jakub@redhat.com>
11896
11897 PR middle-end/51761
7208667b 11898 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
cbabc8eb 11899 * gimplify.c (gimplify_cleanup_point_expr): Save and set
11900 in_cleanup_point_expr before gimplify_stmt call and restore it
11901 afterwards.
11902 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
11903 in_cleanup_point_expr is false.
11904
9ea022ce 119052012-01-05 Richard Guenther <rguenther@suse.de>
11906
11907 PR middle-end/51764
11908 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
11909 to c.opt.
11910 * toplev.c (process_options): Reject combining mudflap and LTO.
11911 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
11912
c91fedc5 119132012-01-05 Richard Guenther <rguenther@suse.de>
11914
11915 PR tree-optimization/51760
11916 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
11917 not VARYING.
11918 (bit_value_unop): Handle UNDEFINED operands.
11919 (bit_value_binop): Likewise.
11920
1b6c82cc 119212012-01-05 Georg-Johann Lay <avr@gjlay.de>
11922
11923 * config/avr/avr.c (avr_replace_prefix): Remove.
11924 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
11925 (avr_asm_function_rodata_section): Ditto.
11926 (avr_asm_select_section): Ditto.
11927
a7dcb2ba 119282012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
11929
11930 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
11931 insertion.
11932
d1a21c35 119332012-01-05 Jakub Jelinek <jakub@redhat.com>
11934
44e41ce0 11935 PR bootstrap/51648
11936 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
11937 calls that have any non-fake successor edges.
11938
d1a21c35 11939 PR debug/51746
11940 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
11941
d33fd0b7 119422012-01-04 Eric Botcazou <ebotcazou@adacore.com>
11943
11944 PR tree-optimization/51624
11945 * tree-sra.c (build_ref_for_model): When replicating a chain of
11946 COMPONENT_REFs, stop as soon as the offset would become negative.
11947
3003ad99 119482012-01-04 Jakub Jelinek <jakub@redhat.com>
11949
11950 PR debug/51695
11951 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
11952 in .debug_loc on the floor.
11953
79bdd1fe 119542012-01-04 Andrew Pinski <apinski@cavium.com>
11955
11956 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
11957
b7508909 119582012-01-04 Andrew Pinski <apinski@cavium.com>
11959 Adam Nemet <anemet@caviumnetworks.com>
11960
11961 * config/mips/mips.md (size): Add SI and DI.
11962 (SIZE): New mode attribute.
11963 (U): New code attribute.
11964 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
11965 (mips_lbux_<mode>): Delete.
11966 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
11967 (mips_lhx): Use gen_mips_lhx_extsi.
11968 (mips_lhx_<mode>): Delete.
11969 (mips_lwx): Delete.
11970 (mips_l<size>x): New expand.
11971 (mips_lwx_<mode>): Delete.
11972 (mips_l<GPR:size>x_<P:mode>): New pattern.
11973 (*mips_lw<u>x_<P:mode>_ext): Likewise.
11974 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
11975 * config/mips/mips.c (mips_lx_address_p): New function.
11976 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
11977 (dsp64): New availability predicate.
11978 (mips_builtins): Add an entry for __builtin_mips_ldx.
11979 * config/mips/mips.h (ISA_HAS_LBX): New define.
11980 (ISA_HAS_LBUX): Likewise.
11981 (ISA_HAS_LHX): Likewise.
11982 (ISA_HAS_LHUX): Likewise.
11983 (ISA_HAS_LWX): Likewise.
11984 (ISA_HAS_LWUX): Likewise.
11985 (ISA_HAS_LDX): Likewise.
11986 * doc/extend.texi (__builtin_mips_ldx): Document.
11987
ceb6185f 119882012-01-04 Tristan Gingold <gingold@adacore.com>
11989
11990 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
11991 when long pointers are used.
11992 * config.build (*-*-*vms*): Handle all OpenVMS targets.
11993 (alpha64-dec-*vms*, alpha*-dec-*vms*)
11994 (ia64-hp-*vms*): Remove.
11995 * config/vms/xm-vms64.h: Delete.
11996
ea580cf7 119972012-01-04 Aldy Hernandez <aldyh@redhat.com>
11998
11999 PR middle-end/51472
12000 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
12001
cb8ce878 120022012-01-04 Aldy Hernandez <aldyh@redhat.com>
12003
d449d792 12004 * opts.c (finish_options): Remove duplicate sorry.
cb8ce878 12005
300eddba 120062012-01-04 Aldy Hernandez <aldyh@redhat.com>
12007
12008 PR middle-end/51696
12009 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
12010 correctly.
12011
a6c23958 120122012-01-04 Richard Guenther <rguenther@suse.de>
12013
12014 PR middle-end/51750
12015 * tree.c (size_low_cst): New function.
12016 * tree.h (size_low_cst): Declare.
12017 * fold-const.c (fold_comparison): Use it to extract the low
12018 part of the POINTER_PLUS_EXPR offset.
12019
f4806884 120202012-01-04 Georg-Johann Lay <avr@gjlay.de>
12021
12022 Fix clearing ZERO_REG
12023 * config/avr/avr.md (cc): Add alternative "ldi".
12024 (movqi_insn): Use it in cc attribute.
12025 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
12026 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
12027 (output_reload_insisf): Use ZERO_REG to pre-clear register.
12028
ce94380e 120292012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12030
12031 * configure: Regenerate.
12032
b4c39a37 120332012-01-04 Richard Guenther <rguenther@suse.de>
12034
12035 PR tree-optimization/49651
12036 * tree-ssa-structalias.c (type_can_have_subvars): New function.
12037 (var_can_have_subvars): Use it.
7208667b 12038 (get_constraint_for_1): Only consider subfields if there can be any.
b4c39a37 12039
cdfa22f4 120402012-01-03 Jakub Jelinek <jakub@redhat.com>
12041
89159e31 12042 PR bootstrap/51725
7208667b 12043 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
12044 to its new canonical_cselib_val and the cselib_val was in
12045 first_containing_mem chain, but the canonical_cselib_val was not,
12046 add the latter into the chain.
89159e31 12047 (cselib_invalidate_mem): Compare canonical_cselib_val of
12048 addr_list chain elt with v.
12049
cdfa22f4 12050 PR pch/51722
12051 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
12052 dwarf2out_undef): Allocate e.info using ggc_strdup instead
12053 of xstrdup.
12054 (output_macinfo_op): Don't ggc_strdup fd->filename.
12055 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
12056 then ggc_strdup it. Don't free inc->info or cur->info.
12057 (output_macinfo): Don't free ref->info or file->info.
12058
2f630015 120592012-01-03 Ira Rosen <irar@il.ibm.com>
12060
12061 PR tree-optimization/51269
12062 * tree-vect-loop-manip.c (set_prologue_iterations): Make
12063 first_niters a pointer.
12064 (slpeel_tree_peel_loop_to_edge): Likewise.
12065 (vect_do_peeling_for_loop_bound): Update call to
12066 slpeel_tree_peel_loop_to_edge.
12067 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
12068 here. Remove it from the parameters list.
12069 (vect_do_peeling_for_alignment): Update calls and compute
12070 wide_prolog_niters.
12071
958ea92a 120722012-01-03 Richard Guenther <rguenther@suse.de>
12073
12074 PR tree-optimization/51070
12075 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
12076 Properly handle calls.
12077
af988fbc 120782012-01-03 Richard Guenther <rguenther@suse.de>
12079
12080 PR tree-optimization/51692
12081 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
12082 the LHS of allocation stmts.
12083
131e69c7 120842012-01-03 Olivier Hainque <hainque@adacore.com>
12085
12086 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
12087
e4e4eb40 120882012-01-03 Olivier Hainque <hainque@adacore.com>
12089
12090 * collect2.c (main): In AIX specific computations for vector
12091 insertions, use CONST_CAST2 to cast from char ** to const char **.
12092
e94f8cec 120932012-01-03 Richard Guenther <rguenther@suse.de>
12094
12095 PR debug/51650
12096 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
12097 the context of a limbo DIE when it does not already exist.
12098
1cd188fc 120992012-01-03 Jakub Jelinek <jakub@redhat.com>
12100
12101 PR tree-optimization/51719
12102 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
12103 but direct call is, clear direct call's lhs and don't add fallthrough
12104 edge from dcall_bb to join_bb and PHIs.
12105
fbee501c 121062012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12107
12108 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
12109 the instructions emitted by the pattern.
12110 ("*TDC_insn_<mode>"): Add comment.
12111
c8d7e3b9 121122012-01-03 Richard Guenther <rguenther@suse.de>
12113
12114 PR middle-end/51730
12115 * fold-const.c (fold_comparison): Properly canonicalize
12116 tree offset and HOST_WIDE_INT bit position.
12117
87f78f87 121182012-01-02 Uros Bizjak <ubizjak@gmail.com>
12119
12120 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
12121 operands for extzv pattern.
12122
e2b97531 121232012-01-02 Jakub Jelinek <jakub@redhat.com>
12124
12125 PR bootstrap/51725
12126 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
12127 on mem_elt first.
12128
9d1f0198 121292012-01-02 Sandra Loosemore <sandra@codesourcery.com>
12130
12131 * doc/invoke.texi (-flto and related options): Copy-edit.
12132
606b7c1d 121332012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12134
87f78f87 12135 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
606b7c1d 12136
2cded00a 121372012-01-02 Jakub Jelinek <jakub@redhat.com>
12138
12139 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
12140 New patterns.
12141
8136e769 121422012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12143
12144 * expr.h (move_by_pieces_ninsns): Declare.
12145 * expr.c (move_by_pieces_ninsns): Make external.
12146 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
12147 (mips_store_by_pieces_p): Likewise.
12148 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
12149 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
12150 * config/mips/mips.c (mips_move_by_pieces_p): New function.
12151 (mips_store_by_pieces_p): Likewise.
12152
364360b8 121532012-01-02 Jakub Jelinek <jakub@redhat.com>
12154
12155 * passes.c (register_one_dump_file): Free full_name.
12156
87f78f87 12157 * reload1.c (reload): Don't allocate reg_max_ref_width here.
364360b8 12158 (calculate_elim_costs_all_insns): Free offsets_at and
12159 offsets_known_at at the end and clear the pointers.
12160
5a1d0410 121612012-01-02 Georg-Johann Lay <avr@gjlay.de>
12162
12163 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
12164 this option introduced in r180739.
12165
b32bc361 121662012-01-02 Georg-Johann Lay <avr@gjlay.de>
12167
12168 PR target/51345
12169 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
12170 (tmake_file target=avr): Add avr/t-multilib.
12171
12172 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
12173 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
12174 * config/avr/genmultilib.awk: New file.
12175 * config/avr/t-multilib: New auto-generated file.
12176 * config/avr/multilib.h: New auto-generated file.
12177 * config/avr/t-avr (AVR_MCUS): New variable.
12178 (genopt.sh): Use it.
12179 (s-mlib): Depend on t-multilib.
12180 (t-multilib, multilib.h): New dependencies.
12181 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
12182 (MULTILIB_OPTIONS): Remove.
12183 (MULTILIB_MATCHES): Remove.
12184 (MULTILIB_DIRNAMES): Remove.
12185 (MULTILIB_EXCEPTIONS): Remove:
12186 * config/avr/genopt.sh: Don't use hard coded file name;
12187 pass AVR_MCUS from t-avr instead.
12188
8e8ae8d4 121892012-01-02 Georg-Johann Lay <avr@gjlay.de>
12190
12191 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
12192
83921eda 121932012-01-02 Georg-Johann Lay <avr@gjlay.de>
12194
12195 Implement light-weight DImode support.
12196 * config/avr/avr-dimode.md: New file.
12197 * config/avr/avr.md: Include it.
12198 (adjust_len): Add plus64, compare64.
12199 (HIDI): Remove code iterator.
12200 (code_stdname): New code attribute.
12201 (rotx, rotsmode): Remove DI.
12202 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
12203 as code iterator.
12204 * config/avr/avr-protos.h (avr_have_dimode): New.
12205 (avr_out_plus64, avr_out_compare64): New.
12206 * config/avr/avr.c (avr_out_compare): Handle DImode.
12207 (avr_have_dimode): New variable definition and initialization.
12208 (avr_out_compare64, avr_out_plus64): New functions.
12209 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
12210 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
12211 (avr_compare_pattern): Skip DImode comparisons.
12212
238c43ff 122132012-01-02 Revital Eres <revital.eres@linaro.org>
12214
12215 * ddg.c (def_has_ccmode_p): New function.
12216 (add_cross_iteration_register_deps,
12217 create_ddg_dep_from_intra_loop_link): Call it.
12218
0c0cdd6f 122192012-01-02 Richard Guenther <rguenther@suse.de>
12220
12221 PR other/51679
12222 * invoke.texi (fassociative-math): Remove spurious paranthesis.
12223
ea87e586 122242012-01-01 Jakub Jelinek <jakub@redhat.com>
12225
12226 * gcc.c (process_command): Update copyright notice dates.
12227 * gcov.c (print_version): Likewise.
12228 * gcov-dump.c (print_version): Likewise.
12229 * mips-tfile.c (main): Likewise.
12230 * mips-tdump.c (main): Likewise.
12231
a1123047 122322012-01-01 Ira Rosen <irar@il.ibm.com>
12233
12234 PR tree-optimization/51704
12235 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
87f78f87 12236 a use is inside the basic block or loop before accessing its vect info.
a1123047 12237
4d50c498 122382012-01-01 Jan Hubicka <jhjh@suse.cz>
12239
12240 PR rtl-optimization/51069
12241 * cfgloopmanip.c (remove_path): Removing path making irreducible
12242 region unconditional makes BB part of the region.
12243
3064bb7b 122442012-01-01 Jakub Jelinek <jakub@redhat.com>
12245
12246 PR tree-optimization/51683
12247 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
12248 calls with side-effects.
12249 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7dfbd804 12250\f
8dfa851a 12251Copyright (C) 2012 Free Software Foundation, Inc.
7dfbd804 12252
12253Copying and distribution of this file, with or without modification,
12254are permitted in any medium without royalty provided the copyright
12255notice and this notice are preserved.