mips-protos.h (mips_split_type): New enum.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * config/mips/mips-protos.h (mips_split_type): New enum.
4         (mips_split_64bit_move_p, mips_split_doubleword_move): Delete.
5         (mips_split_move_p, mips_split_move, mips_split_move_insn_p)
6         (mips_split_move_insn): Declare.
7         * config/mips/mips.c (mips_tuning_info): New variable.
8         (mips_load_store_insns): Use mips_split_move_insn_p instead of
9         mips_split_64bit_move_p.
10         (mips_emit_move_or_split, mips_mult_move_p): New functions.
11         (mips_split_64bit_move_p): Rename to...
12         (mips_split_move_p): ...this and take a mips_split_type argument.
13         Generalize to all moves.  Call mips_mult_move_p.
14         (mips_split_doubleword_move): Rename to...
15         (mips_split_move): ...this and take a mips_split_type argument.
16         Assert that mips_split_move_p holds.
17         (mips_insn_split_type, mips_split_move_insn_p, mips_split_move_insn):
18         New functions.
19         (mips_output_move): Use mips_split_move_p instead of
20         mips_split_64bit_move_p.  Handle MULT $0, $0 moves.
21         (mips_save_reg): Use mips_emit_move_or_split.
22         (mips_sim_reset): Assign to curr_state.  Call targetm.sched.init
23         and advance_state.
24         (mips_sim_init): Call targetm.sched.init_dfa_pre_cycle_insn and
25         targetm.sched.init_dfa_post_cycle_insn, if defined.
26         (mips_sim_next_cycle): Assign to curr_state.  Use advance_state
27         instead of state_transition.
28         (mips_sim_issue_insn): Assign to curr_state.  Use
29         targetm.sched.variable_issue to see how many more insns
30         can be issued.
31         (mips_seq_time, mips_mult_zero_zero_cost)
32         (mips_set_fast_mult_zero_zero_p, mips_set_tuning_info)
33         (mips_expand_to_rtl_hook): New functions.
34         (TARGET_EXPAND_TO_RTL_HOOK): Define.
35         * config/mips/mips.md (move_type): Add imul.
36         (type): Map imul move_types to imul.
37         (*movdi_32bit, *movti): Add imul alternatives.
38         Use mips_split_move_insn_p and mips_split_move_insn instead of
39         mips_split_64bit_move_p and mips_split_doubleword_move in move
40         splitters.
41
42 2012-10-06  Segher Boessenkool  <segher@kernel.crashing.org>
43
44         * config/rs6000/rs6000.c (print_operand) ['A']: Delete.
45
46 2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
47
48         PR c++/52764
49         * ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define
50         __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS.
51         * ginclude/stdint-gcc.h: In C++11 unconditionally define
52         limit and constant macros.
53
54 2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>
55
56         PR c++/54249
57         * ginclude/stddef.h: In C++11 mode declare nullptr_t in the global
58         namespace.
59
60 2012-10-06  Jan Hubicka  <jh@suse.cz>
61
62         PR lto/53831
63         PR lto/54776
64         * lto-streamer-out.c (produce_symtab): Cleanup; drop v1 API hack.
65
66 2012-10-06  Dehao Chen  <dehao@google.com>
67
68         PR debug/54826
69         * gimple-low.c (lower_stmt): Set the block for call args.
70
71 2012-10-06  Jan Hubicka  <jh@suse.cz>
72
73         * doc/invoke.texi (-fprofile-report): Document.
74         * common.opt (-fprofile-report): New option.
75         * toplev.c (finalize): Call dump_profile_report.
76         * toplev.h (profile_report): Declare.
77         * passes.c (profile_record): New static var.
78         (check_profile_consistency): New function.
79         (dump_profile_record): New function.
80         (execute_one_ipa_transform_pass): Call check_profile_consistency.
81         (execute_one_pass): Likewise.
82
83 2012-10-06  Jan Hubicka  <jh@suse.cz>
84
85         PR lto/54790
86         * lto-streamer.h (lto_symtab_register_decl, lto_symtab_get_resolution,
87         lto_mark_nothrow_fndecl, lto_fixup_nothrow_decls): Remove.
88         * lto-symtab.c (lto_symtab_register_decl): Remove.
89
90 2012-10-06  Andreas Schwab  <schwab@linux-m68k.org>
91
92         PR rtl-optimization/54739
93         * config/m68k/m68k.md (anddi3, iordi3, xordi3, one_cmpldi2):
94         Remove.
95
96 2012-10-06  Oleg Endo  <olegendo@gcc.gnu.org>
97
98         PR target/54760
99         * config/sh/sh.md (define_constants): Add UNSPECV_GBR.
100         (get_thread_pointer, set_thread_pointer): New expanders.
101         (load_gbr): Rename to store_gbr.  Remove GBR_REG use.
102         (store_gbr): New insn.
103         * config/sh/sh.c (prepare_move_operands): Use gen_store_gbr instead of
104         gen_load_gbr in TLS_MODEL_LOCAL_EXEC case.
105         (sh1_builtin_p): New function.
106         (signature_args): Add SH_BLTIN_VP.
107         (bdesc): Add __builtin_thread_pointer and __builtin_set_thread_pointer.
108
109 2012-10-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
110
111         PR rtl-optimization/54739
112         * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns
113         for 32-bit targets.  Adjust expanders.
114
115         * config/pa/pa.md: Adjust unamed HImode add insn pattern.
116
117 2012-10-05  Oleg Endo  <olegendo@gcc.gnu.org>
118
119         * config/sh/sh.c (builtin_description): Add is_enabled member.
120         (shmedia_builtin_p): New function.
121         (bdesc): Use shmedia_builtin_p for existing built-ins.
122         (sh_media_init_builtins, sh_init_builtins): Merge into single function
123         sh_init_builtins.  Add is_enabled checking.  Move variable declarations
124         to where they are actually used.
125         (sh_media_builtin_decl, sh_builtin_decl): Merge into single function
126         sh_builtin_decl.  Add is_enabled checking.
127         (sh_expand_builtin): Move variable declarations to where they are
128         actually used.
129
130 2012-10-05  Jakub Jelinek  <jakub@redhat.com>
131
132         * tree-inline.c (expand_call_inline): Move VAR_DECLs with
133         PARM_DECL origins from remapped DECL_INITIAL's BLOCK_VARS
134         into id->block's BLOCK_VARS.
135
136         PR debug/54519
137         * ipa-split.c (split_function): Add debug args and
138         debug source and normal stmts for args_to_skip which are
139         gimple regs.
140         * tree-inline.c (copy_debug_stmt): When inlining, adjust
141         source debug bind stmts to debug binds of corresponding
142         DEBUG_EXPR_DECL.
143
144 2012-10-05  Georg-Johann Lay  <avr@gjlay.de>
145
146         * config/avr/avr.md: Fix indentations of insn C snippets.
147
148 2012-10-05  Richard Guenther  <rguenther@suse.de>
149
150         PR middle-end/54811
151         * tree-ssa-live.c (clear_unused_block_pointer_1): Look at
152         DECL_DEBUG_EXPR again.
153
154 2012-10-05  Jan Hubicka  <jh@suse.cz>
155             Jakub Jelinek  <jakub@redhat.com>
156
157         PR tree-optimization/33763
158         * tree-inline.c (expand_call_inline): Silently ignore always_inline
159         attribute for redefined extern inline functions.
160
161 2012-10-04  Jan Hubicka  <jh@suse.cz>
162
163         * tree-vectorizer.h (vect_estimate_min_profitable_iters): Remove.
164         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Declare here.
165         (vect_analyze_loop_operations): Use loop count estimate to rule out
166         unprofitable vectorization.
167         (vect_estimate_min_profitable_iters): Return ret_min_profitable_estimate.
168
169 2012-10-05  Jakub Jelinek  <jakub@redhat.com>
170
171         PR tree-optimization/54810
172         * tree-vrp.c (register_edge_assert_for_2): Handle
173         NAME = (unsigned) NAME2; if (NAME cmp CST) for
174         narrowing casts to unsigned integral type like
175         NAME = NAME2 & CST2; if (NAME cmp CST) where CST2
176         is the max value of the unsigned integral type.
177
178 2012-10-04  Jeff Law  <law@redhat.com>
179
180         * PR target/50356
181         * config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case.
182
183 2012-10-04  Jason Merrill  <jason@redhat.com>
184
185         * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
186         ASM_WEAKEN_DECL with #if RS6000_WEAK.
187
188 2012-10-04  Basile Starynkevitch  <basile@starynkevitch.net>
189
190         * gengtype.c (walk_type): Emit mark_hook when inside a
191           struct of a union member.
192
193 2012-10-04  Georg-Johann Lay  <avr@gjlay.de>
194
195         * config/avr/predicates.md (flash_operand): New predicate.
196         * config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
197         of memory_operand.
198
199 2012-10-04  Tobias Burnus  <burnus@net-b.de>
200
201         * gcc.c (record_temp_file, add_sysrooted_prefix, process_command,
202         do_self_spec, compare_debug_dump_opt_spec_function): Plug memleaks.
203         (do_spec_1): Ditto, fix out-of-bound access.
204         * opts.c (common_handle_option): Plug memleak.
205
206 2012-10-04  Jason Merrill  <jason@redhat.com>
207
208         * config/darwin.c (darwin_assemble_visibility): Treat
209         VISIBILITY_INTERNAL as hidden.
210
211         * config/darwin-c.c (find_subframework_file): Add missing const.
212         (framework_construct_pathname): Likewise.
213
214 2012-10-04  Florian Weimer  <fweimer@redhat.com>
215
216         * doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma
217         GCC error.
218
219 2012-10-04  Richard Guenther  <rguenther@suse.de>
220
221         PR middle-end/54735
222         * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before
223         cleaning up the CFG.
224
225 2012-10-04  Richard Guenther  <rguenther@suse.de>
226
227         PR lto/47799
228         * tree-streamer-out.c (write_ts_block_tree_pointers): For
229         inlined functions outer scopes write the ultimate origin
230         as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION.
231         Do not stream the fragment chains.
232         * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise.
233         * dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL.
234         (dwarf2out_decl): Always output DECL_ABSTRACT function decls.
235
236 2012-10-04  Arnaud Charlet  <charlet@adacore.com>
237
238         * dumpfile.h, dumpfile.c: Remove TDI_ada.
239
240 2012-10-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
241
242         * config/i386/i386.c (ix86_dep_by_shift_count_body) : Add
243         check on reload_completed since it can be invoked before
244         register allocation phase in pre-reload schedule.
245         (ia32_multipass_dfa_lookahead) : Do not use dfa_lookahead for pre-reload
246         schedule to save compile time.
247         (ix86_sched_reorder) : Do not perform ready list reordering for pre-reload
248         schedule to save compile time.
249         (insn_is_function_arg) : New function. Returns true if lhs of insn is
250         HW function argument register.
251         (add_parameter_dependencies) : New function. Add output dependencies
252         for chain of function adjacent arguments if only there is a move to
253         likely spilled HW registers. Return first argument if at least one
254         dependence was added or NULL otherwise.
255         (avoid_func_arg_motion) : New function. Add output or anti dependency
256         from insn to first_arg to restrict code motion.
257         (add_dependee_for_func_arg) : New function. Avoid cross block motion of
258         function argument through adding dependency from the first non-jump
259         insn in bb.
260         (ix86_dependencies_evaluation_hook) : New function. Hook for pre-reload schedule:
261         avoid motion of function arguments passed in passed in likely spilled
262         HW registers.
263         (ix86_adjust_priority) : New function. Hook for pre-reload schedule: set priority
264         of moves from likely spilled HW registers to maximum to schedule them
265         as soon as possible.
266         (ix86_sched_init_global): Do not perform multipass scheduling for pre-reload
267         schedule to save compile time.
268
269 2012-10-04  Uros Bizjak  <ubizjak@gmail.com>
270
271         * configure.ac (noexception_flags): Add -fasynchronous-unwind-tables.
272         * configure: Regenerate.
273
274 2012-10-04  Kaz Kojima  <kkojima@gcc.gnu.org>
275
276         * config/sh/sh.c (sh_can_use_simple_return_p): Return false for
277         SHmedia and SHcompact using call cookie.
278         * config/sh/sh.md (epilogue): Emit non-inlined return insns for
279         SHmedia and SHcompact using call cookie.
280
281 2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>
282
283         PR target/51244
284         * config/sh/sh.md (*mov_t_msb_neg): New insn and two accompanying
285         unnamed split patterns.
286
287 2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>
288
289         PR target/50457
290         * config/sh/sh.c (parse_validate_atomic_model_option): Handle name
291         strings in sh_atomic_model.
292         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation
293         to ...
294         * config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function.
295         Add __SH1__ and __SH2__ defines.  Add __SH_ATOMIC_MODEL_*__ define.
296         * config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name
297         variables.
298         (sh_cpu_cpp_builtins): Declare new function.
299
300 2012-10-03  Dehao Chen  <dehao@google.com>
301
302         PR middle-end/54782
303         * tree-cfg.c (move_block_to_fn): Update lexical block for phi_args.
304
305 2012-10-03  Vladimir Makarov  <vmakarov@redhat.com>
306
307         * reginfo.c (max_regno_since_last_resize): New.
308         (reg_preferred_class, reg_alternate_class): Add assert.
309         (allocate_reg_info): Initialize allocated reg info.
310         (resize_reg_info): Make bigger reg_info and initialize new memory.
311         (reginfo_init): Initialize max_regno_since_last_resize.
312         (setup_reg_classes): Change assert.
313
314 2012-10-03  Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
315
316         * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
317         in SSE and YMM state support check for -march=native.
318
319 2012-10-03  Nick Clifton  <nickc@redhat.com>
320
321         * config/rx/rx.c (struct decl_chain): New local structure.
322         (warned_decls): New local variable.  Contains a stack of decls for
323         which warnings have been issued.
324         (add_warned_decl): Adds a decl to the stack.
325         (already_warned): Returns true if a given decl is on the stack.
326         (rx_set_current_function): Issue a warning if multiple fast
327         interrupt handlers are defined.
328         * config/rx/rx.opt (mwarn-multiple-fast-interrupts): New option.
329         * doc/invoke.texi: Document the option.
330
331 2012-10-03  Mark Kettenis  <kettenis@openbsd.org>
332
333         * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
334         default_use_cxa_atexit to yes.
335
336 2012-10-03  Jakub Jelinek  <jakub@redhat.com>
337
338         PR rtl-optimization/54792
339         * sched-deps.c (find_modifiable_mems): Scan also TAIL insn.
340
341 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
342
343         PR target/54785
344         * doc/invoke.texi: Document -mprefer-avx128.
345
346 2012-10-02  Andrew Pinski  <apinski@cavium.com>
347
348         * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
349         Don't optimize a truncate of a mem if it is a vector mode.
350
351 2012-10-02  Alexandre Oliva <aoliva@redhat.com>
352
353         PR debug/54551
354         * Makefile.in (VALTRACK_H): Add hash-table.h.
355         * valtrack.h: Include hash-table.h.
356         (struct dead_debug_global_entry): New.
357         (struct dead_debug_hash_descr): New.
358         (struct dead_debug_global): New.
359         (struct dead_debug): Rename to...
360         (struct dead_debug_local): ... this.  Adjust all uses.
361         (dead_debug_global_init, dead_debug_global_finish): New.
362         (dead_debug_init): Rename to...
363         (dead_debug_local_init): ... this.  Adjust all callers.
364         (dead_debug_finish): Rename to...
365         (dead_debug_local_finish): ... this.  Adjust all callers.
366         * valtrack.c (dead_debug_global_init): New.
367         (dead_debug_init): Rename to...
368         (dead_debug_local_init): ... this.  Take global parameter.
369         Save it and initialize used bitmap from it.
370         (dead_debug_global_find, dead_debug_global_insert): New.
371         (dead_debug_global_replace_temp): New.
372         (dead_debug_promote_uses): New.
373         (dead_debug_finish): Rename to...
374         (dead_debug_local_finish): ... this.  Promote remaining uses.
375         (dead_debug_global_finish): New.
376         (dead_debug_add): Try to replace global temps first.
377         (dead_debug_insert_temp): Support global replacements.
378         * dce.c (word_dce_process_block, dce_process_block): Add
379         global_debug parameter.  Pass it on.
380         (fast_dce): Initialize, pass on and finalize global_debug.
381         * df-problems.c (df_set_unused_notes_for_mw): Adjusted.
382         (df_create_unused_notes, df_note_bb_compute): Likewise.
383         (df_note_compute): Justify local-only dead debug analysis.
384
385 2012-10-02  Alexandre Oliva <aoliva@redhat.com>
386
387         PR debug/53135
388         * dwarf2out.c (value_format): Use block4 for dw_val_class_loc
389         when needed.
390
391 2012-10-02  Alexandre Oliva <aoliva@redhat.com>
392
393         PR debug/54177
394         * var-tracking.c (vt_add_function_parameter): Bail if
395         var_lowpart fails.
396
397 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
398
399         PR target/54741
400         * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
401         (XSTATE_FP): Likewise.
402         (XSTATE_SSE): Likewise.
403         (XSTATE_YMM): Likewise.
404         (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
405         SSE and YMM states aren't supported.
406
407 2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
408
409         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
410         (*baddu_si): ...this new pattern.
411
412 2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
413
414         * ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs.
415         (ira_useful_class_mode_regs): New macro.
416         * ira.c (clarify_prohibited_class_mode_regs): Set up
417         ira_useful_class_mode_regs.
418         * ira-color.c (setup_profitable_hard_regs): Use it to initialise
419         profitable_hard_regs.
420
421 2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
422
423         * ira.h (target_ira): Add x_ira_class_singleton.
424         (ira_class_singleton): New macro.
425         * ira.c (setup_prohibited_class_mode_regs): Set up ira_class_singleton.
426         * ira-build.c (update_conflict_hard_reg_costs): Use
427         ira_class_singleton to check for classes with a single
428         allocatable register.
429         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Likewise.
430         (single_reg_class): Likewise.  When more than one class is specified,
431         check whether they have the same singleton register.
432         (process_single_reg_class_operands): Require single_reg_class
433         to return NO_REGS or a class with a single allocatable register.
434         Obtain that register from ira_class_singleton.
435
436 2012-10-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
437
438         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
439         -mcpu=<xxx> is not specified and the compiler is not configured
440         using --with-cpu=<xxx>, use the bits from the TARGET_DEFAULT to
441         set the initial options.
442
443 2012-10-02  Sharad Singhai  <singhai@google.com>
444
445         PR testsuite/54772
446         * tree-vect-stmts.c (vectorizable_operation): Add missing return.
447
448 2012-10-02  David Edelsohn  <dje.gcc@gmail.com>
449
450         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
451         set TARGET_ALTIVEC_VRSAVE for TARGET_ELF.
452         (rs6000_stack_info): Only set vrsave_mask if TARGET_ALTIVEC_VRSAVE.
453
454 2012-10-02  Jakub Jelinek  <jakub@redhat.com>
455
456         PR tree-optimization/54713
457         * expr.c (categorize_ctor_elements_1): Don't assume purpose is
458         non-NULL.
459         * tree-cfg.c (verify_gimple_assign_single): Add verification of
460         vector CONSTRUCTORs.
461         * tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE
462         CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE,
463         and don't check index.
464         * tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR ctor
465         elements first if their type isn't compatible with vector element type.
466
467 2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>
468
469         * tree.h (DECL_NONLOCAL_FRAME): New macro.
470         * tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
471         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
472         DECL_NONLOCAL_FRAME flag.
473         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
474         DECL_NONLOCAL_FRAME flag.
475
476 2012-10-02  Marc Glisse  <marc.glisse@inria.fr>
477
478         * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
479         boolean_type_node for vectors.
480
481 2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
482
483         * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
484         (rs6000_density_test): Rework to accommodate 09-30 change by
485         Sharad Singhai.
486
487         * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
488
489 2012-10-01  Dehao Chen  <dehao@google.com>
490
491         PR middle-end/54759
492         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
493         LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
494         (slpeel_tree_peel_loop_to_edge): Likewise.
495         * tree-vectorizer.c (vectorize_loops): Likewise.
496
497 2012-10-01  Andrew MacLeod  <amacleod@redhat.com>
498
499         PR target/54087
500         * optabs.c (expand_atomic_fetch_op_no_fallback): New.  Factored code
501         from expand_atomic_fetch_op.
502         (expand_atomic_fetch_op):  Try atomic_{add|sub} operations in terms of
503         the other one if direct opcode fails.
504
505 2012-10-01  Uros Bizjak  <ubizjak@gmail.com>
506
507         PR rtl-optimization/54457
508         * simplify-rtx.c (simplify_subreg):
509         Simplify (subreg:M (op:N ((x:N) (y:N)), 0)
510         to (op:M (subreg:M (x:N) 0) (subreg:M (x:N) 0)), where
511         the outer subreg is effectively a truncation to the original mode M.
512
513 2012-10-01  Richard Guenther  <rguenther@suse.de>
514
515         * builtins.def (ATTR_MATHFN_FPROUNDING): Do not use no-vops
516         with -frounding-math.
517         * builtin-attrs.def (ATTR_PURE_NOTHROW_NOVOPS_LIST): Remove.
518         (ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST): Likewise.
519
520 2012-10-01  Eric Botcazou  <ebotcazou@adacore.com>
521
522         * tree.h (copy_mem_ref_info): Delete.
523         * tree-ssa-address.c (copy_mem_ref_info): Likewise.
524         (maybe_fold_tmr): Copy flags manually.
525         * tree-ssa-loop-im.c (simple_mem_ref_in_stmt): Rewrite.
526
527 2012-10-01  Marc Glisse  <marc.glisse@inria.fr>
528
529         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
530         Detect the identity.
531         <VEC_CONCAT>: Handle VEC_SELECTs from the same vector.
532
533 2012-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
534
535         PR target/50457
536         * config/sh/sh.opt (matomic-model): New option.
537         (msoft-atomic): Mark as deprecated and alias to
538         matomic-model=soft-gusa.
539         (mhard-atomic): Delete.
540         * config/sh/predicates.md (gbr_displacement): New predicate.
541         * config/sh/sh-protos.h (sh_atomic_model): New struct.
542         (selected_atomic_model): New declaration.
543         (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, TARGET_ATOMIC_SOFT_GUSA,
544         TARGET_ATOMIC_HARD_LLCS, TARGET_ATOMIC_SOFT_TCB,
545         TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX, TARGET_ATOMIC_SOFT_IMASK):
546         New macros.
547         * config/sh/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Adapt setting to
548         default atomic model.
549         * config/sh/sh.c (selected_atomic_model_): New global variable.
550         (selected_atomic_model, parse_validate_atomic_model_option): New
551         functions.
552         (sh_option_override): Replace atomic selection checks with call to
553         parse_validate_atomic_model_option.
554         * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
555         UNSUPPORTED_HARD_ATOMIC_CPU): Delete.
556         (DRIVER_SELF_SPECS): Remove atomic checks.
557         config/sh/sync.md: Update documentation comments.
558         (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
559         atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
560         atomic_<fetchop_name>_fetch<mode>, atomic_nand_fetch<mode>): Use
561         TARGET_ATOMIC_ANY as condition.  Add TARGET_ATOMIC_STRICT check for
562         SH4A case.  Handle new TARGET_ATOMIC_SOFT_TCB and
563         TARGET_ATOMIC_SOFT_IMASK cases.
564         (atomic_test_and_set): Handle new TARGET_ATOMIC_SOFT_TCB and
565         TARGET_ATOMIC_SOFT_IMASK cases.
566         (atomic_compare_and_swapsi_hard, atomic_exchangesi_hard,
567         atomic_fetch_<fetchop_name>si_hard, atomic_fetch_nandsi_hard,
568         atomic_<fetchop_name>_fetchsi_hard, atomic_nand_fetchsi_hard):
569         Add TARGET_ATOMIC_STRICT check.
570         (atomic_compare_and_swap<mode>_hard, atomic_exchange<mode>_hard,
571         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nand<mode>_hard,
572         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetch<mode>_hard,
573         atomic_test_and_set_hard): Use TARGET_ATOMIC_HARD_LLCS condition.
574         (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
575         atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
576         atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
577         atomic_test_and_set_soft): Append _gusa to the insn names and use
578         TARGET_ATOMIC_SOFT_GUSA as condition.
579         (atomic_compare_and_swap<mode>_soft_tcb,
580         atomic_exchange<mode>_soft_tcb,
581         atomic_fetch_<fetchop_name><mode>_soft_tcb,
582         atomic_fetch_nand<mode>_soft_tcb,
583         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
584         atomic_nand_fetch<mode>_soft_tcb, atomic_test_and_set_soft_tcb):
585         New insns.
586         (atomic_compare_and_swap<mode>_soft_imask,
587         atomic_exchange<mode>_soft_imask,
588         atomic_fetch_<fetchop_name><mode>_soft_imask,
589         atomic_fetch_nand<mode>_soft_imask,
590         atomic_<fetchop_name>_fetch<mode>_soft_imask,
591         atomic_nand_fetch<mode>_soft_imask, atomic_test_and_set_soft_imask):
592         New insns.
593         * doc/invoke.texi (SH Options): Document new matomic-model option.
594         Remove msoft-atomic and mhard-atomic options.
595
596 2012-10-01  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
597
598         PR target/54746
599         * config/s390/s390.c (s390_option_override): Add missing break.
600
601 2012-09-30  Sharad Singhai  <singhai@google.com>
602
603         * dumpfile.c: New file with parts moved from tree-dump.c.
604         (pflags): New variable.
605         (alt_flags): Ditto.
606         (alt_dump_file): Ditto.
607         (dump_files):  Update to include additional fields.
608         (struct dump_option_value_info): Add additional entries.
609         (get_dump_file_name): Use command line filename if available.
610         (dump_open_alternate_stream): New function.
611         (dump_loc): Ditto.
612         (dump_gimple_stmt): Ditto.
613         (dump_gimple_stmt_loc): Ditto.
614         (dump_generic_expr): Ditto.
615         (dump_generic_expr_loc): Ditto.
616         (dump_printf): Ditto.
617         (dump_printf_loc): Ditto.
618         (dump_start): Ditto.
619         (dump_finish): Ditto.
620         (dump_begin): Ditto.
621         (dump_enabled_p): Return true if either of the dump types is enabled.
622         (dump_initialized_p): Return true if either type of dump is
623         initialized.
624         (dump_end): Do not close standard streams.
625         (dump_enable_all): Handle filenames for regular dumps.
626         (dump_switch_p_1): Handle command-line dump filenames.
627         (opt_info_enable_all): New function.
628         (opt_info_switch_p_1): Ditto.
629         (opt_info_switch_p): Ditto.
630         (dump_kind_p): Ditto.
631         (dump_basic_block): Ditto.
632         (dump_combine_total_stats): Ditto.
633         (dump_remap_tree_vectorizer_verbose): Ditto.
634         * gimple-pretty-print.h: Rename dump_gimple_stmt to
635         pp_gimple_stmt_1.  All callers updated.
636
637 2012-09-30  Sharad Singhai  <singhai@google.com>
638
639         * doc/invoke.texi: Add documentation for the new -fopt-info option.
640         * tree-dump.c: Move general dump file related functionality into
641         dumpfile.c. Remove unneeded headers.
642         * tree-dump.h: Move function declarations into dumpfile.h.
643         * dumpfile.h: Include "line-map.h". Add defines for MSG flags.
644         (struct dump_file_info): Move here from tree-dump.c.  Rename flags
645         to pflags, state to pstate, stream to pstream, filename to
646         pfilename. All callers updated. Add alt_flags, alt_state,
647         alt_filenmae, alt_stream.
648         * tree-vectorizer.c: Include "dumpfile.h". Remove vect_dump.
649         (vect_set_dump_settings): Remove.
650         (vect_print_dump_info): Ditto.
651         * tree-vectorizer.h: Remove declaration of vect_dump and
652         vect_print_dump_info.
653         * tree-vect-loop.c: Include "dumpfile.h". Use new dump style.
654         * tree-vect-data-refs.c: Ditto.
655         * tree-vect-stmts.c: Ditto.
656         * tree-vect-slp.c: Ditto.
657         * tree-vect-patterns.c: Ditto.
658         * tree-vect-loop-manip.c: Ditto.
659         * opts.c (vect_set_verbosity_level): Remove.
660         (common_handle_option): Handle -fopt-info flag. Deprecate
661         -ftree-vectorizer-verbose.
662         * tree-parloops.c (gather_scalar_reductions): Remove reference to
663         vect_dump.
664         * flag-types.h: Remove vect_verbosity_levels.
665         * common.opt: Add -fopt-info. Deprecate -ftree-vectorizer-verbose.
666         * opts-global.c (dump_remap_tree_vectorizer_verbose): New function.
667         (handle_common_deferred_options): Handle -fopt-info and
668         -ftree-vectorizer-verbose.
669         * Makefile.in: Add dumpfile.o.
670         (tree-dump.o): Update dependencies.
671         (tree-vect-loop.o): Ditto.
672         (tree-vect-loop-manip.o): Ditto.
673         (tree-vect-slp.o): Ditto.
674         (tree-vect-stmts.o): Ditto.
675         (tree-vectorizer.o): Ditto.
676         (opts.o): Ditto.
677         * passes.c (finish_optimization_passes): Instead of using
678         dump_begin/dump_end, use dump_start/dump_finish. Do not use dump_file.
679         (pass_init_dump_file): Ditto.
680
681 2012-09-30  Joern Rennecke  <joern.rennecke@embecosm.com>
682
683         PR rtl-optimization/38449:
684         * hooks.c (hook_bool_const_rtx_const_rtx_true): New function.
685         * hooks.h (hook_bool_const_rtx_const_rtx_true): Declare.
686         * target.def: Merge in definitions and documentation for
687         TARGET_CAN_FOLLOW_JUMP.
688         * doc/tm.texi.in: Add documentation locations for the above.
689         * doc/tm.texi: Regenerate.
690         * reorg.c (follow_jumps): New parameters jump and crossing.
691         Changed all callers.
692
693 2012-09-30  Eric Botcazou  <ebotcazou@adacore.com>
694
695         * reorg.c (relax_delay_slots): Use delay_insn consistently.
696
697         * config/sparc/sparc.c (gen_stack_pointer_dec): Delete.
698         (sparc_expand_epilogue): Use gen_stack_pointer_inc and adjust.
699         (sparc_flat_expand_epilogue): Likewise.
700         (emit_and_preserve): Likewise.
701         (sparc_fold_builtin): Fix thinko in latest change.
702
703 2012-09-30  Andreas Schwab  <schwab@linux-m68k.org>
704
705         * config/m68k/m68k.md: Add names to bitfield insert and extract
706         insns.
707         (*insv_8_16_reg): Remove constraints and conditions that assume
708         that operand 0 could be a MEM.
709         (*extzv_8_16_reg, *extv_8_16_reg): Likewise, for operand 1.
710
711 2012-09-30  Jan Hubicka  <jh@suse.cz>
712
713         * cfgloop.c (scale_loop_profile): Move to...
714         * cfgloopmanip.c (scale_loop_profile): .. here; use
715         scale_loop_frequencies.
716         (loopify): Use RDIV.
717
718 2012-09-28  Jan Hubicka  <jh@suse.cz>
719
720         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile.
721
722 2012-09-28  Jan Hubicka  <jh@suse.cz>
723
724         * function.c (dup_block_and_redirect): Update profile.
725
726 2012-09-29  Andreas Tobler  <andreast@fgznet.ch>
727
728         * config.gcc: Replace 'host' with 'target' when configuring for
729         powerpc64*-*-freebsd.
730
731 2012-09-29  Marc Glisse  <marc.glisse@inria.fr>
732
733         * tree.c (truth_type_for): New function.
734         * tree.h (truth_type_for): Declare.
735         * gimple-fold.c (and_comparisons_1): Call it.
736         (or_comparisons_1): Likewise.
737         * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
738         boolean_type_node for vectors.
739
740 2012-09-28  Jan Hubicka  <jh@suse.cz>
741
742         * basic-block.h (RDIV): Define.
743         (EDGE_FREQUENCY): Simplify.
744         (check_probability, combine_probabilities, apply_probability,
745         inverse_probability): New.
746         * cfgloop.c (scale_loop_profile): New function.
747         * cfgloop.h (scale_loop_profile): Declare.
748         (slpeel_add_loop_guard): Add probability parameter.
749         (set_prologue_iterations): Add probability parameter.
750         (slpeel_tree_peel_loop_to_edge): Add bound1 and bound2 parameters;
751         update probabilities correctly.
752         (vect_do_peeling_for_alignment, vect_gen_niters_for_prolog_loop): New.
753
754 2012-09-20  Bernd Schmidt  <bernds@codesourcery.com>
755
756         PR bootstrap/54688
757         * sched-deps.c (parse_add_or_inc): Remove MINUS handling.  Take
758         STACK_GROWS_DOWNWARD into account.
759
760 2012-09-28  Jakub Jelinek  <jakub@redhat.com>
761
762         PR target/54716
763         * config/i386/predicates.md (nonimmediate_or_const_vector_operand):
764         New predicate.
765         * config/i386/i386.c (ix86_expand_vector_logical_operator): New
766         function.
767         * config/i386/i386-protos.h (ix86_expand_vector_logical_operator): New
768         prototype.
769         * config/i386/sse.md (<code><mode>3 VI logic): Use it.
770
771         PR tree-optimization/54713
772         * fold-const.c (vec_cst_ctor_to_array): Give up if vector CONSTRUCTOR
773         has vector elements.
774         (fold_ternary_loc) <case BIT_FIELD_REF>: Likewise.
775         * tree-vect-generic.c (vector_element): Don't rely on CONSTRUCTOR elts
776         indexes.  Use BIT_FIELD_REF if CONSTRUCTOR has vector elements.
777         (lower_vec_perm): Use NULL_TREE CONSTRUCTOR indexes.
778
779 2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
780
781         * config/avr/avr.md (adjust_len): Add lpm.
782         (reload_in<mode>): Use avr_out_lpm for output.  Use "lpm" for
783         adjust_len.
784         * config/avr/avr-protos.h (avr_out_lpm): New prototype.
785         * config/avr/avr.c (avr_out_lpm): Make global.
786         (adjust_insn_length): Handle ADJUST_LEN_LPM.
787
788 2012-09-28  Richard Guenther  <rguenther@suse.de>
789
790         PR lto/47799
791         * lto-streamer-out.c (tree_is_indexable): Make PARM_DECLs global.
792         (lto_output_tree_ref): Handle references to them.
793         (output_function): Do not output function arguments again.
794         * lto-streamer-in.c (input_function): Do not input arguments
795         again, nor overwrite them.
796
797 2012-09-28  Richard Guenther  <rguenther@suse.de>
798
799         * cgraph.h (symtab_node_base): Re-order and pack fields.
800
801 2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
802
803         * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic.
804
805 2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
806
807         PR rtl-optimization/52543
808         * config/avr/avr.c (avr_mode_dependent_address_p): Return true for
809         all non-generic address spaces.
810         (TARGET_SECONDARY_RELOAD): New hook define to...
811         (avr_secondary_reload): ...this new static function.
812         * config/avr/avr.md (reload_in<mode>): New insns.
813
814         Undo r185605 (mostly):
815         * config/avr/avr-protos.h (avr_load_lpm): Remove.
816         * config/avr/avr.c (avr_load_libgcc_p): Don't restrict to __flash
817         loads.
818         (avr_out_lpm): Also handle loads > 1 byte.
819         (avr_load_lpm): Remove.
820         (avr_find_unused_d_reg): New static function.
821         (avr_out_lpm_no_lpmx): New static function.
822         (adjust_insn_length): Remove ADJUST_LEN_LOAD_LPM.
823         * config/avr/avr.md (unspec): Remove UNSPEC_LPM.
824         (load_<mode>_libgcc): Use MEM instead of UNSPEC_LPM.
825         (load_<mode>, load_<mode>_clobber): Remove.
826         (mov<mode>): For multi-byte move from non-generic
827         16-bit address spaces: Expand to *mov<mode> again.
828         (load<mode>_libgcc): New expander.
829         (split-lpmx): Remove split.
830
831 2012-09-27  Dehao Chen  <dehao@google.com>
832
833         * tree.h (tree_constructor): Remove IS_UNKNOWN_LOCATION.
834         (extern void protected_set_expr_location): Likewise.
835         (function_args_iter_next): Likewise.
836         (inlined_function_outer_scope_p): Likewise.
837         * input.h (IS_UNKNOWN_LOCATION): Likewise.
838         * fold-const.c (expr_location_or): Likewise.
839         * lto-cgraph.c (output_node_opt_summary): Likewise.
840         * dwarf2out.c (add_src_coords_attributes): Likewise.
841         * tree-eh.c (lower_try_finally_dup_block): Likewise.
842         * profile.c (branch_prob):
843         * cfgexpand.c (expand_gimple_cond): Likewise.
844         (expand_gimple_basic_block): Likewise.
845         (construct_exit_block): Likewise.
846         (gimple_expand_cfg): Likewise.
847         * cfgcleanup.c (try_forward_edges): Likewise.
848         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
849         (dump_scope_block): Likewise.
850         * ipa-prop.c (ipa_write_jump_function): Likewise.
851         * rtl.h (extern void rtl_check_failed_flag): Likewise.
852         * gimple.h (gimple_set_location): Likewise.
853         (gimple_has_location): Likewise.
854         * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
855         (force_nonfallthru_and_redirect): Likewise.
856         (fixup_reorder_chain): Likewise.
857         (cfg_layout_merge_blocks): Likewise.
858
859 2012-09-27  Meador Inge  <meadori@codesourcery.com>
860
861         * gcc-ar.c (main): Handle the returning of the sub-process error
862         code correctly.
863
864 2012-09-27  Ulrich Weigand  <ulrich.weigand@linaro.org>
865
866         * lower-subreg.c (enum classify_move_insn): Rename
867         SIMPLE_PSEUDO_REG_MOVE to DECOMPOSABLE_SIMPLE_MOVE.
868         (find_decomposable_subregs): Update.
869         (decompose_multiword_subregs): Add DECOMPOSE_COPIES parameter.
870         Only mark pseudo-to-pseudo copies as DECOMPOSABLE_SIMPLE_MOVE
871         if that parameter is true.
872         (rest_of_handle_lower_subreg): Call decompose_multiword_subregs
873         with DECOMPOSE_COPIES false.
874         (rest_of_handle_lower_subreg2): Call decompose_multiword_subregs
875         with DECOMPOSE_COPIES true.
876
877 2012-09-27  Marek Polacek  <polacek@redhat.com>
878
879         * doc/gcov.texi (Gcov Data Files): Fix a typo.
880
881 2012-09-27  Jakub Jelinek  <jakub@redhat.com>
882
883         PR target/54703
884         * simplify-rtx.c (simplify_binary_operation_1): Perform
885         (x - (x & y)) -> (x & ~y) optimization only for integral modes.
886
887 2012-09-27  Marc Glisse  <marc.glisse@inria.fr>
888
889         PR c/53024
890         PR c++/54427
891         * doc/extend.texi (Vector Extensions): C++ improvements.
892         Power of 2 size requirement.
893
894 2012-09-27  Richard Guenther  <rguenther@suse.de>
895
896         PR lto/54709
897         * lto-symtab.c (resolution_guessed_p): Remove.
898         (set_resolution_guessed): Likewise.
899         (lto_symtab_register_decl): Remove assert.
900         (lto_symtab_resolve_symbols): Do not alter symbol resolutions
901         and return the prevailing symbol, checking for multiple prevailing
902         symbols here.
903         (lto_symtab_merge_decls_1): Use the result from
904         lto_symtab_resolve_symbols.  Do not alter symbol resolutions.
905
906 2012-09-26  Steve Ellcey  <sellcey@mips.com>
907
908         PR web/54711
909         * doc/install.texi: Fix example.
910
911 2012-09-26  Dehao Chen  <dehao@google.com>
912
913          * tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void)
914         for function parameter.
915         (remove_unused_locals): Don't use LOCATION_BLOCK if it is NULL.
916
917 2012-09-26  Oleg Endo  <olegendo@gcc.gnu.org>
918
919         * doc/extend.texi (bswap Builtins): Change signed types to unsigned
920         types.
921
922 2012-09-26  Ian Lance Taylor  <iant@google.com>
923
924         * diagnostic.c (bt_callback): Cast pc when calling fprintf.
925
926 2012-09-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
927
928         PR tree-optimization/54674
929         * gimple-ssa-strength-reduction.c (analyze_increments): Don't
930         introduce a multiplication with a pointer operand.
931
932 2012-09-26  Georg-Johann Lay  <avr@gjlay.de>
933
934         PR middle-end/54635
935         * doc/tm.texi.in (TARGET_MODE_DEPENDENT_ADDRESS_P): Document new
936         parameter addrspace.
937         * doc/tm.texi: Regenerate.
938         * target.def (mode_dependent_address_p): Add addr_space_t parameter.
939         * targhooks.h (default_mode_dependent_address_p): Ditto.
940         * targhooks.c (default_mode_dependent_address_p): Ditto.
941         * expr.c (convert_move): Pass address space to
942         mode_dependent_address_p.
943         * combine.c (combine_simplify_rtx): Ditto.
944         (make_extraction): Ditto.
945         (simplify_shift_const_1): Ditto.
946         (gen_lowpart_for_combine): Ditto.
947         * lower-subreg.c (simple_move_operand): Ditto.
948         * recog.c (simplify_while_replacing): Ditto.
949         (offsettable_address_addr_space_p): Ditto.
950         (mode_dependent_address_p): Ditto.
951         * simplify-rtx.c (simplify_unary_operation_1): Ditto.
952         (simplify_subreg): Ditto.
953         * config/m68k/m68k.md: Ditto.
954         * config/vax/vax.md: Ditto.
955         * config/vax/constraints.md (Q): Ditto.
956         * config/vax/predicates.md (indexed_memory_operand): Ditto.
957         * config/alpha/alpha.c (alpha_mode_dependent_address_p): Add
958         unused addr_space_t parameter.
959         * config/avr/avr.c (avr_mode_dependent_address_p): Ditto.
960         * config/h8300/h8300.c (h8300_mode_dependent_address_p): Ditto.
961         * config/m32r/m32r.c (m32r_mode_dependent_address_p): Ditto.
962         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): Ditto.
963         * config/rx/rx.c (rx_mode_dependent_address_p): Ditto.
964         * config/sparc/sparc.c (sparc_mode_dependent_address_p): Ditto.
965         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
966         Ditto.
967         * config/vax/vax.c (vax_mode_dependent_address_p): Ditto.
968         * config/xtensa/xtensa.c (xtensa_mode_dependent_address_p): Ditto.
969
970 2012-09-26  Christophe Lyon <christophe.lyon@linaro.org>
971
972         * tree-ssa-math-opts.c (bswap_stats): Add found_16bit field.
973         (execute_optimize_bswap): Add support for builtin_bswap16.
974
975 2012-09-26  Richard Guenther  <rguenther@suse.de>
976
977         * tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.
978
979 2012-09-26  Ian Lance Taylor  <iant@google.com>
980
981         * diagnostic.c: Include "demangle.h" and "backtrace.h".
982         (bt_stop): New static array.
983         (bt_callback, bt_err_callback): New static functions.
984         (diagnostic_action_after_output): Call backtrace_full for DK_ICE.
985         * Makefile.in (BACKTRACE): New variable.
986         (BACKTRACEINC, LIBBACKTRACE): New variables.
987         (BACKTRACE_H): New variable.
988         (LIBDEPS, LIBS): Add $(LIBBACKTRACE).
989         (INCLUDES): Add $(BACKTRACEINC).
990         (diagnostic.o): Depend upon $(DEMANGLE_H) and $(BACKTRACE_H).
991
992 2012-09-25  Segher Boessenkool  <segher@kernel.crashing.org>
993
994         PR target/51274
995         PR target/53087
996         * config/rs6000/rs6000.md (ne0si): Remove unnecessary
997         earlyclobber.  Merge with...
998         (ne0di): ... to...
999         (ne0_<mode>): New.
1000         (plus_ne0si): Merge with...
1001         (plus_ne0di): ... to...
1002         (plus_ne0_<mode>): New.
1003         (compare_plus_ne0si): Merge with...
1004         (compare_plus_ne0di)... to...
1005         (compare_plus_ne0_<mode>): New.
1006         (compare_plus_ne0_<mode>_1): New.
1007         (plus_ne0si_compare): Merge with...
1008         (plus_ne0di_compare)... to...
1009         (plus_ne0_<mode>_compare): New.
1010
1011 2012-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
1012
1013         PR target/54089
1014         * config/sh/constraints.md (Jhb): New constraint.
1015         * config/sh/predicates.md (negt_reg_shl31_operand): New predicate.
1016         * config/sh/sh.md (rotrsi3): New expander.
1017         (rotrsi3_1, *rotrsi3_1, *rotlsi3_1): New insns.
1018         (rotlsi3, rotlhi3): Use const_int_operand predicate instead of
1019         immediate_operand and remove CONST_INT_P checks in expansion code.
1020         (*rotcr): Cleanup variable usage.  Handle preceding nott insn.  Add
1021         split with swapped operands.
1022         (*rotcr_neg_t, *movt_msb, *negt_msb): New insns and splits.
1023
1024 2012-09-25  Aldy Hernandez  <aldyh@redhat.com>
1025
1026         PR middle-end/53850
1027         * trans-mem.c (expand_call_tm): Handle late built built-ins.
1028
1029 2012-09-25  Georg-Johann Lay  <avr@gjlay.de>
1030
1031         PR other/54701
1032         * config/avr/avr-log.c (avr_double_int_pop_digit): Rewrite using
1033         double_int::udivmod.
1034
1035 2012-09-25  Georg-Johann Lay  <avr@gjlay.de>
1036
1037         * config/avr/avr.c (avr_set_current_function): Check cfun->machine
1038         to be non-NULL.
1039
1040 2012-09-25  Georg-Johann Lay  <avr@gjlay.de>
1041
1042         PR target/54641
1043         * config/avr/t-avr: Use ALL_COMPILERFLAGS instead of ALL_CFLAGS
1044         for sources compiled with COMPILER.
1045
1046 2012-09-25  Richard Guenther  <rguenther@suse.de>
1047
1048         PR lto/54625
1049         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Do not merge
1050         cgraph nodes for builtins.
1051
1052 2012-09-25  Jakub Jelinek  <jakub@redhat.com>
1053
1054         PR tree-optimization/54676
1055         * tree-vrp.c (set_and_canonicalize_value_range): Handle
1056         one bit precision properly.
1057
1058         PR other/54692
1059         * configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og properly.
1060         * configure: Regenerated.
1061
1062 2012-09-25  Georg-Johann Lay  <avr@gjlay.de>
1063
1064         PR other/54701
1065         * config/avr/avr.c (avr_map_decompose): Use double_int::from_uhwi
1066         instead of uhwi_to_double_int.
1067
1068 2012-09-25  Richard Guenther  <rguenther@suse.de>
1069
1070         * lto-symtab.c (lto_symtab_merge_decls_1): Properly merge
1071         all of the chain.
1072
1073 2012-09-25  Richard Guenther  <rguenther@suse.de>
1074
1075         PR tree-optimization/53663
1076         * tree-ssa-sccvn.c (vn_reference_lookup_3): Conditional
1077         native encode/interpret translation on VN_WALKREWRITE.
1078
1079 2012-09-24  Dehao Chen  <dehao@google.com>
1080
1081         * tree-cfg.c (move_stmt_op): Reset the expr block only when necessary.
1082         (move_block_to_fn): Reset the edge's goto block even
1083         when the goto locus is unknown.
1084
1085 2012-09-24  Lawrence Crowl  <crowl@google.com>
1086
1087         * double-int.h (double_int::from_pair): New.
1088         (double_int::wide_mul_with_sign): New.
1089         (double_int::sub_with_overflow): New.
1090         (double_int::neg_with_overflow): New.
1091         (double_int::divmod_with_overflow): New.
1092         (shwi_to_double_int): Remove.
1093         (uhwi_to_double_int): Remove.
1094         (double_int_to_shwi): Remove.
1095         (double_int_to_uhwi): Remove.
1096         (double_int_fits_in_uhwi_p): Remove.
1097         (double_int_fits_in_shwi_p): Remove.
1098         (double_int_fits_in_hwi_p): Remove.
1099         (double_int_mul): Remove.
1100         (double_int_mul_with_sign): Remove.
1101         (double_int_add): Remove.
1102         (double_int_sub): Remove.
1103         (double_int_neg): Remove.
1104         (double_int_div): Remove.
1105         (double_int_sdiv): Remove.
1106         (double_int_udiv): Remove.
1107         (double_int_mod): Remove.
1108         (double_int_smod): Remove.
1109         (double_int_umod): Remove.
1110         (double_int_divmod): Remove.
1111         (double_int_sdivmod): Remove.
1112         (double_int_udivmod): Remove.
1113         (double_int_multiple_of): Remove.
1114         (double_int_setbit): Remove.
1115         (double_int_ctz): Remove.
1116         (double_int_not): Remove.
1117         (double_int_ior): Remove.
1118         (double_int_and): Remove.
1119         (double_int_and_not): Remove.
1120         (double_int_xor): Remove.
1121         (double_int_lshift): Remove.
1122         (double_int_rshift): Remove.
1123         (double_int_lrotate): Remove.
1124         (double_int_rrotate): Remove.
1125         (double_int_negative_p): Remove.
1126         (double_int_cmp): Remove.
1127         (double_int_scmp): Remove.
1128         (double_int_ucmp): Remove.
1129         (double_int_max): Remove.
1130         (double_int_smax): Remove.
1131         (double_int_umax): Remove.
1132         (double_int_min): Remove.
1133         (double_int_smin): Remove.
1134         (double_int_umin): Remove.
1135         (double_int_ext): Remove.
1136         (double_int_sext): Remove.
1137         (double_int_zext): Remove.
1138         (double_int_mask): Remove.
1139         (double_int_max_value): Remove.
1140         (double_int_min_value): Remove.
1141         (double_int_zero_p): Remove.
1142         (double_int_one_p): Remove.
1143         (double_int_minus_one_p): Remove.
1144         (double_int_equal_p): Remove.
1145         (double_int_popcount): Remove.
1146         (extern add_double_with_sign): Remove.
1147         (#define add_double): Remove.
1148         (extern neg_double): Remove.
1149         (extern mul_double_with_sign): Remove.
1150         (extern mul_double_wide_with_sign): Remove.
1151         (#define mul_double): Remove.
1152         (extern lshift_double): Remove.
1153         (extern div_and_round_double): Remove.
1154         * double-int.c (add_double_with_sign): Make static.
1155         (#defined add_double): Localized from header.
1156         (neg_double): Make static.
1157         (mul_double_with_sign): Make static.
1158         (mul_double_wide_with_sign): Make static.
1159         (#defined mul_double): Localized from header.
1160         (lshift_double): Make static.
1161         (div_and_round_double): Make static.
1162         (double_int::wide_mul_with_sign): New.
1163         (double_int::sub_with_overflow): New.
1164         (double_int::neg_with_overflow): New.
1165         (double_int::divmod_with_overflow): New.
1166         * emit-rtl.c (init_emit_once): Change to new double_int API.
1167         * explow.c (plus_constant): Likewise.
1168         * expmed.c (choose_multiplier): Likewise.
1169         * fold-const.c (#define OVERFLOW_SUM_SIGN): Remove.
1170         (int_const_binop_1): Change to new double_int API.
1171         (fold_div_compare): Likewise.
1172         (maybe_canonicalize_comparison): Likewise.
1173         (pointer_may_wrap_p): Likewise.
1174         (fold_negate_const): Likewise.
1175         (fold_abs_const): Likewise.
1176         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
1177         (simplify_const_binary_operation): Likewise.
1178         * tree-chrec.c (tree_fold_binomial): Likewise.
1179         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
1180         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
1181         * config/avr/avr.c (avr_double_int_push_digit): Likewise.
1182         (avr_map): Likewise.
1183         (avr_map_decompose): Likewise.
1184         (avr_out_insert_bits): Likewise.
1185
1186 2012-09-24  Janis Johnson  <janisjo@codesourcery.com>
1187
1188         * doc/sourcebuild.texi (Selectors): Document the use of target
1189         and xfail used together.
1190
1191 2012-09-24  Richard Guenther  <rguenther@suse.de>
1192
1193         PR middle-end/54632
1194         * tree-ssa-live.c (clear_unused_block_pointer_1): Do not
1195         handle DECL_DEBUG_EXPR_IS_FROM here...
1196         (clear_unused_block_pointer): ... but here when walking all
1197         local decls.
1198
1199 2012-09-24  Richard Guenther  <rguenther@suse.de>
1200
1201         PR tree-optimization/54684
1202         * tree-ssa-ccp.c (optimize_unreachable): Properly update stmts.
1203
1204 2012-09-24  Marc Glisse  <marc.glisse@inria.fr>
1205
1206         * tree-ssa-forwprop.c: Include tree-ssa-propagate.h.
1207         (simplify_bitfield_ref): Handle constructors.
1208         * Makefile.in (tree-ssa-forwprop.o): Depend on tree-ssa-propagate.h.
1209
1210 2012-09-24  Richard Guenther  <rguenther@suse.de>
1211
1212         * tree-ssa-pre.c (bitmap_find_leader, create_expression_by_pieces,
1213         find_or_generate_expression): Remove dominating stmt argument.
1214         (find_leader_in_sets, phi_translate_1, bitmap_find_leader,
1215         create_component_ref_by_pieces_1, create_component_ref_by_pieces,
1216         do_regular_insertion, do_partial_partial_insertion): Adjust.
1217         (compute_avail): Do not set uids.
1218
1219 2012-09-24  Eric Botcazou  <ebotcazou@adacore.com>
1220
1221         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in
1222         TYPE_NONALIASED_COMPONENT flag.
1223         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out
1224         TYPE_NONALIASED_COMPONENT flag.
1225
1226 2012-09-24  Jia Liu  <proljc@gmail.com>
1227
1228         * doc/lto.texi: Separate sections.
1229         * doc/plugins.texi: Likewise.
1230
1231 2012-09-24  Richard Guenther  <rguenther@suse.de>
1232
1233         PR middle-end/52173
1234         * gimple.c (gimple_copy): Properly mark the copy modified
1235         if SSA operands are present.
1236
1237 2012-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1238
1239         PR tree-optimization/54669
1240         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Invoke
1241         maybe_clean_or_replace_eh_stmt on the modified use statements.
1242
1243 2012-09-23  Marc Glisse  <marc.glisse@inria.fr>
1244
1245         * expr.c (do_store_flag): Remove duplicated code.
1246
1247 2012-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
1248
1249         * config/rs6000/predicates.md (altivec_register_operand,
1250         vsx_register_operand, vfloat_operand, vint_operand,
1251         vlogical_operand, gpc_reg_operand, cc_reg_operand,
1252         cc_reg_not_cr0_operand, cc_reg_not_micro_cr0_operand):
1253         If op is a SUBREG, consider its SUBREG_REG instead.
1254
1255 2012-09-22  Uros Bizjak  <ubizjak@gmail.com>
1256
1257         * optabs.c (prepare_cmp_insn): Expand comparison of the result
1258         of memcmp through generic comparison expansion code.
1259
1260 2012-09-21  Anthony Green  <green@moxielogic.com>
1261
1262         * config/moxie/moxie.opt: Add -mno-crt0 option.
1263         * config/moxie/moxie.h (STARTFILE_SPEC): Handle -mno-crt0 option.
1264         * doc/invoke.texi (Option Summary): Document -mno-crt0 option.
1265
1266 2012-09-21  Jack Howarth  <howarth@bromo.med.uc.edu>
1267
1268         PR bootstrap/54642
1269         * Makefile.in (lto-symtab.o): Remove gt-lto-symtab.h dependency.
1270
1271 2012-09-21  Dehao Chen  <dehao@google.com>
1272
1273         PR go/54649
1274         * tree-eh.c (lower_try_finally_dup_block): Set the correct block for
1275         stmts in the duplicated EH block.
1276
1277 2012-09-21  Richard Guenther  <rguenther@suse.de>
1278
1279         PR tree-optimization/54647
1280         * tree-ssa-pre.c (compute_avail): Do not put COND_EXPR
1281         or VEC_COND_EXPR into EXP_GEN again.
1282
1283 2012-09-21  Jakub Jelinek  <jakub@redhat.com>
1284
1285         PR tree-optimization/54629
1286         * tree-loop-distribution.c (classify_partition): Free loop nest only
1287         after freeing ddr.  Free ddr and loop nest also if successful.
1288
1289 2012-09-21  Matthias Klose  <doko@ubuntu.com>
1290
1291         * config/arm/arm.c (arm_mangle_type): Don't warn anymore that
1292         4.4 has changed the `va_list' mangling.
1293
1294 2012-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1295
1296         PR rtl-optimization/54290
1297         PR rtl-optimization/54644
1298         * reload1.c (choose_reload_regs): Fix thinko in previous change.
1299
1300 2012-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
1301
1302         * config/rs6000/rs6000.md (define_split for plus_eqsi):
1303         Fix output pattern.
1304
1305 2012-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1306
1307         * reload1.c (choose_reload_regs): Add missing #ifdef/#endif pair.
1308
1309 2012-09-20  Bernd Schmidt  <bernds@codesourcery.com>
1310
1311         PR bootstrap/54643
1312         * haifa-sched.c (schedule_block): Skip find_modifiable_mems if using
1313         SCHED_PRESSURE_MODEL.
1314
1315 2012-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
1316
1317         * rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling.
1318
1319 2012-09-20  Marek Polacek  <polacek@redhat.com>
1320
1321         * tree-ssa-operands.c (get_expr_operands): Merge identical cases.
1322
1323 2012-09-20  Marek Polacek  <polacek@redhat.com>
1324
1325         * tree-ssa-threadupdate.c (mark_threaded_blocks): Don't cast XNEWVEC's
1326         result.
1327         (create_edge_and_update_destination_phis): Likewise.
1328
1329 2012-09-20  Martin Jambor  <mjambor@suse.cz>
1330
1331         * function.c (push_cfun): Check old current_function_decl matches
1332         old cfun, set new current_function_decl to the decl of the new cfun.
1333         (push_struct_function): Likewise.
1334         (pop_cfun): Likewise.
1335         (allocate_struct_function): Move call to
1336         invoke_set_current_function_hook to the end of the function.
1337         * cfgexpand.c (estimated_stack_frame_size): Do not set and restore
1338         current_function_decl.
1339         * cgraph.c (cgraph_release_function_body): Likewise.
1340         * cgraphunit.c (cgraph_process_new_functions): Likewise.
1341         (cgraph_add_new_function): Likewise.
1342         (cgraph_analyze_function): Likewise.
1343         (assemble_thunk): Set cfun to NULL at the end.
1344         (expand_function): Move call to set_cfun downwards.
1345         * gimple-low.c (record_vars_into): Only check current_function_decl
1346         before possibly doing push_cfun.
1347         * gimplify.c (gimplify_function_tree): Do not set and restore
1348         current_function_decl.
1349         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
1350         (inline_analyze_function): Likewise.
1351         * ipa-prop.c (ipa_analyze_node): Likewise.
1352         * ipa-pure-const.c (analyze_function): Likewise.
1353         * lto-streamer-in.c (lto_input_function_body): Do not set
1354         current_function_decl.
1355         * lto-streamer-out.c (output_function): Do not set and restore
1356         current_function_decl.
1357         * omp-low.c (finalize_task_copyfn): Likewise.
1358         (expand_omp_taskreg): Likewise.
1359         (create_task_copyfn): Likewise, move push_cfun up quite a bit.
1360         * passes.c (dump_passes): Do not set and restore current_function_decl.
1361         (do_per_function): Likewise.
1362         (do_per_function_toporder): Likewise.
1363         * trans-mem.c (ipa_tm_scan_irr_function): Likewise.
1364         (ipa_tm_transform_transaction): Likewise.
1365         (ipa_tm_transform_clone): Likewise.
1366         (ipa_tm_execute): Likewise.
1367         * tree-emutls.c (lower_emutls_function_body): Likewise.
1368         * tree-inline.c (initialize_cfun): Do not call pop_cfun.
1369         (tree_function_versioning): Do not call push_cfun, do not set and
1370         restore current_function_decl.  Remove assert checking consistency of
1371         cfun and current_function_decl.
1372         * tree-profile.c (tree_profiling): Do not set and restore
1373         current_function_decl.
1374         * tree-sra.c (convert_callers_for_node): Do not set
1375         current_function_decl.
1376         (convert_callers): Do not restore current_function_decl.
1377         (modify_function): Do not set current_function_decl.
1378         * tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore
1379         current_function_decl.
1380
1381 2012-09-20  Diego Novillo  <dnovillo@google.com>
1382
1383         PR target/54631
1384         * config/vxworks.c (vxworks_emutls_var_init): Update for new
1385         VEC_quick_push interface.
1386
1387 2012-09-20  Richard Guenther  <rguenther@suse.de>
1388
1389         PR tree-optimization/54634
1390         * tree-data-ref.c (get_references_in_stmt): For now give
1391         up for pure functions.
1392
1393 2012-09-20  Chen Wei-Ren  <chenwj@iis.sinica.edu.tw>
1394
1395         * doc/lto.texi: Correct typo.
1396
1397 2012-09-19  Dehao Chen  <dehao@google.com>
1398
1399         * config/s390/s390.c (s390_chunkify_start): Replacing INSN_LOCATOR.
1400         * config/spu/spu.c (emit_nop_for_insn): Likewise.
1401         (pad_bb): Likewise.
1402         (spu_emit_branch_hint): Likewise.
1403         (insert_hbrp_for_ilb_runout): Likewise.
1404         * config/mep/mep.c (mep_make_bundle): Likewise.
1405         (mep_bundle_insns): Likewise.
1406         * config/sh/sh.c (gen_block_redirect): Likewise.
1407         * config/c6x/c6x.c (gen_one_bundle): Likewise.
1408         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Likewise.
1409         * config/picochip/picochip.c (picochip_reorg): Likewise.
1410         * config/arm/arm.c (require_pic_register): Likewise.
1411         * config/mips/mips.c (mips16_gp_pseudo_reg): Likewise.
1412         * config/bfin/bfin.c (gen_one_bundle): Likewise.
1413
1414 2012-09-19  Mark Kettenis  <kettenis@openbsd.org>
1415
1416         * config.gcc (hppa*-*-openbsd*): New target.
1417         * config/pa/pa-openbsd.h: New file.
1418         * config/pa/pa32-openbsd.h: New file.
1419         * config/host-openbsd.c: Update copyright year.
1420         (TRY_EXCEPT_VM_SPACE): Define for OpenBSD/hppa.
1421
1422 2012-09-19  Martin Jambor  <mjambor@suse.cz>
1423
1424         * ipa-prop.c (prune_expression_for_jf): New function.
1425         (ipa_set_jf_constant): Use it.
1426         (ipa_set_jf_arith_pass_through): Likewise.
1427         (determine_known_aggregate_parts): Likewise.
1428
1429 2012-09-19  Steve Ellcey  <sellcey@mips.com>
1430
1431         * config.gcc (mips*-mti-elf*): New target.
1432         * config/mips/mti-elf.h: New file.
1433         * config/mips/t-mti-elf: New file.
1434
1435 2012-09-19  Dehao Chen  <dehao@google.com>
1436
1437         * toplev.c (general_init): Init block_locations.
1438         * tree.c (tree_set_block): New.
1439         (tree_block): Change to use LOCATION_BLOCK.
1440         * tree.h (TREE_SET_BLOCK): New.
1441         * final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
1442         (final_start_function): Likewise.
1443         * input.c (expand_location_1): Likewise.
1444         * input.h (LOCATION_LOCUS): New.
1445         (LOCATION_BLOCK): New.
1446         (IS_UNKNOWN_LOCATION): New.
1447         * fold-const.c (expr_location_or): Change to use new location.
1448         * reorg.c (emit_delay_sequence): Likewise.
1449         (try_merge_delay_insns): Likewise.
1450         * modulo-sched.c (dump_insn_location): Likewise.
1451         * lto-streamer-out.c (lto_output_location_bitpack): Likewise.
1452         * lto-cgraph.c (output_node_opt_summary): Likewise.
1453         * jump.c (rtx_renumbered_equal_p): Likewise.
1454         * ifcvt.c (noce_try_move): Likewise.
1455         (noce_try_store_flag): Likewise.
1456         (noce_try_store_flag_constants): Likewise.
1457         (noce_try_addcc): Likewise.
1458         (noce_try_store_flag_mask): Likewise.
1459         (noce_try_cmove): Likewise.
1460         (noce_try_cmove_arith): Likewise.
1461         (noce_try_minmax): Likewise.
1462         (noce_try_abs): Likewise.
1463         (noce_try_sign_mask): Likewise.
1464         (noce_try_bitop): Likewise.
1465         (noce_process_if_block): Likewise.
1466         (cond_move_process_if_block): Likewise.
1467         (find_cond_trap): Likewise.
1468         * ipa-prop.c (ipa_set_jf_constant): Likewise.
1469         (ipa_write_jump_function): Likewise.
1470         * dwarf2out.c (add_src_coords_attributes): Likewise.
1471         * expr.c (expand_expr_real): Likewise.
1472         * tree-parloops.c (create_loop_fn): Likewise.
1473         * recog.c (peep2_attempt): Likewise.
1474         * function.c (free_after_compilation): Likewise.
1475         (expand_function_end): Likewise.
1476         (set_insn_locations): Likewise.
1477         (thread_prologue_and_epilogue_insns): Likewise.
1478         * print-rtl.c (print_rtx): Likewise.
1479         * profile.c (branch_prob): Likewise.
1480         * trans-mem.c (ipa_tm_scan_irr_block): Likewise.
1481         * gimplify.c (gimplify_call_expr): Likewise.
1482         * except.c (duplicate_eh_regions_1): Likewise.
1483         * emit-rtl.c (try_split): Likewise.
1484         (make_insn_raw): Likewise.
1485         (make_debug_insn_raw): Likewise.
1486         (make_jump_insn_raw): Likewise.
1487         (make_call_insn_raw): Likewise.
1488         (emit_pattern_after_setloc): Likewise.
1489         (emit_pattern_after): Likewise.
1490         (emit_debug_insn_after): Likewise.
1491         (emit_pattern_before): Likewise.
1492         (emit_insn_before_setloc): Likewise.
1493         (emit_jump_insn_before): Likewise.
1494         (emit_call_insn_before_setloc): Likewise.
1495         (emit_call_insn_before): Likeise.
1496         (emit_debug_insn_before_setloc): Likewise.
1497         (emit_copy_of_insn_after): Likewise.
1498         (insn_locators_alloc): Remove.
1499         (insn_locators_finalize): Remove.
1500         (insn_locators_free): Remove.
1501         (set_curr_insn_source_location): Remove.
1502         (get_curr_insn_source_location): Remove.
1503         (set_curr_insn_block): Remove.
1504         (get_curr_insn_block): Remove.
1505         (locator_scope): Remove.
1506         (insn_scope): Change to use new location.
1507         (locator_location): Remove.
1508         (insn_line): Change to use new location.
1509         (locator_file): Remove.
1510         (insn_file): Change to use new location.
1511         (locator_eq): Remove.
1512         (insn_locations_init): New.
1513         (insn_locations_finalize): New.
1514         (set_curr_insn_location): New.
1515         (curr_insn_location): New.
1516         * cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
1517         (expand_gimple_cond): Likewise.
1518         (expand_call_stmt): Likewise.
1519         (expand_gimple_stmt_1): Likewise.
1520         (expand_gimple_basic_block): Likewise.
1521         (construct_exit_block): Likewise.
1522         (gimple_expand_cfg): Likewise.
1523         * cfgcleanup.c (try_forward_edges): Likewise.
1524         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
1525         (dump_scope_block): Likewise.
1526         (remove_unused_locals): Likewise.
1527         * rtl.c (rtx_equal_p_cb): Likewise.
1528         (rtx_equal_p): Likewise.
1529         * rtl.h (XUINT): New.
1530         (INSN_LOCATOR): Remove.
1531         (CURR_INSN_LOCATION): Remove.
1532         (INSN_LOCATION): New.
1533         (INSN_HAS_LOCATION): New.
1534         * tree-inline.c (remap_gimple_op_r): Change to use new location.
1535         (copy_tree_body_r): Likewise.
1536         (copy_phis_for_bb): Likewise.
1537         (expand_call_inline): Likewise.
1538         * tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
1539         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
1540         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
1541         * combine.c (try_combine): Likewise.
1542         * tree-outof-ssa.c (set_location_for_edge): Likewise.
1543         (insert_partition_copy_on_edge): Likewise.
1544         (insert_value_copy_on_edge): Likewise.
1545         (insert_rtx_to_part_on_edge): Likewise.
1546         (insert_part_to_rtx_on_edge): Likewise.
1547         * basic-block.h (edge_def): Remove field.
1548         * gimple.h (gimple_statement_base): Remove field.
1549         (gimple_bb): Change to use new location.
1550         (gimple_set_block): Likewise.
1551         (gimple_has_location): Likewise.
1552         * tree-cfg.c (make_cond_expr_edges): Likewise.
1553         (make_goto_expr_edges): Likewise.
1554         (gimple_can_merge_blocks_p): Likewise.
1555         (move_stmt_op): Likewise.
1556         (move_block_to_fn): Likewise.
1557         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
1558         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1559         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
1560         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
1561         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1562         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1563         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
1564         * config/score/score.c (score_output_mi_thunk): Likewise.
1565         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
1566         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
1567         * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
1568         (unique_locus_on_edge_between_p): Likewise.
1569         (emit_nop_for_unique_locus_between): Likewise.
1570         (force_nonfallthru_and_redirect): Likewise.
1571         (fixup_reorder_chain): Likewise.
1572         (cfg_layout_merge_blocks): Likewise.
1573         * stmt.c (emit_case_nodes): Likewise.
1574
1575 2012-09-19  Bernd Schmidt  <bernds@codesourcery.com>
1576
1577         * dbgcnt.def (sched_breakdep): New counter.
1578         * haifa-sched.c (update_insn_after_change): New static function,
1579         broken out of haifa_change_pattern.
1580         (haifa_change_pattern): Call it.
1581         (dep_t heap vecs): Declare.
1582         (INSN_COST): Define earlier.
1583         (next_cycle_replace_deps, next_cycle_apply): New static variables.
1584         (apply_replacement): New static function.
1585         (recompute_todo_spec): New argument FOR_BACKTRACK.  All callers
1586         changed.  Handle DEP_REPLACE deps.
1587         (contributes_to_priority_p): False for replaceable deps.
1588         (must_restore_pattern_p, restore_pattern): New static functions.
1589         (schedule_insn): Use them.  Apply replacements for broken deps.
1590         (struct haifa_saved_data): Add new fields to keep track of
1591         replacements.
1592         (save_backtrack_point): Initialize them.
1593         (undo_replacements_for_backtrack): New static function.
1594         (restore_last_backtrack_point, free_topmost_backtrack_point):
1595         Use it and keep track of replacements.
1596         (perform_replacements_new_cycle, undo_all_replacements): New static
1597         functions.
1598         (schedule_block): Call these two as necessary.  Call
1599         find_modifiable_mems.
1600         (try_ready): Tweak the assert.  Check for DEP_POSTPONED.
1601         * sched-deps.c: Include "emit-rtl.h".
1602         (init_dep_1): Initialize DEP_NONREG, DEP_MULTIPLE and DEP_REPLACE.
1603         (dep_spec_p): True for DEP_REPLACE deps.
1604         (mark_as_hard): New static variable.
1605         (update_dep): Update DEP_NONREG and DEP_MULTIPLE.
1606         (add_dependence_list): New argument hard.  All callers changed.  Set
1607         and clear mark_as_hard around function body.
1608         (add_dependence_list_and_free): Likewise.
1609         (haifa_note_mem_dep): Set DEP_NONREG.
1610         (haifa_note_dep): Likewise if mark_as_hard is true.
1611         (sched_analyze_insn): Switch loop with if statement testing for
1612         sel_sched_p.
1613         (struct mem_inc_info): New.
1614         (attempt_change, parse_add_or_inc, find_inc, find_mem): New static
1615         functions.
1616         (find_modifiable_mems): New function.
1617         * sched-int.h (struct dep_replacement): New.
1618         (struct _dep): Add replace, nonreg and multiple fields.  Make type and
1619         cost bitfields.
1620         (UNKNOWN_DEP_COST): Change to match the bitfield.
1621         (DEP_NONREG, DEP_MULTIPLE, DEP_REPLACE): New macros.
1622         (DEP_POSTPONED): New macro.
1623         (DEP_CANCELLED): Renumber.
1624         (find_modifiable_mems): Declare.
1625         (enum SCHED_FLAGS): Add DONT_BREAK_DEPENDENCIES.
1626         * sched-rgn.c (init_ready_list): Set TODO_SPEC here.
1627         (new_ready): Don't set HARD_DEP, use DEP_POSTPONED.
1628         (debug_dependencies): Dump DEP_NONREG and DEP_MULTIPLE.
1629         * Makefile.in (sched-deps.o): Update dependencies.
1630         * config/c6x/c6x.c (in_hwloop): New static variable.
1631         (c6x_set_sched_flags): If it is true, add DONT_BREAK_DEPENDENCIES.
1632         (hwloop_optimize): Set and clear it around preliminary scheduling pass.
1633
1634 2012-09-19  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
1635
1636         * config/rs6000/rs6000-builtin.def: Add __builtin_ppc_get_timebase
1637         and __builtin_ppc_mftb.
1638         * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): New function
1639         to expand an expression that calls a built-in without arguments.
1640         (rs6000_expand_builtin): Add __builtin_ppc_get_timebase and
1641         __builtin_ppc_mftb.
1642         (rs6000_init_builtins): Likewise.
1643         * config/rs6000/rs6000.md (rs6000_get_timebase): New pattern.
1644         (rs6000_get_timebase_ppc32): New pattern.
1645         (rs6000_mftb_<mode>): New pattern.
1646
1647         * doc/extend.texi (PowerPC Built-in Functions): New section.
1648         (PowerPC AltiVec/VSX Built-in Functions): Move some built-ins
1649         unrelated to Altivec/VSX to the new section.
1650
1651 2012-09-19  David Edelsohn  <dje.gcc@gmail.com>
1652
1653         * rs6000.md (mac*): Remove extra spaces.
1654         (mulhw*): Same.
1655
1656 2012-09-19  Oleg Endo  <olegendo@gcc.gnu.org>
1657
1658         PR target/54089
1659         * config/sh/predicates.md (arith_reg_or_t_reg_operand): New predicate.
1660         * config/sh/sh.md (*rotcr): Use arith_reg_or_t_reg_operand predicate.
1661         Handle the case where one of the operands is T_REG.
1662         Add new pattern to handle MSB extraction.
1663
1664 2012-09-19  Oleg Endo  <olegendo@gcc.gnu.org>
1665
1666         PR target/54236
1667         * config/sh/sh.md (*addc): Add pattern to handle one bit left shifts.
1668
1669 2012-09-19  Oleg Endo  <olegendo@gcc.gnu.org>
1670
1671         * config/sh/sh.md (prologue, epilogue): Use braced strings.
1672
1673 2012-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1674
1675         PR rtl-optimization/54290
1676         * reload1.c (choose_reload_regs): Also take into account secondary MEMs
1677         to remove address replacements for inherited reloads.
1678         (replaced_subreg): Move around.
1679
1680 2012-09-19  David Edelsohn  <dje.gcc@gmail.com>
1681
1682         * config/rs6000/aix61.h (TARGET_DEFAULT): Add MASK_PPC_GPOPT,
1683         MASK_PPC_GFXOPT, and MASK_MFCRF.
1684
1685 2012-09-19  Richard Guenther  <rguenther@suse.de>
1686
1687         * passes.c (init_optimization_passes): For -Og move
1688         pass_object_sizes inbetween CCP and copyprop.
1689
1690 2012-09-19  Richard Guenther  <rguenther@suse.de>
1691
1692         * tree-ssa-forwprop.c (get_prop_source_stmt): Simplify.
1693
1694 2012-09-19  Jan Hubicka  <jh@suse.cz>
1695
1696         * symtab.c (insert_to_assembler_name_hash): Do not insert
1697         register vars.
1698         (unlink_from_assembler_name_hash): NULL out pointers of unlinked var.
1699         (symtab_prevail_in_asm_name_hash): New.
1700         (symtab_initialize_asm_name_hash): Break out from ...
1701         (symtab_node_for_asm): ... here.
1702         (dump_symtab_base): Dump LTO file data.
1703         (verify_symtab_base): Register vars are not in symtab.
1704         * cgraph.h (symtab_initialize_asm_name_hash,
1705         symtab_prevail_in_asm_name_hash): New functions.
1706         (symtab_real_symbol_p): New inline.
1707         * lto-symtab.c: Do not include gt-lto-symtab.h.
1708         (lto_symtab_entry_def): Remove.
1709         (lto_symtab_entry_t): Remove.
1710         (lto_symtab_identifiers): Remove.
1711         (lto_symtab_free): Remove.
1712         (lto_symtab_entry_hash): Remove.
1713         (lto_symtab_entry_eq): Remove.
1714         (lto_symtab_entry_marked_p): Remove.
1715         (lto_symtab_maybe_init_hash_table): Remove.
1716         (resolution_guessed_p, set_resolution_guessed): New functions.
1717         (lto_symtab_register_decl): Only set resolution info.
1718         (lto_symtab_get, lto_symtab_get_resolution): Remove.
1719         (lto_symtab_merge): Reorg to work across symtab; do nothing if decls
1720         are same.
1721         (lto_symtab_resolve_replaceable_p): Reorg to work on symtab.
1722         (lto_symtab_resolve_can_prevail_p): Likewise; only real symbols can
1723         prevail.
1724         (lto_symtab_resolve_symbols): Reorg to work on symtab.
1725         (lto_symtab_merge_decls_2): Likewise.
1726         (lto_symtab_merge_decls_1): Likewise; add debug dumps.
1727         (lto_symtab_merge_decls): Likewise; do not merge at ltrans stage.
1728         (lto_symtab_merge_cgraph_nodes_1): Reorg to work on symtab.
1729         (lto_symtab_merge_cgraph_nodes): Likewise; do not merge at ltrans
1730         stage.
1731         (lto_symtab_prevailing_decl): Rewrite to lookup into symtab.
1732         * lto-streaer.h (lto_symtab_free): Remove.
1733         * lto-cgraph.c (add_references): Cleanup.
1734         * varpool.c (varpool_assemble_decl): Skip hard regs.
1735
1736 2012-09-19  Richard Guenther  <rguenther@suse.de>
1737
1738         PR other/53316
1739         * common/common-target.h (OPT_LEVELS_1_PLUS_NOT_DEBUG): Add.
1740
1741 2012-09-19  Richard Guenther  <rguenther@suse.de>
1742
1743         PR other/53316
1744         * common.opt (optimize_debug): New variable.
1745         (Og): New optimization level.
1746         * doc/invoke.texi (Og): Document.
1747         * opts.c (maybe_default_option): Add debug parameter.
1748         (maybe_default_options): Likewise.
1749         (default_options_optimization): Handle -Og.
1750         (common_handle_option): Likewise.
1751         * passes.c (gate_all_optimizations): Do not run with -Og.
1752         (gate_all_optimizations_g): New gate, run with -Og.
1753         (pass_all_optimizations_g): New container pass, run with -Og.
1754         (init_optimization_passes): Schedule pass_all_optimizations_g
1755         alongside pass_all_optimizations.
1756
1757 2012-09-19  Richard Guenther  <rguenther@suse.de>
1758
1759         PR tree-optimization/54132
1760         * tree-loop-distribution.c (classify_partition): Properly
1761         check dependences for memmove.
1762         * tree-data-ref.h (compute_affine_dependence): Declare.
1763         * tree-data-ref.c (compute_affine_dependence): Export.
1764
1765 2012-09-19  Zhenqiang Chen <zhenqiang.chen@arm.com>
1766
1767         PR middle-end/54364
1768         * bb-reorder.c (connect_better_edge_p): New added.
1769         (find_traces_1_round): When optimizing for size, ignore edge frequency
1770         and probability, and handle all in one round.
1771         (bb_to_key): Use bb->index as key when optimizing for size.
1772         (better_edge_p): The bb with smaller index is better when optimizing
1773         for size.
1774         (connect_traces): When optimizing for size, connect block n with
1775         block n + 1; connect trace m with trace m + 1 if falling through.
1776         (gate_handle_reorder_blocks): Enable bbro when optimizing for -Os.
1777
1778 2012-09-19  Bin Cheng  <bin.cheng@arm.com>
1779
1780         * fold-const.c (fold_truth_andor): Remove duplicated check on
1781         BRANCH_COST.
1782
1783 2012-09-18  Eric Botcazou  <ebotcazou@adacore.com>
1784
1785         PR middle-end/54617
1786         * expr.c (store_field): Handle a PARALLEL in more cases.
1787
1788 2012-09-18  Segher Boessenkool  <segher@kernel.crashing.org>
1789
1790         * config/rs6000/rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): Delete.
1791         (abssi2, abs<mode>2_isel, nabs<mode>2_isel, abssi2_nopower,
1792         nabs_nopower): Delete.
1793         (absdi2, absdi2_internal, nabsdi2): Delete.
1794         (smindi3, smaxdi3, umindi3, umaxdi3): Delete.
1795
1796 2012-09-18  Georg-Johann Lay  <avr@gjlay.de>
1797
1798         * config/avr/avr.md: Tidy up empty "".  Fix C code indentation.
1799         * config/avr/avr-fixed.md: Ditto.
1800
1801 2012-09-18  Maciej W. Rozycki  <macro@codesourcery.com>
1802
1803         * config/rs6000/rs6000.c (print_operand) <'c'>: Remove.
1804         * config/rs6000/spe.md: Remove a leftover comment.
1805
1806 2012-09-18  Jakub Jelinek  <jakub@redhat.com>
1807
1808         PR target/54592
1809         * config/i386/i386.c (ix86_rtx_costs): Limit > UNITS_PER_WORD
1810         AND/IOR/XOR cost calculation to MODE_INT class modes.
1811
1812 2012-09-18 Thomas Quinot  <quinot@adacore.com>
1813
1814         * doc/invoke.texi: Document -fada-spec-parent.
1815
1816 2012-09-18  Jakub Jelinek  <jakub@redhat.com>
1817
1818         PR tree-optimization/54610
1819         * tree-ssa-forwprop.c: Include optabs.h.  Don't include
1820         tree-vectorizer.h.
1821         (simplify_vector_constructor): Don't use vect_gen_perm_mask,
1822         instead create the mask constant here.
1823         * Makefile.in (tree-ssa-forwprop.o): Depend on $(OPTABS_H).
1824         Don't depend on $(TREE_VECTORIZER_H).
1825
1826 2012-09-18  Florian Weimer  <fweimer@redhat.com>
1827
1828         * Makefile.in (BASIC_BLOCK_H): Add cfg-flags.def.
1829
1830 2012-09-18  Richard Guenther  <rguenther@suse.de>
1831
1832         * statistics.h (CXX_MEM_STAT_INFO): New define.
1833         * gimple.h (gimple_build_assign_with_ops_stat,
1834         gimple_build_assign_with_ops, gimple_build_assign_with_ops3):
1835         Turn into an overload of the function gimple_build_assign_with_ops.
1836         * gimple.c (gimple_build_assign_with_ops_stat): Rename to ...
1837         (gimple_build_assign_with_ops): ... this.
1838         * tree-ssa-loop-im.c (move_computations_stmt): Adjust.
1839         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
1840         * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
1841         (vect_permute_load_chain): Likewise.
1842         * tree-vect-generic.c (expand_vector_divmod): Likewise.
1843         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
1844         (vect_recog_divmod_pattern): Likewise.
1845         (vect_recog_mixed_size_cond_pattern): Likewise.
1846         (adjust_bool_pattern): Likewise.
1847         * tree-vect-slp.c (vect_create_mask_and_perm): Likewise.
1848         * tree-vect-stmts.c (vectorizable_operation): Likewise.
1849         (permute_vec_elements): Likewise.
1850         (vectorizable_load): Likewise.
1851
1852 2012-09-17  Paul Koning  <ni1d@arrl.net>
1853
1854         * doc/invoke.text (-feliminate-unused-debug-types): Update to
1855         reflect that this is enabled by default.
1856
1857 2012-09-17  Ben Cheng  <bccheng@google.com
1858
1859         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Suppress the
1860         dynamic linker commands for statically linked programs.
1861
1862 2012-09-17  Ulrich Weigand  <ulrich.weigand@linaro.org>
1863
1864         * config/arm/arm.c (arm_rtx_costs_1): Handle vec_extract and vec_set
1865         patterns.
1866         * config/arm/arm.md ("vec_set<mode>_internal"): Support memory source
1867         operands, implemented via vld1 instruction.
1868         ("vec_extract<mode>"): Support memory destination operands, implemented
1869         via vst1 instruction.
1870         ("neon_vst1_lane<mode>"): Use UNSPEC_VST1_LANE instead of vec_select.
1871         * config/arm/predicates.md ("neon_lane_number"): Remove.
1872
1873 2012-09-17  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1874             Ulrich Weigand  <ulrich.weigand@linaro.org>
1875
1876         * config/arm/arm.c (output_move_neon): Update comment.
1877         Use vld1.64/vst1.64 instead of vldm/vstm where possible.
1878         (neon_vector_mem_operand): Support double-word modes.
1879         * config/arm/neon.md (*neon_mov VD): Call output_move_neon
1880         instead of output_move_vfp.  Change constraint from Uv to Un.
1881
1882 2012-09-17  Richard Guenther  <rguenther@suse.de>
1883
1884         PR lto/54598
1885         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed
1886         FIXED_VALUE_TYPE instead of struct fixed_value.
1887
1888 2012-09-17  Georg-Johann Lay  <avr@gjlay.de>
1889
1890         * config/avr/avr.c (CONST_FIXED_P): Remove define.
1891         * config/avr/avr.md (add<mode>3): Use CONST_FIXED_P.
1892
1893 2012-09-17  Georg-Johann Lay  <avr@gjlay.de>
1894
1895         PR target/54607
1896         * config.gcc (tm_file,avr): Add avr/avr-arch.h.
1897         * config/avr/t-avr (gen-avr-mmcu-texi): Use CC_FOR_BUILD to
1898         compile.  Don't depend on TM_H.  Use CFLAGS_FOR_BUILD.
1899         * config/avr/avr.h (avr_arch, base_arch_s, mcu_type_s): Source out
1900         to...
1901         * config/avr/avr-arch.h: ...this new file.
1902         * config/avr/gen-avr-mmcu-texi.c: Include avr-arch.h, stdio.h,
1903         stdlib.h.
1904         * comparator: Make letters smaller than digits.
1905         * config/avr/avr-devices.c: Don't include headers if used in
1906         gen-avr-mmcu-texi.c.
1907         * doc/avr-mmcu.texi: Regenerate.
1908
1909 2012-09-17  Georg-Johann Lay  <avr@gjlay.de>
1910
1911         * rtl.h (CONST_FIXED_P): New predicate macro.
1912
1913 2012-09-17  Eric Botcazou  <ebotcazou@adacore.com>
1914
1915         * tree-cfgcleanup. (cleanup_control_expr_graph) <GIMPLE_COND>: Remove
1916         code doing propagation from degenerate PHI nodes.
1917         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): New function.
1918         (propagate_constants_for_unrolling): Likewise.
1919         (tree_unroll_loops_completely): If the current loop has been unrolled
1920         and its father isn't the entire function, propagate constants within
1921         the new basic blocks by means of propagate_constants_for_unrolling.
1922
1923 2012-09-17  Jakub Jelinek  <jakub@redhat.com>
1924
1925         PR tree-optimization/54563
1926         * tree-ssa-math-opts.c (execute_cse_sincos): Call
1927         gimple_purge_dead_eh_edges if last call has been changed.
1928
1929 2012-09-17  Georg-Johann Lay  <avr@gjlay.de>
1930
1931         PR target/54222
1932         * config/avr/avr.c (avr_out_plus_symbol): Fix typo if PLUS and PSImode.
1933         (avr_out_plus_1): Remove log comments from assembler output.
1934
1935 2012-09-17  Ruben Buchatskiy  <ruben@ispras.ru>
1936
1937         * config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands
1938         to be a register.
1939
1940 2012-09-16  Richard Sandiford  <rdsandiford@googlemail.com>
1941
1942         * calls.c (expand_call): Use emit_group_move for PARALLEL->PARALLEL
1943         moves.
1944
1945 2012-09-15  Tom de Vries  <tom@codesourcery.com>
1946
1947         * tree-vrp.c (extract_range_from_binary_expr_1): Fix bug in handling of
1948         LSHIFT_EXPR with shift range.  Handle more LSHIFT_EXPR cases with shift
1949         range.
1950
1951 2012-09-15  Georg-Johann Lay  <avr@gjlay.de>
1952
1953         PR target/54222
1954         * config/avr/avr-fixed.md (ALL2S, ALL4S, ALL24S, ALL124S,
1955         ALL124U): New mode iterators.
1956         (<code_stdname><mode>3): New insns for SS_PLUS, SS_MINUS.
1957         (<code_stdname><mode>3): New insns for US_PLUS, US_MINUS.
1958         (usneg<mode>2): New insns.
1959         (<code_stdname><mode>2): New expanders for SS_NEG, SS_ABS.
1960         (*<code_stdname><mode>2): New insns for SS_NEG, SS_ABS.
1961         * config/avr/avr-dimode.md (ALL8U, ALL8S): New mode iterators.
1962         (avr_out_plus64, avr_out_minus64): Use avr_out_plus instead.
1963         (<code_stdname><mode>3): New expanders for SS_PLUS, SS_MINUS.
1964         (<code_stdname><mode>3): New expanders for US_PLUS, US_MINUS.
1965         (<code_stdname><mode>3_insn): New insns.
1966         (<code_stdname><mode>3_const_insn): New insns.
1967         * config/avr/avr.md (cc): Add: plus. Remove: out_plus,
1968         out_plus_noclobber, minus.
1969         (length): Add: plus.  Remove: out_plus, out_plus_noclobber,
1970         plus64, minus, minus64.
1971         (abelian): New code_attr.
1972         (code_stdname): Handle: ss_plus, ss_minus, ss_neg, ss_abs,
1973         us_plus, us_minus, us_neg.
1974         (*add<mode>3, add<mode>3_clobber, add<mode>3, addpsi3, sub<mode>3):
1975         Use avr_out_plus to output.
1976         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
1977         (avr_out_plus_noclobber, avr_out_minus): Remove.
1978         (avr_out_plus64, avr_out_minus64): Remove.
1979         * config/avr/avr.c (avr_out_plus_1): Add new default arguments
1980         code_sat, sign.  Saturate after operation if code_sat != UNKNOWN.
1981         (avr_out_plus_symbol): New static function.
1982         (avr_out_plus): Rewrite.
1983         (adjust_insn_length): Handle: ADJUST_LEN_PLUS.  Remove handling
1984         of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS,
1985         ADJUST_LEN_MINUS64, ADJUST_LEN_OUT_PLUS_NOCLOBBER.
1986         (notice_update_cc): Handle: CC_PLUS.  Remove handling of: CC_MINUS,
1987         CC_OUT_PLUS, CC_OUT_PLUS_NOCLOBBER
1988         (avr_out_plus_noclobber, avr_out_minus): Remove.
1989         (avr_out_plus64, avr_out_minus64): Remove.
1990         (avr_print_operand): Print raw REGNO if 'r' is used with REG.
1991
1992 2012-09-15  Oleg Endo  <olegendo@gcc.gnu.org>
1993
1994         * config/sh/sh.c (sh_rtx_costs): Add handling of MEM, SIGN_EXTEND,
1995         ZERO_EXTEND and PARALLEL cases.
1996         (sh_address_cost): Correct rtx parsing and tweak cost estimations.
1997
1998 2012-09-14  Sandra Loosemore  <sandra@codesourcery.com>
1999
2000         * doc/tm.texi.in (Stack Arguments): Update obsolete references
2001         to current_function_outgoing_args_size.
2002         (Function Entry): Likewise for current_function_pops_args,
2003         current_function_pretend_args_size,
2004         current_function_outgoing_args_size, and
2005         current_function_epilogue_delay_list.
2006         (Misc): Fix garbled sentence referencing nonexistent
2007         current_function_leaf_function.
2008         * doc/tm.texi: Regenerated.
2009
2010 2012-09-14  Dehao Chen  <dehao@google.com>
2011
2012          * tree-eh.c (goto_queue_node): New field.
2013         (record_in_goto_queue): New parameter.
2014         (record_in_goto_queue_label): New parameter.
2015         (lower_try_finally_dup_block): New parameter.
2016         (maybe_record_in_goto_queue): Update source location.
2017         (lower_try_finally_copy): Likewise.
2018         (honor_protect_cleanup_actions): Likewise.
2019         * gimplify.c (gimplify_expr): Reset the location to unknown.
2020
2021 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
2022
2023         * configure: Regenerated.
2024
2025 2012-09-14  Walter Lee  <walt@tilera.com>
2026
2027         * doc/invoke.texi (Option Summary): fix typesetting for -mcpu
2028         option for TILEPro and TILE-Gx.
2029         (TILE-Gx Options): Fix grammar and spellings in documentation for
2030         -mcmodel.
2031
2032 2012-09-14  Marc Glisse  <marc.glisse@inria.fr>
2033
2034         PR c++/54427
2035         * fold-const.c (fold_unary_loc): Disable for VECTOR_TYPE.
2036         (fold_binary_loc): Likewise.
2037         * gimple-fold.c (and_comparisons_1): Handle VECTOR_TYPE.
2038         (or_comparisons_1): Likewise.
2039
2040 2012-09-14  Richard Earnshaw  <rearnsha@arm.com>
2041
2042         PR target/54516
2043         PR rtl-optimization/54540
2044         * reload.c (find_dummy_reload): Don't use OUT as a reload reg
2045         for IN if it overlaps a fixed register.
2046
2047 2012-09-14  Eric Botcazou  <ebotcazou@adacore.com>
2048
2049         PR rtl-optimization/44194
2050         * calls.c (expand_call): In the PARALLEL case, copy the return value
2051         into pseudos instead of spilling it onto the stack.
2052         * emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and
2053         add new ADJUST_OBJECT parameter.
2054         If ADJUST_OBJECT is set, drop the underlying object if it cannot be
2055         proved that the adjusted memory access is still within its bounds.
2056         (adjust_automodify_address_1): Adjust call to adjust_address_1.
2057         (widen_memory_access): Likewise.
2058         * expmed.c (store_bit_field_1): Call adjust_bitfield_address instead
2059         of adjust_address.  Do not drop the underlying object of a MEM.
2060         (store_fixed_bit_field): Likewise.
2061         (extract_bit_field_1): Likewise.  Fix oversight in recursion.
2062         (extract_fixed_bit_field): Likewise.
2063         * expr.h (adjust_address_1): Adjust prototype.
2064         (adjust_address): Adjust call to adjust_address_1.
2065         (adjust_address_nv): Likewise.
2066         (adjust_bitfield_address): New macro.
2067         (adjust_bitfield_address_nv): Likewise.
2068         * expr.c (expand_assignment): Handle a PARALLEL in more cases.
2069         (store_expr): Likewise.
2070         (store_field): Likewise.
2071
2072         * dse.c: Fix typos in the head comment.
2073
2074 2012-09-14  Christian Bruel  <christian.bruel@st.com>
2075
2076         PR target/54546
2077         * config/sh/sh-protos.h (sh_need_epilogue): Delete.
2078         (sh_can_use_simple_return_p): Declare.
2079         * config/sh/sh.c (sh_can_use_simple_return_p): Define.
2080         (sh_need_epilogue, sh_need_epilogue_known): Delete.
2081         (sh_output_function_epilogue): Remove sh_need_epilogue_known.
2082         * config/sh/sh.md (simple_return, return): Define.
2083         (epilogue): Use inline return rtl.
2084         (sh_expand_epilogue): Cleanup parameters boolean type.
2085         * config/sh/iterators.md (any_return): New iterator.
2086
2087 2012-09-14  Christian Bruel  <christian.bruel@st.com>
2088
2089         * config/sh/predicates.md (t_reg_operand): Check REG_P for SUBREG.
2090         * config/sh/sh.c (sequence_insn_p): Check INSNP_P for SEQUENCE.
2091
2092 2012-09-14  Jakub Jelinek  <jakub@redhat.com>
2093
2094         PR target/54564
2095         * config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1)
2096         instead of (match_dup 0) as second argument to vec_merge.
2097         (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
2098         Remove third alternative.
2099         (*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise.  Negate
2100         operand 2 instead of operand 1, but put it as first argument of fma.
2101         * config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
2102         _mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
2103         of the first.
2104
2105 2012-09-14  Richard Guenther  <rguenther@suse.de>
2106
2107         PR tree-optimization/54565
2108         * passes.c (init_optimization_passes): Adjust comments.
2109         (execute_function_todo): Do not execute execute_update_addresses_taken
2110         before processing TODO_rebuild_alias.
2111         * tree-ssa-ccp.c (do_ssa_ccp): Schedule TODO_update_address_taken.
2112
2113 2012-09-14  Richard Guenther  <rguenther@suse.de>
2114
2115         * tree-vrp.c (register_new_assert_for): Simplify for backward walk.
2116         (find_assert_locations_1): Walk the basic-block backwards, properly
2117         add/prune from live.  Use live for asserts derived from stmts.
2118
2119 2012-09-14  Marc Glisse  <marc.glisse@inria.fr>
2120
2121         * tree-ssa-forwprop.c (simplify_bitfield_ref): Call
2122         get_prop_source_stmt.
2123         (simplify_permutation): Likewise.
2124         (simplify_vector_constructor): Likewise.
2125
2126 2012-09-14  Richard Guenther  <rguenther@suse.de>
2127
2128         * builtin-types.def (BT_FN_CONST_STRING): Add.
2129         * builtins.def (BUILT_IN_FILE, BUILT_IN_FUNCTION,
2130         BUILT_IN_LINE): New builtins.
2131         * gimplify.c (gimplify_call_expr): Expand them.
2132         * doc/extend.texi (__builtin_LINE, __builtin_FUNCTION,
2133         __builtin_FILE): Document.
2134
2135 2012-09-13  Anthony Green  <green@moxielogic.com>
2136
2137         * config/moxie/moxie.h (LINK_SPEC): Add bi-endian support.
2138         (MULTILIB_DEFAULTS): Define.
2139         (ASM_SPEC): Define.
2140         (BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Add bi-endian support.
2141         (TARGET_CPU_CPP_BUILTINS): Add __MOXIE_LITTLE_ENDIAN__ and
2142         __MOXIE_BIG_ENDIAN__.
2143         * config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS): Define.
2144         * config/moxie/moxie.opt: New file.
2145         * doc/invoke.texi (Moxie Options): Add section documenting -mel
2146         and -meb.
2147
2148 2012-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
2149             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2150
2151         PR c++/53210
2152         * doc/invoke.texi ([Winit-self]): Document as enabled by -Wall in C++.
2153
2154 2012-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2155
2156         * config/sparc/predicates.md (input_operand): Do not consider TImode
2157         constants as 1-instruction integer constants.
2158         Use register_or_zero_operand instead of register_operand and tidy up.
2159         * config/sparc/sparc.md (movti): New expander.
2160         (movti_insn_sp64): New instruction.
2161         (movti_insn_sp64_hq): Likewise.
2162         (TImode splitters): New splitters.
2163         * config/sparc/sparc.c (sparc_expand_move) <TImode>: New case.
2164         (sparc_legitimate_address_p): Return 0 for REG+REG in TImode.
2165
2166         * config/sparc/sparc-protos.h (arith_double_4096_operand): Delete.
2167         (arith_4096_operand): Likewise.
2168         (zero_operand): Likewise.
2169         (fp_zero_operand): Likewise.
2170         (reg_or_0_operand): Likewise.
2171
2172 2012-09-13  Jakub Jelinek  <jakub@redhat.com>
2173
2174         * configure.ac (CXXFLAGS): Remove -O2 when not bootstrapping.
2175         * configure: Regenerated.
2176
2177 2012-08-13  Uros Bizjak  <ubizjak@gmail.com>
2178
2179         * config/i386/i386.md (prefetch): Do not assert mode of operand 0.
2180         (*prefetch_sse_<mode>): Do not set mode of address_operand predicate.
2181         Rename to ...
2182         (*prefetch_sse): ... this.
2183         (*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate.
2184         Rename to ...
2185         (*prefetch_3dnow): ... this.
2186
2187 2012-09-13  Steven Bosscher  <steven@gcc.gnu.org>
2188
2189         * ipa-pure-const.c (state_from_flags, local_pure_const): Use
2190         current_function_name instead of lang_hooks.decl_printable_name.
2191
2192         * function.h (fndecl_name): New prototype.
2193         * function.c (fndecl_name): New function.
2194         * vecir.h (cgraph_node_p): New standard IR VEC type.
2195         * trans-mem.c (cgraph_node_p): No need anymore to define it here.
2196         * ipa-utils.h (ipa_get_nodes_in_cycle): New prototype.
2197         * ipa-utils.c (ipa_get_nodes_in_cycle): New function.
2198         * ipa-reference.c: Don't include langhooks.h, and certainly not twice.
2199         Fix many formatting issues (long lines, short lines, spacing, etc.).
2200         (get_static_name): Use fndecl_name.
2201         (dump_static_vars_set_to_file): New function split out from propagate.
2202         (union_static_var_sets): New function, union two sets and collapse
2203         to all_module_statics as quickly as possible.
2204         (intersect_static_var_sets): New function, similar to above.
2205         (copy_static_var_set): Renamed from copy_global_bitmap and rewritten
2206         to allocate a copy on the same bitmap_obstack as the source set.
2207         (propagate_bits): Simplify, and clarify by using union_static_var_sets.
2208         (generate_summary): Remove bm_temp.  Print UID of promotable globals.
2209         (read_write_all_from_decl): Use pass-by-reference, bless C++.
2210         (get_read_write_all_from_node): New function, split out from propagate.
2211         (propagate): Simplify and clarify with helper functions.  Use
2212         ipa_get_nodes_in_cycle to walk all nodes in a reduced node.
2213         (ipa_reference_read_optimization_summary): Use fndecl_name instead of
2214         lang_hooks.decl_printable_name.
2215
2216         * rtl.h (print_rtl_single_with_indent): New prototype.
2217         * print-rtl.c (print_rtl_single_with_indent): New function.
2218         * cfghooks.h (empty_block_p, split_block_before_cond_jump): New hooks.
2219         * cfghooks.c (empty_block_p, split_block_before_cond_jump): Implement.
2220         * cfgrtl.c (rtl_block_empty_p, rtl_split_block_before_cond_jump):
2221         Implement RTL specific hooks.
2222         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Register the new hooks.
2223         * tree-cfg.c (gimple_empty_block_p,
2224         gimple_split_block_before_cond_jump): Implement GIMPLE specific hooks.
2225         (gimple_cfg_hooks): Register the new hooks.
2226         * tree-ssa-phiopt.c (empty_block_p): Remove in favor of new hook.
2227
2228 2012-09-13  Richard Guenther  <rguenther@suse.de>
2229
2230         * tree-ssa-sccvn.h (enum vn_kind): New.
2231         (vn_get_stmt_kind): Likewise.
2232         * tree-ssa-sccvn.c (vn_get_stmt_kind): New function, adjust
2233         ADDR_EXPR handling.
2234         (visit_use): Use it.
2235         * tree-ssa-pre.c (compute_avail): Likewise, simplify further.
2236
2237 2012-09-13  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
2238
2239         * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
2240         for targets bdver1, bdver2, btver1 and btver2.
2241
2242 2012-09-13  Christophe Lyon  <christophe.lyon@linaro.org>
2243             Richard Earnshaw  <rearnsha@arm.com>
2244
2245         * config/arm/arm.md (arm_rev): Factorize thumb1, thumb2 and arm
2246         variants for rev instruction..
2247         (thumb1_rev): Delete pattern.
2248         (arm_revsh): New pattern to support builtin_bswap16.
2249         (arm_rev16, bswaphi2): Likewise.
2250
2251 2012-09-12  Teresa Johnson  <tejohnson@google.com>
2252
2253         PR gcov-profile/54487
2254         * configure.ac (HOST_HAS_F_SETLKW): Set based on compile
2255         test using F_SETLKW with fcntl.
2256         * configure, config.in: Regenerate.
2257
2258 2012-09-12  Jan Hubicka  <jh@suse.cz>
2259
2260         PR fortran/48636
2261         * ipa-inline-analysis.c (dump_inline_hints): Dump loop stride.
2262         (set_hint_predicate): New function.
2263         (reset_inline_summary): Reset loop stride.
2264         (remap_predicate_after_duplication): New function.
2265         (remap_hint_predicate_after_duplication): New function.
2266         (inline_node_duplication_hook): Update.
2267         (dump_inline_summary): Dump stride summaries.
2268         (estimate_function_body_sizes): Compute strides.
2269         (remap_hint_predicate): New function.
2270         (inline_merge_summary): Use it.
2271         (inline_read_section): Read stride.
2272         (inline_write_summary): Write stride.
2273         * ipa-inline.c (want_inline_small_function_p): Handle strides.
2274         (edge_badness): Likewise.
2275         * ipa-inline.h (inline_hints_vals): Add stride hint.
2276         (inline_summary): Update stride.
2277
2278 2012-09-12  Uros Bizjak  <ubizjak@gmail.com>
2279
2280         * config/i386/i386.c (x86_prefetch_sse): Change to unsigned char.
2281         * config/i386/i386.h (x86_prefetch_sse): Ditto.
2282
2283 2012-09-12  H.J. Lu  <hongjiu.lu@intel.com>
2284
2285         PR target/54445
2286         * config/i386/predicates.md (x86_64_immediate_operand): Allow
2287         negative offset for UNSPEC_DTPOFF/UNSPEC_NTPOFF.
2288
2289 2012-09-12  Jan Hubicka  <jh@suse.cz>
2290
2291         * common.opt (flto-partition): Add "max".
2292         * invoke.texi (flto-partition): Document "max"
2293
2294 2012-09-12  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
2295
2296         * config/i386/i386.md : Comments on fma4 instruction selection
2297         reflect requirement on register pressure based cost model.
2298
2299         * config/i386/driver-i386.c (host_detect_local_cpu): fma4
2300         flag is set-reset as informed by the cpuid flag.
2301
2302         * config/i386/i386.c (processor_alias_table): fma4
2303         flag is enabled for bdver2.
2304
2305 2012-09-12  Richard Guenther  <rguenther@suse.de>
2306
2307         PR tree-optimization/54489
2308         * tree-ssa-pre.c: Include domwalk.h.
2309         (in_fre): Remove.
2310         (sccvn_valnum_from_value_id): New function.
2311         (debug_bitmap_sets_for): Simplify.
2312         (get_representative_for): Properly initialize the SCCVN valnum.
2313         (create_expression_by_pieces): Likewise.
2314         (insert_into_preds_of_block): Likewise.
2315         (can_PRE_operation): Remove.
2316         (make_values_for_phi): Simplify.
2317         (compute_avail): Likewise.
2318         (do_SCCVN_insertion): Remove.
2319         (eliminate_avail, eliminate_push_avail, eliminate_insert):
2320         New functions.
2321         (eliminate): Split and perform a domwalk.
2322         (eliminate_bb): Former eliminate part that is now dom-enter.
2323         (eliminate_leave_block): New function.
2324         (fini_eliminate): Likewise.
2325         (init_pre): Simplify.
2326         (fini_pre): Likewise.
2327         (execute_pre): Fold into do_pre and do_fre.
2328         (do_pre): Consume execute_pre.
2329         (do_fre): Likewise.
2330         * Makefile.in (tree-ssa-pre.o): Add domwalk.h dependency.
2331
2332 2012-09-12  Diego Novillo  <dnovillo@google.com>
2333
2334         * vec.h: Remove compatibility notes for previous distinction
2335         between vectors of objects and vectors of pointers.
2336
2337 2012-09-12  Christian Bruel  <christian.bruel@st.com>
2338
2339         * config/sh/newlib.h (NO_IMPLICIT_EXTERN_C): Define.
2340
2341 2012-09-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2342
2343         * rtl.h (FFS, FLOAT, ABS, PC): Don't undef.
2344         * system.h (FFS, FLOAT, ABS, PC): Undef.
2345
2346 2012-09-12  Richard Guenther  <rguenther@suse.de>
2347
2348         PR middle-end/54553
2349         * common.opt (finline): Mark with Optimization.
2350
2351 2012-09-12  Jakub Jelinek  <jakub@redhat.com>
2352
2353         * config.gcc: Obsolete picochip-*.
2354
2355 2012-09-12  Nathan Froyd  <froydnj@gcc.gnu.org>
2356             Hans-Peter Nilsson  <hp@bitrange.com>
2357
2358         * config/mmix/mmix.h (MMIX_REG_OK_STRICT): Delete.
2359         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P): Delete.
2360         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
2361         * config/mmix/mmix-protos.h (mmix_intval): Declare.
2362         (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
2363         (mmix_const_double_ok_for_letter_p): Delete.
2364         * config/mmix/constraints.md: New file.
2365         * config/mmix/mmix.md: Include it.
2366         (iordi3): Fix typo; use "I" instead of undefined "H" constraint.
2367         ("*call_real"): Update comment about not using the "p" constraint.
2368         * config/mmix/predicates.md (mmix_reg_or_8bit_operand): Use
2369         satisfies_constraint_I.
2370         (mmix_address_operand): New predicate.
2371         (mmix_symbolic_or_address_operand): Use it instead of address_operand.
2372         * config/mmix/mmix.c: #include tm-constrs.h.
2373         (mmix_intval): Delete declaration.  Make non-static.
2374         (mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
2375         (mmix_const_double_ok_for_letter_p): Delete.
2376         (mmix_legitimate_address_p): Use satisfies_constraint_I.
2377         (mmix_print_operand_address): Likewise.
2378         (mmix_emit_sp_add): Adjust to use insn_const_int_ok_for_constraint
2379         when matching "L" constraint.
2380
2381 2012-09-11  Steven Bosscher  <steven@gcc.gnu.org>
2382
2383         * tree.h (expand_case): Move prototype ...
2384         * expr.h (expand_case): ...here.
2385         (expand_sjlj_dispatch_table): New prototype.
2386         * stmt.c: Include pointer-set.h instead of bitmap.h.
2387         (expand_case): Use a pointer set instead of a bitmap for
2388         already-seen labels.  Fold label values here.
2389         (add_case_node): Don't fold label values here.
2390         (expand_sjlj_dispatch_table): New function.
2391         * except.c (sjlj_emit_dispatch_table): Use it.
2392
2393 2012-09-11  Marc Glisse  <marc.glisse@inria.fr>
2394
2395         * tree-ssa-forwprop.c (simplify_vector_constructor): New function.
2396         (ssa_forward_propagate_and_combine): Call it.
2397
2398 2012-09-11  Diego Novillo  <dnovillo@google.com>
2399
2400         * var-tracking.c (vt_add_function_parameter): Adjust for VEC changes.
2401
2402 2012-09-11  Dominique Dhumieres  <dominiq@lps.ens.fr>
2403
2404         * config/darwin.c (darwin_asm_named_section): Adjust for VEC changes.
2405         (darwin_asm_dwarf_section): Likewise.
2406
2407 2012-09-11  Martin Jambor  <mjambor@suse.cz>
2408
2409         * dwarf2out.c (dwarf2out_abstract_function): Do not change cfun.
2410         (premark_used_types): New parameter fun, use it instead of cfun.
2411         (gen_subprogram_die): Use DECL_STRUCT_FUNCTION (decl) instead of cfun,
2412         also pass it to premark_used_types.
2413
2414 2012-09-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2415
2416         * doc/sourcebuild.texi (arm_neon_v2_ok): Adjust command line.
2417
2418 2012-09-11  Tobias Burnus  <burnus@net-b.de>
2419
2420         * doc/sourcebuild.texi (arm_neon_v2_ok): Fix @anchor.
2421
2422 2012-09-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2423             Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2424
2425         * config/arm/neon.md (fma<VCVTF:mode>4): New pattern.
2426         (*fmsub<VCVTF:mode>4): Likewise.
2427         * doc/sourcebuild.texi (arm_neon_v2_ok, arm_neon_v2_hw):  Document it.
2428
2429 2012-09-11  Aldy Hernandez  <aldyh@redhat.com>
2430
2431         PR middle-end/54149
2432         * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set): Only set
2433         flag for writes.
2434
2435 2012-09-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2436
2437         PR tree-optimization/55492
2438         * doc/invoke.texi (max-slsr-cand-scan): New description.
2439         * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Limit
2440         the time spent searching for a basis.
2441         * params.def (PARAM_MAX_SLSR_CANDIDATE_SCAN): New param.
2442
2443 2012-09-11  Richard Guenther  <rguenther@suse.de>
2444
2445         * gimple.h (gimple_register_type): Remove.
2446         (print_gimple_types_stats): Adjust prototype.
2447         * lto-streamer.h (print_lto_report): Likewise.
2448         * lto-streamer.c (print_lto_report): Adjust.
2449         * gimple.c (gimple_types, type_hash_cache, enum gtc_mode,
2450         struct type_pair_d, lookup_type_pair, struct sccs,
2451         next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
2452         gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
2453         gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
2454         visit, iterative_hash_name, struct type_hash_pair,
2455         type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
2456         gimple_type_eq, gimple_register_type_1, gimple_register_type):
2457         Move to lto/lto.c.
2458         (print_gimple_types_stats): Adjust.
2459         (free_gimple_type_tables): Likewise.
2460
2461 2012-09-11  Richard Guenther  <rguenther@suse.de>
2462
2463         * graphite-scop-detection.c (move_sd_regions): Adjust for VEC changes.
2464         (scopdet_basic_block_info): Likewise.
2465         (build_scops_1): Likewise.
2466         (limit_scops): Likewise.
2467
2468 2012-09-11  Richard Guenther  <rguenther@suse.de>
2469
2470         PR middle-end/54515
2471         * gimple.c (get_base_address): Do not return NULL_TREE apart
2472         from for WITH_SIZE_EXPR.
2473         * gimple-fold.c (canonicalize_constructor_val): Do not call
2474         get_base_address when not necessary.
2475
2476 2012-09-10  Andrew Pinski  <apinski@cavium.com>
2477
2478         PR tree-opt/54362
2479         * trans-mem.c (thread_private_new_memory): Handle COND_EXPR also.
2480
2481 2012-09-10  Maxim Kuvyrkov  <maxim@codesourcery.com>
2482
2483         * config/m68k/m68k.c (m68k_sched_dfa_post_advance_cycle): Support
2484         starting scheduling from a pre-existing state.
2485
2486 2012-09-10  Diego Novillo  <dnovillo@google.com>
2487
2488         * vec.h (vec_t::quick_push): Remove overload that accepts 'T *'.
2489         Update all users.
2490         (vec_t::safe_push): Likewise.
2491         (vec_t::quick_insert): Likewise.
2492         (vec_t::lower_bound): Likewise.
2493         (vec_t::safe_insert): Likewise.
2494         (vec_t::replace): Change second argument to 'T &'.
2495
2496 2012-09-10  Maciej W. Rozycki  <macro@codesourcery.com>
2497
2498         * config/rs6000/rs6000.md: Move a splitter next to its insn.
2499
2500 2012-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
2501
2502         PR target/54089
2503         * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Set always to 1 if
2504         dynamic shifts are available.
2505         (SHIFT_COUNT_TRUNCATED): Always define to 0.  Correct comment.
2506         * config/sh/sh.c (ashl_lshr_seq, ext_ashl_lshr_seq): Add comments.
2507         * config/sh/predicates.md (shift_count_operand): Allow
2508         arith_reg_operand even if TARGET_DYNSHIFT is false.
2509         * config/sh/sh.md (ashlsi3, lshrsi3): Expand library call patterns
2510         if needed.
2511         (ashlsi3_d_call, lshrsi3_d_call): New insns.
2512
2513 2012-09-10  Richard Sandiford  <rdsandiford@googlemail.com>
2514
2515         * ira.c (setup_pressure_classes): Handle synonymous classes.
2516
2517 2012-09-10  Marc Glisse  <marc.glisse@inria.fr>
2518
2519         * tree-ssa-forwprop.c (simplify_bitfield_ref): New function.
2520         (ssa_forward_propagate_and_combine): Call it.
2521
2522 2012-09-10  Steve Ellcey  <sellcey@mips.com>
2523
2524         * config.gcc: Add mips*-mti-linux* target
2525         Handle with_synci like other options.
2526         * config/mips/gnu-user64.h (LINUX64_DRIVER_SELF_SPECS): New.
2527         (DRIVER_SELF_SPECS): Define in terms of LINUX64_DRIVER_SELF_SPECS.
2528         * config/mips/mips.h (MIPS_ISA_SYNCI_SPEC): New.
2529         * config/mips/mti-linux.h: New file.
2530         * config/mips/t-mti-linux: New file.
2531
2532 2012-09-10  Marc Glisse  <marc.glisse@inria.fr>
2533
2534         * tree-ssa-forwprop.c (simplify_permutation): Handle CONSTRUCTOR.
2535
2536 2012-09-10  Martin Jambor  <mjambor@suse.cz>
2537
2538         * params.def (PARAM_IPA_MAX_AGG_ITEMS): New parameter.
2539         * ipa-prop.c: Include params.h.
2540         (IPA_MAX_AFF_JF_ITEMS): Removed.
2541         (determine_known_aggregate_parts): Use param value of
2542         PARAM_IPA_MAX_AGG_ITEMS instead of IPA_MAX_AFF_JF_ITEMS.
2543         * Makefile.in (ipa-prop.o): Add PARAMS_H dependency.
2544
2545 2012-09-10  Richard Guenther  <rguenther@suse.de>
2546
2547         PR tree-optimization/54520
2548         * tree-ssa-threadupdate.c (def_split_header_continue_p):
2549         Properly consider sub-loops.
2550
2551 2012-09-10  Richard Henderson  <rth@redhat.com>
2552
2553         * config/alpha/predicates.md (small_symbolic_operand): Disallow
2554         large offsets.
2555
2556 2012-09-10  Georg-Johann Lay  <avr@gjlay.de>
2557
2558         PR target/54536
2559         * config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287".
2560
2561 2012-09-10  Jan Hubicka  <jh@suse.cz>
2562
2563         * lto-cgraph.c (compute_ltrans_boundary): Do not care about aliases.
2564         * symtab.c (symtab_make_decl_local): Remove user defined visibility
2565         when making symbol local.
2566
2567 2012-09-09  Mark Kettenis  <kettenis@gnu.org>
2568
2569         * config/openbsd-stdint.h (INTMAX_TYPE, UINTMAX_TYPE): Define.
2570
2571 2012-09-09  Jan Hubicka  <jh@suse.cz>
2572
2573         * passes.c (ipa_write_summaries_1): Set state;
2574         do not call compute_ltrans_boundary.
2575         (ipa_write_optimization_summaries): Likewise.
2576         (ipa_write_summaries): compute_ltrans_boundary here.
2577         * lto-streamer.h (lto_symtab_encoder_d): NODES are allocated in heap.
2578         (compute_ltrans_boundary): Update prototype.
2579
2580 2012-09-09  Ulrich Drepper  <drepper@gmail.com>
2581
2582         * config/i386/cpuid.h: Define signature_*_e[bcd]x macros for
2583         matching results of level 0 calls to __cpuid to processor
2584         manufacturers.
2585         * config/i386/driver-i386.c (vendor_signatures): Removed.
2586         (processor_signatures): Removed.
2587         (host_detect_local_cpu): Replace uses of now-removed SIG_*
2588         constants with the new signature_*_ebx constants.
2589
2590 2012-09-08  Jan Hubicka  <jh@suse.cz>
2591
2592         Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
2593         in partitioning.
2594         * tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove
2595         forward declaration.
2596         (lto_symtab_encoder_d): Forward declare.
2597         (ipa_write_optimization_summaries): Update.
2598         * lto-cgraph.c (lto_symtab_encoder_new): Do not initialize
2599         body, initializer and in_partition.
2600         (lto_symtab_encoder_delete): Update.
2601         (lto_symtab_encoder_encode): Update.
2602         (lto_symtab_encoder_lookup): Move inline.
2603         (lto_symtab_encoder_delete_node): New function.
2604         (lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body,
2605         lto_symtab_encoder_encode_initializer_p,
2606         lto_set_symtab_encoder_encode_initializer,
2607         lto_symtab_encoder_in_partition_p,
2608         lto_symtab_encoder_in_partition_p): Update.
2609         (compute_ltrans_boundary): Take encoder as an input.
2610         * passes.c (ipa_write_summaries_1): Update.
2611         (ipa_write_summaries_1): Update.
2612         (ipa_write_summaries): Update.
2613         (ipa_write_optimization_summaries): Update.
2614         * lto-streamer.c (print_lto_report): Report number of cgraph nodes.
2615         * lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by
2616         num_output_symtab_nodes.
2617         (lto_encoder_entry): New structure.
2618         (struct lto_symtab_encoder_d): Reorg.
2619         (lto_symtab_encoder_delete_node): Declare.
2620         (lto_symtab_encoder_lookup): Bring inline.
2621         (compute_ltrans_boundary): Update.
2622         (lto_symtab_encoder_size): Update.
2623         (lsei_node, lsei_cgraph_node, lsei_varpool_node): Update.
2624         (lto_symtab_encoder_deref): Update.
2625
2626 2012-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2627
2628         * config/pa/pa.c (hppa_rtx_costs): Update costs for large
2629         integer modes.
2630
2631 2012-09-08  Andi Kleen  <ak@linux.intel.com>
2632
2633         * gcc/lto/lto.c (do_whole_program_analysis): Fix last broken patch.
2634
2635 2012-09-08  Andi Kleen  <ak@linux.intel.com>
2636
2637         * gcc/common.opt (-fmem-report-wpa): Add
2638         * gcc/doc/invoke.texi (-fmem-report-wpa): Document.
2639         * gcc/lto/lto.c (do_whole_program_analysis): Run mem_report
2640         when mem_report_wpa is set.
2641
2642 2012-09-07  Anthony Green  <green@moxielogic.com>
2643
2644         * config/moxie/moxie.c (moxie_expand_prologue): Optimize prologue
2645         for functions with large static stack requirements.
2646         (moxie_expand_epilogue): Use $r12 instead of $r5 for pulling saved
2647         values off of the stack.
2648
2649 2012-09-07  Nick Clifton  <nickc@redhat.com>
2650
2651         * config/v850/v850.h (DBX_DEBUGGING_INFO): Define.
2652         (ASM_GENERATE_INTERNAL_LABEL): Define if not already provided.
2653         * config/v850/v850.c (compute_register_save_size): Always include
2654         the link pointer.
2655         (increment_stack): New function - emits insns to increment or
2656         decrement the stack pointer.
2657         (expand_prologue, expand_epilogue): Use it.
2658         (expand_prologue): Set the function stack size, if requested.
2659         (v850_debug_unwind_info): New function.
2660         (TARGET_DEBUG_UNWIND_INFO): Define.
2661
2662 2012-09-07  Richard Earnshaw  <rearnsha@arm.com>
2663
2664         PR tree-ssa/54295
2665         * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
2666         Sign-extension of a zero-extended value can be simplified to
2667         just zero-extension.
2668
2669 2012-09-07  Richard Guenther  <rguenther@suse.de>
2670
2671         PR middle-end/53667
2672         * tree-ssa-structalias.c (handle_rhs_call): Properly clobber
2673         EAF_NOESCAPED arguments.  Transitively close non-EAF_DIRECT
2674         arguments separately.
2675
2676 2012-09-07  Steven Bosscher  <steven@gcc.gnu.org>
2677
2678         * bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit.
2679
2680         * graphite.c (print_global_statistics): Use EDGE_COUNT instead
2681         of VEC_length.
2682         (print_graphite_scop_statistics): Likewise.
2683         * graphite-scop-detection.c (get_bb_type): Use single_succ_p.
2684         (print_graphite_scop_statistics): Use EDGE_COUNT, not VEC_length.
2685         (canonicalize_loop_closed_ssa): Use single_pred_p.
2686
2687         * alias.c (reg_seen): Make this an sbitmap.
2688         (record_set, init_alias_analysis): Update.
2689
2690         * tree-ssa-coalesce.c (ssa_conflicts_dump): Fix dumping.
2691
2692 2012-09-07  Tom de Vries  <tom@codesourcery.com>
2693
2694         PR tree-optimization/53986
2695         * tree-vrp.c (extract_range_from_multiplicative_op_1): Allow
2696         LSHIFT_EXPR.
2697         (extract_range_from_binary_expr_1): Handle LSHIFT with constant
2698         range as shift amount.
2699
2700 2012-09-07  Segher Boessenkool  <segher@kernel.crashing.org>
2701
2702         * config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete.
2703         * config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete.
2704         * config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete.
2705         * config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete.
2706         * config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete.
2707         * config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete.
2708         * config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete.
2709         * config/rs6000/rs6000.c (print_operand) ['.']: Delete.
2710         * config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete.
2711         * config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>):
2712         Replace %. with nop.
2713         (tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto.
2714         (tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto.
2715         (tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto.
2716         (call_nonlocal_aix32): Ditto.
2717         (call_nonlocal_aix64): Ditto.
2718         (call_value_nonlocal_aix32): Ditto.
2719         (call_value_nonlocal_aix64): Ditto.
2720
2721 2012-09-06  Andi Kleen  <ak@linux.intel.com>
2722
2723         * doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar
2724         et.al. should be used.
2725
2726 2012-09-06  Andi Kleen  <ak@linux.intel.com>
2727
2728         * gcc/lto-streamer.h (res_pair): Add.
2729         (lto_file_decl_data): Replace resolutions with respairs.
2730         Add max_index.
2731         * gcc/lto/lto.c (lto_resolution_read): Remove max_index.  Add rp.
2732         Initialize respairs.
2733         (lto_file_finalize): Set up resolutions vector lazily from respairs.
2734
2735 2012-09-06  Lawrence Crowl  <crowl@google.com>
2736
2737         * double-int.h (double_int::operator &=): New.
2738         (double_int::operator ^=): New.
2739         (double_int::operator |=): New.
2740         (double_int::mul_with_sign): Modify overflow parameter to bool*.
2741         (double_int::add_with_sign): New.
2742         (double_int::ule): New.
2743         (double_int::sle): New.
2744         (binary double_int::operator *): Remove parameter name.
2745         (binary double_int::operator +): Likewise.
2746         (binary double_int::operator -): Likewise.
2747         (binary double_int::operator &): Likewise.
2748         (double_int::operator |): Likewise.
2749         (double_int::operator ^): Likewise.
2750         (double_int::and_not): Likewise.
2751         (double_int::from_shwi): Tidy formatting.
2752         (double_int::from_uhwi): Likewise.
2753         (double_int::from_uhwi): Likewise.
2754         * double-int.c (double_int::mul_with_sign): Modify overflow parameter
2755         to bool*.
2756         (double_int::add_with_sign): New.
2757         (double_int::ule): New.
2758         (double_int::sle): New.
2759         * builtins.c: Modify to use the new double_int interface.
2760         * cgraph.c: Likewise.
2761         * combine.c: Likewise.
2762         * dwarf2out.c: Likewise.
2763         * emit-rtl.c: Likewise.
2764         * expmed.c: Likewise.
2765         * expr.c: Likewise.
2766         * fixed-value.c: Likewise.
2767         * fold-const.c: Likewise.
2768         * gimple-fold.c: Likewise.
2769         * gimple-ssa-strength-reduction.c: Likewise.
2770         * gimplify-rtx.c: Likewise.
2771         * ipa-prop.c: Likewise.
2772         * loop-iv.c: Likewise.
2773         * optabs.c: Likewise.
2774         * stor-layout.c: Likewise.
2775         * tree-affine.c: Likewise.
2776         * tree-cfg.c: Likewise.
2777         * tree-dfa.c: Likewise.
2778         * tree-flow-inline.h: Likewise.
2779         * tree-object-size.c: Likewise.
2780         * tree-predcom.c: Likewise.
2781         * tree-pretty-print.c: Likewise.
2782         * tree-sra.c: Likewise.
2783         * tree-ssa-address.c: Likewise.
2784         * tree-ssa-alias.c: Likewise.
2785         * tree-ssa-ccp.c: Likewise.
2786         * tree-ssa-forwprop.c: Likewise.
2787         * tree-ssa-loop-ivopts.c: Likewise.
2788         * tree-ssa-loop-niter.c: Likewise.
2789         * tree-ssa-phiopt.c: Likewise.
2790         * tree-ssa-pre.c: Likewise.
2791         * tree-ssa-sccvn: Likewise.
2792         * tree-ssa-structalias.c: Likewise.
2793         * tree-ssa.c: Likewise.
2794         * tree-switch-conversion.c: Likewise.
2795         * tree-vect-loop-manip.c: Likewise.
2796         * tree-vrp.c: Likewise.
2797         * tree.h: Likewise.
2798         * tree.c: Likewise.
2799         * varasm.c: Likewise.
2800
2801 2012-09-06  Uros Bizjak  <ubizjak@gmail.com>
2802
2803         * configure.ac (hle prefixes): Remove .code64 directive.
2804         * configure: Regenerated.
2805
2806 2012-09-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2807
2808         * config/arm/arm.c: Use CONST_INT_P, CONST_DOUBLE_P, REG_P, MEM_P,
2809         LABEL_P, JUMP_P, CALL_P, NOTE_P, BARRIER_P consistently.
2810         * config/arm/arm.h: Use REG_P, MEM_P consistently.
2811         * config/arm/arm.md: Use CONST_INT_P, REG_P, MEM_P, CONST_DOUBLE_P
2812         consistently.
2813         * config/arm/neon.md: Use REG_P consistently.
2814         * config/arm/predicates.md: Use CONST_INT_P, REG_P, MEM_P consistently.
2815         * config/arm/thumb2.md: Use CONST_INT_P, REG_P consistently.
2816         * config/arm/vec-common.md: Use REG_P consistently.
2817
2818 2012-09-06  Richard Guenther  <rguenther@suse.de>
2819
2820         PR tree-optimization/54498
2821         * tree-ssa-alias.h (get_continuation_for_phi): Add flag to
2822         abort when reaching an already visited region.
2823         * tree-ssa-alias.c (maybe_skip_until): Likewise.  And do it.
2824         (get_continuation_for_phi_1): Likewise.
2825         (walk_non_aliased_vuses): When we translated the reference,
2826         abort when we re-visit a region.
2827         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
2828
2829 2012-09-06  David Edelsohn  <dje.gcc@gmail.com>
2830
2831         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Add TLS
2832         section.
2833         * config/rs6000/rs6000.c (rs6000_debug_address_cost): Add new
2834         arguments to TARGET_ADDRESS_COST call.
2835
2836 2012-09-06  Richard Guenther  <rguenther@suse.de>
2837
2838         * tree.h (MOVE_NONTEMPORAL): Remove.
2839         * tree-pretty-print.c (dump_generic_node): Remove
2840         MOVE_NONTEMPORAL handling.
2841         * expr.c (expand_expr_real_1): Likewise.
2842
2843 2012-09-06  Richard Guenther  <rguenther@suse.de>
2844
2845         * passes.c (execute_function_todo): Call compute_may_aliases
2846         only if flag_tree_pta is set.
2847
2848 2012-09-06  Andrew Pinski  <apinski@cavium.com>
2849
2850         PR tree-opt/54494
2851         * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.
2852
2853 2012-09-06  Jakub Jelinek  <jakub@redhat.com>
2854
2855         PR rtl-optimization/54455
2856         * sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
2857         bb ends up with asm goto referencing bb's label.
2858
2859 2012-09-06  Chen Liqin  <liqin.gcc@gmail.com>
2860
2861         * config/score/score.c: Remove TARGET_LEGITIMIZE_ADDRESS define and
2862         score_legitimize_address function, use compiler default code instead.
2863
2864 2012-09-05  Jan Hubicka  <jh@suse.cz>
2865
2866         * ipa-inline.c (want_inline_small_function_p): Use
2867         INLINE_HINT_loop_iterations hint.
2868
2869 2012-09-05  Andrew Pinski  <apinski@cavium.com>
2870
2871         * optabs.c (emit_conditional_add): Correct comment about the arguments.
2872         Remove code which might swap op2 and op3 since they cannot be swapped.
2873         * doc/md.texi (add@var{mode}cc): Fix document about how the arguments
2874         are used.
2875
2876 2012-09-05  Oleg Endo  <olegendo@gcc.gnu.org>
2877
2878         * hooks.c (hook_int_rtx_mode_as_bool_0): New function.
2879         * hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
2880         * output.h (default_address_cost): Add machine_mode and address space
2881         arguments.
2882         * target.def (address_cost): Likewise.
2883         * rtlanal.c (address_cost): Pass mode and address space to target hook.
2884         (default_address_cost): Add unnamed machine_mode and address space
2885         arguments.
2886         * doc/tm.texi: Regenerate.
2887         * config/alpha/alpha.c (TARGET_ADDRESS_COST): Use
2888         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2889         * config/arm/arm.c (arm_address_cost): Add machine_mode and address
2890         space arguments.
2891         * config/avr/avr.c (avr_address_cost): Likewise.
2892         * config/bfin/bfin.c (bfin_address_cost): Likewise.
2893         * config/cr16/cr16.c (cr16_address_cost): Likewise.
2894         * config/cris/cris.c (cris_address_cost): Likewise.
2895         * config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
2896         * config/i386/i386.c (ix86_address_cost): Likewise.
2897         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Use
2898         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2899         * config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and
2900         address space arguments.  Pass them on in recursive invocation.
2901         * config/lm32/lm32.c (TARGET_ADDRESS_COST): Use
2902         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2903         * config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address
2904         space arguments.
2905         * config/m32r/m32r.c (TARGET_ADDRESS_COST): Use
2906         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2907         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
2908         * config/mep/mep.c (mep_address_cost): Add machine_mode and address
2909         space arguments.
2910         * config/microblaze/microblaze.c (microblaze_address_cost): Likewise.
2911         * config/mips/mips.c (mips_address_cost): Likewise.
2912         * config/mmix/mmix.c (TARGET_ADDRESS_COST): Use
2913         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2914         * config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and
2915         address space arguments.
2916         (mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to
2917         mn10300_address_cost.
2918         * config/pa/pa.c (hppa_address_cost): Add machine_mode and address
2919         space arguments.
2920         * config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
2921         (TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of
2922         hook_int_rtx_bool_0.
2923         * config/rx/rx.c (rx_address_cost): Add machine_mode and address
2924         space arguments.
2925         * config/s390/s390.c (s390_address_cost): Likewise.
2926         * config/score/score-protos.h (score_address_cost): Likewise.
2927         * config/score/score.c (score_address_cost): Likewise.
2928         * config/sh/sh.c (sh_address_cost): Likewise.
2929         * config/sparc/sparc.c (TARGET_ADDRESS_COST): Use
2930         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2931         * config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
2932         * config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode
2933         and address space arguments.
2934         * config/v850/v850.c (TARGET_ADDRESS_COST): Use
2935         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2936         * config/vax/vax.c (vax_address_cost): Add machine_mode and address
2937         space arguments.
2938         * config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
2939         hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
2940
2941 2012-09-05  Diego Novillo  <dnovillo@google.com>
2942
2943         PR bootstrap/54484
2944         * vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN argument.
2945
2946 2012-09-05  Jakub Jelinek  <jakub@redhat.com>
2947
2948         PR middle-end/54486
2949         * builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
2950         build_int_cst with size_type_node instead of size_int.
2951
2952 2012-09-05  Uros Bizjak  <ubizjak@gmail.com>
2953
2954         * config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
2955         Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
2956         Use nonimmediate_operand instead of
2957         nonimm_not_xmm0_operand{,_maybe_avx}.
2958         (<sse4_1_avx2>_pblendvb): Ditto.
2959         (sse4_2_pcmpestr): Ditto.
2960         (*sse4_2_pcmpestr_unaligned): Ditto.
2961         (sse4_2_pcmpistr): Ditto.
2962         (*sse4_2_pcmpistr_unaligned): Ditto.
2963         * config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
2964         (nonimm_not_xmm0_operand): Ditto.
2965         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
2966         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
2967         * config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.
2968
2969 2012-09-05  Eric Botcazou  <ebotcazou@adacore.com>
2970
2971         * bb-reorder.c: Clarify a few points in the head comment and fix
2972         long lines in other comments.
2973         (find_traces): Fix long line.
2974         (find_traces_1_round): Likewise.
2975         (better_edge_p): Likewise.
2976         (connect_traces): Likewise.
2977         (duplicate_computed_gotos): Likewise.
2978         (find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces.
2979         (fix_up_fall_thru_edges): Fix formatting.
2980
2981 2012-09-05  Richard Guenther  <rguenther@suse.de>
2982
2983         PR tree-optimization/46590
2984         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
2985         update SSA form here.
2986         (canonicalize_induction_variables): Assert we do not need to
2987         update SSA form.
2988         (tree_unroll_loops_completely): Update SSA form here.
2989         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
2990         Do not verify loop-closed SSA form if SSA form is not up-to-date.
2991
2992 2012-09-05  Georg-Johann Lay  <avr@gjlay.de>
2993
2994         PR target/54461
2995         * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
2996         not configured --with-avrlibc=no.
2997         (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured
2998         --with-avrlibc=no.
2999         * config/avr/avrlibc.h: New file.
3000         * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
3001         not configured --with-avrlibc=no.
3002         * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__
3003
3004 2012-09-04  Teresa Johnson  <tejohnson@google.com>
3005
3006         * gcov-io.c (gcov_write_summary): Write out non-zero histogram
3007         entries to function summary along with an occupancy bit vector.
3008         (gcov_read_summary): Read in the histogram entries.
3009         (gcov_histo_index): New function.
3010         (void gcov_histogram_merge): Ditto.
3011         * gcov-io.h (gcov_type_unsigned): New type.
3012         (struct gcov_bucket_type): Ditto.
3013         (struct gcov_ctr_summary): Include histogram.
3014         (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
3015         (GCOV_HISTOGRAM_SIZE): New macro.
3016         (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
3017         * profile.c (NUM_GCOV_WORKING_SETS): Ditto.
3018         (gcov_working_sets): New global variable.
3019         (compute_working_sets): New function.
3020         (find_working_set): Ditto.
3021         (get_exec_counts): Invoke compute_working_sets.
3022         * coverage.c (read_counts_file): Merge histograms, and
3023         fix bug with accessing summary info for non-summable counters.
3024         * basic-block.h (gcov_type_unsigned): New type.
3025         (struct gcov_working_set_info): Ditto.
3026         (find_working_set): Declare.
3027         * gcov-dump.c (tag_summary): Dump out histogram.
3028
3029 2012-09-04  Diego Novillo  <dnovillo@google.com>
3030
3031         PR bootstrap/54484
3032         * vec.h (vec_t::embedded_init): Move default argument value
3033         to function declaration.
3034
3035 2012-09-04  Eric Botcazou  <ebotcazou@adacore.com>
3036
3037         * bb-reorder.c (gate_handle_reorder_blocks): Move around.
3038         (rest_of_handle_reorder_blocks): Likewise.
3039         (pass_reorder_blocks): Likewise.
3040         (gate_handle_partition_blocks): Likewise.
3041
3042 2012-09-04  Eric Botcazou  <ebotcazou@adacore.com>
3043
3044         PR rtl-optimization/54456
3045         * sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.
3046
3047 2012-09-04  Diego Novillo  <dnovillo@google.com>
3048
3049         PR bootstrap/54478
3050         * vec.h (vec_t::alloc): Remove explicit type specification
3051         in call to reserve.
3052         (vec_t::copy): Likewise.
3053         (vec_t::reserve): Likewise.
3054         (vec_t::reserve_exact): Likewise.
3055         (vec_t::safe_splice): Likewise.
3056         (vec_t::safe_push): Likewise.
3057         (vec_t::safe_grow): Likewise.
3058         (vec_t::safe_grow_cleared): Likewise.
3059         (vec_t::safe_insert): Likewise.
3060
3061 2012-09-04  Richard Henderson  <rth@redhat.com>
3062
3063         * alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
3064
3065 2012-09-04  Richard Guenther  <rguenther@suse.de>
3066
3067         * tree-ssa-pre.c (value_expressions): Make it a vector of
3068         bitmaps containing expression IDs.
3069         (add_to_value): Adjust.
3070         (sorted_array_from_bitmap_set): Likewise.
3071         (bitmap_set_replace_value): Likewise.
3072         (print_value_expressions): Likewise.
3073         (get_constant_for_value_id): Likewise.
3074         (get_representative_for): Likewise.
3075         (phi_translate_1): Likewise.
3076         (bitmap_find_leader): Likewise.
3077         (find_or_generate_expression): Likewise.
3078         (do_regular_insertion): Likewise.
3079         (init_pre): Likewise.
3080         (fini_pre): Likewise.
3081
3082 2012-09-04  Diego Novillo  <dnovillo@google.com>
3083
3084         PR bootstrap/54479
3085         * vec.h (vec_t::copy): Add cast in call to reserve_exact.
3086
3087 2012-09-04  Richard Guenther  <rguenther@suse.de>
3088
3089         * tree-ssa-pre.c (add_to_exp_gen): Adjust.
3090         (make_values_for_phi): Do not add to PHI_GEN for FRE.
3091         (compute_avail): Stop processing after adding all defs to
3092         AVAIL_OUT for FRE.
3093         (init_pre): Do not allocate not needed bitmap sets for FRE.
3094
3095 2012-09-04  Diego Novillo  <dnovillo@google.com>
3096
3097         Rewrite VEC_* functions as member functions of vec_t.
3098
3099         * vec.h: Update documentation.
3100         (ALONE_VEC_CHECK_INFO): Define.
3101         (ALONE_VEC_CHECK_DECL): Define.
3102         (ALONE_VEC_CHECK_PASS): Define.
3103         (struct vec_prefix): Rename field NUM to NUM_.
3104         Rename field ALLOC to ALLOC_.
3105         Update all users.
3106         (struct vec_t): Rename field PREFIX to PREFIX_.
3107         Rename field VEC to VEC_.
3108         Update all users.
3109         (vec_t::length): Rename from VEC_length_1.  Update all users.
3110         (vec_t::empty): Rename from VEC_empty_1.  Update all users.
3111         (vec_t::address): Rename from VEC_address_1.  Update all users.
3112         (vec_address): New.
3113         (vec_t::last): Rename from VEC_last_1.  Update all users.
3114         (vec_t::operator[]): Rename from VEC_index_1.  Update all users.
3115         (vec_t::iterate): Rename from VEC_iterate_1.  Update all users.
3116         (vec_t::embedded_size): Rename from VEC_embedded_size_1.
3117         Update all users.
3118         (vec_t::embedded_init): Rename from VEC_embedded_init_1.
3119         Update all users.
3120         (vec_t::alloc): Rename from VEC_alloc_1.  Update all users.
3121         (vec_t::free): Rename from VEC_free_1.  Update all users.
3122         (vec_t::copy): Rename from VEC_copy_1.  Update all users.
3123         (vec_t::space): Rename from VEC_space_1.  Update all users.
3124         (vec_t::reserve): Rename from VEC_reserve_1.  Update all users.
3125         (vec_t::reserve_exact): Rename from VEC_reserve_exact_1.
3126         Update all users.
3127         (vec_t::splice): Rename from VEC_splice_1.  Update all users.
3128         (vec_t::safe_splice): Rename from VEC_safe_splice_1.  Update all users.
3129         (vec_t::quick_push): Rename from VEC_quick_push_1.  Update all users.
3130         (vec_t::safe_push): Rename from VEC_safe_push_1.  Update all users.
3131         (vec_t::pop): Rename from VEC_pop_1.  Update all users.
3132         (vec_t::truncate): Rename from VEC_truncate_1.  Update all users.
3133         (vec_t::safe_grow): Rename from VEC_safe_grow_1.  Update all users.
3134         (vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1.
3135         Update all users.
3136         (vec_t::replace): Rename from VEC_replace_1.  Update all users.
3137         (vec_t::quick_insert): Rename from VEC_quick_insert_1.
3138         Update all users.
3139         (vec_t::safe_insert): Rename from VEC_safe_insert_1.  Update all users.
3140         (vec_t::ordered_remove): Rename from VEC_ordered_remove_1.
3141         Update all users.
3142         (vec_t::unordered_remove): Rename from VEC_unordered_remove_1.
3143         Update all users.
3144         (vec_t::block_remove): Rename from VEC_block_remove_1. Update all users.
3145         (vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users.
3146
3147 2012-09-04  Steven Bosscher  <steven@gcc.gnu.org>
3148
3149         * gimple.h (gimple_build_switch): Remove.
3150         (gimple_build_switch_vec): Promote to the new gimple_build_switch.
3151         (gimple_switch_default_label): Assert the default case label is
3152         really a default case label.
3153         (gimple_switch_set_default_label): Likewise.
3154         * gimple.c (gimple_build_switch_nlabels): Make sure a default label
3155         is passed in, and simplify accordingly.
3156         (gimple_build_switch): Removed.
3157         (gimple_build_switch_vec): Rename to gimple_build_switch.
3158         * gimplify.c (gimplify_switch_expr): Update gimple_build_switch use.
3159         * gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL
3160         case label.
3161         * stmt.c (expand_case): Simplify using the fact that every GIMPLE
3162         switch must have a default case.
3163         * tree-cfg.c (group_case_labels_stmt): Likewise.
3164         (verify_gimple_switch): Use gimple_switch_label in verifier to get
3165         the label at index 0, and verify that it is a valid default case.
3166         * except.c (sjlj_emit_dispatch_table): Rewrite construction of the
3167         switch for dispatching.
3168         * tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use.
3169         (lower_eh_dispatch): Likewise.
3170         * tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case
3171         label at index 0 before turning it into a default case label.
3172         * omp-low.c (expand_omp_sections): Update gimple_build_switch use.
3173         * tree-switch-conversion.c (emit_case_bit_tests): Get the default case
3174         label using gimple_switch_default_label.
3175         (collect_switch_conv_info): Likewise.
3176         (process_switch): Likewise.
3177         * doc/gimple.texi: Update documentation of gimple_build_switch.
3178
3179 2012-09-04  Georg-Johann Lay  <avr@gjlay.de>
3180
3181         PR target/54476
3182         * config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
3183         SImode.
3184
3185 2012-09-04  Bin Cheng  <bin.cheng@arm.com>
3186
3187         PR target/45070
3188         * config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value
3189         of size less than 4 bytes by using macro ARM_NUM_INTS.
3190         (thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.
3191
3192 2012-09-04  Richard Guenther  <rguenther@suse.de>
3193
3194         PR tree-optimization/54458
3195         * tree-ssa-threadupdate.c (thread_through_loop_header): If we
3196         turn the loop into one with multiple latches mark it so.
3197
3198 2012-09-04  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3199
3200         PR target/54220
3201         * config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
3202         define to...
3203         (avr_allocate_stack_slots_for_args): ...this new static function.
3204
3205 2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
3206
3207         * config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT
3208         by GEN_INT.
3209         (arm_emit_coreregs_64bit_shift): Likewise.
3210
3211 2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
3212
3213         * config/arm/arm.c (arm_evpc_neon_vext): New function.
3214         (arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext.
3215
3216 2012-09-04  Oleg Endo  <olegendo@gcc.gnu.org>
3217
3218         PR target/51244
3219         * config/sh/sh.c (prepare_cbranch_operands): Pull out comparison
3220         canonicalization code into...
3221         * (sh_canonicalize_comparison): This new function.
3222         * config/sh/sh-protos.h: Declare it.
3223         * config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON.
3224         * config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and
3225         always invoke expand_cbranchsi4.
3226
3227 2012-09-03  Andi Kleen  <ak@linux.intel.com>
3228
3229         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Initialize
3230         addr_offset always.
3231
3232 2012-09-03  Andrew Pinski  <apinski@cavium.com>
3233
3234         PR tree-opt/53395
3235         * tree-if-conv.c (constant_or_ssa_name): New function.
3236         (fold_build_cond_expr): New function.
3237         (predicate_scalar_phi): Use fold_build_cond_expr instead of build3.
3238         (predicate_mem_writes): Likewise.
3239
3240 2012-09-03  Marc Glisse  <marc.glisse@inria.fr>
3241
3242         * fold-const.c (fold_ternary_loc): Constant-propagate after
3243         removing dead operands.
3244
3245 2012-09-03  Michael Matz  <matz@suse.de>
3246
3247         PR tree-optimization/46590
3248         * tree-cfg.c (gimple_duplicate_sese_region): Don't update
3249         SSA web here ...
3250         * tree-ssa-loop-ch.c (copy_loop_headers): ... but here.
3251
3252 2012-09-03  Sandra Loosemore  <sandra@codesourcery.com>
3253
3254         * doc/invoke.texi: Fix numerous typos and punctuation/grammatical
3255         errors throughout the file.  Re-word some awkward sentences and
3256         paragraphs.
3257
3258 2012-09-03  Richard Guenther  <rguenther@suse.de>
3259
3260         PR tree-optimization/54362
3261         * tree-ssa-structalias.c (find_func_aliases): Handle COND_EXPR.
3262
3263 2012-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3264
3265         * config/s390/s390.c (s390_loadrelative_operand_p): New function.
3266         (s390_check_qrst_address, print_operand_address): Use
3267         s390_loadrelative_operand_p instead of s390_symref_operand_p.
3268         (s390_check_symref_alignment): Accept pointer size alignment for
3269         GOT slots.
3270         (legitimize_pic_address): Use load relative on z10 or later.
3271
3272 2012-09-03  Jakub Jelinek  <jakub@redhat.com>
3273
3274         PR debug/53923
3275         * valtrack.c (dead_debug_insert_temp): Drop non-reg uses
3276         from the chain.
3277
3278 2012-09-03  Joseph Myers  <joseph@codesourcery.com>
3279
3280         * common.opt (--no-sysroot-suffix): New driver option.
3281         * doc/invoke.texi (--no-sysroot-suffix): Document.
3282         * gcc.c (driver_handle_option): Handle --no-sysroot-suffix as not
3283         needing spec processing.
3284         (main): Do not process sysroot suffixes if no_sysroot_suffix.
3285
3286 2012-09-02  Oleg Endo  <olegendo@gcc.gnu.org>
3287
3288         PR target/33135
3289         * common/config/sh/sh-common.c: Update copyright years.
3290         (sh_option_init_struct): Delete.
3291         (TARGET_OPTION_INIT_STRUCT): Likewise.
3292
3293 2012-09-02  Oleg Endo  <olegendo@gcc.gnu.org>
3294
3295         PR target/54418
3296         * config/sh/sh.md (cmpgeusi_t): Remove N alternative.
3297         Check operands[1] in split condition instead of operands[0].
3298         Add comments.
3299
3300 2012-09-02  Mark Kettenis  <kettenis@openbsd.org>
3301
3302         * config.gcc (x86_64-*-openbsd*): New target.
3303         * config.host (*-*-openbsd*): New target.
3304         * config/openbsd.h (TARGET_C99_FUNCTIONS): Define.
3305         * config/i386/openbsdelf.h: Remove some superfluous defines and
3306         group things together in a more logical fashion.
3307         (DBX_REGISTER_NUMBER): Provide a
3308         definition that works on both 32-bit and 64-bit targets.
3309         (WCHAR_TYPE_SIZE): Hardcode as 32.
3310         (NO_DOLLAR_IN_LABEL): Remove undef.
3311         (TARGET_DEFAULT): Remove.
3312         (SET_ASM_OP): Remove.
3313         (DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning.
3314         (ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h
3315         (DWARF2_UNWIND_INFO): Remove define.
3316         (HAVE_ENABLE_EXECUTE_STACK): Define.
3317         * config/host-openbsd.c: New file.
3318         * config/t-openbsd (USER_H): Add EXTRA_HEADERS.
3319         * config/x-openbsd: New file.
3320
3321 2012-09-02  Oleg Endo  <olegendo@gcc.gnu.org>
3322
3323         * config/sh/sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated
3324         mode to sh_legitimate_index_p instead of QImode.
3325
3326 2012-09-02  Eric Botcazou  <ebotcazou@adacore.com>
3327
3328         PR rtl-optimization/54369
3329         * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
3330         calling dbr_schedule.
3331         * config/sparc/sparc.c (sparc_reorg): Likewise.
3332
3333 2012-09-01  Jakub Jelinek  <jakub@redhat.com>
3334
3335         PR target/54436
3336         * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
3337         operands[1] is CONST_INT_P, convert it to QImode before printing.
3338
3339 2012-09-01  Andrew Pinski  <apinski@cavium.com>
3340
3341         * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
3342         A truncate of a memory is just loading the low part of the memory.
3343
3344 2012-09-01  Uros Bizjak  <ubizjak@gmail.com>
3345
3346         PR target/46829
3347         PR target/46843
3348         * config/i386/i386.c (ix86_legitimate_combined_insn): New function.
3349         (TARGET_LEGITIMATE_COMBINED_INSN): New macro.
3350
3351 2012-09-01  Uros Bizjak  <ubizjak@gmail.com>
3352
3353         * target.def (legitimate_combined_insn): New target hook.
3354         * doc/tm.texi.in (TARGET_LEGITIMATE_COMBINED_INSN): New hook.
3355         * doc/tm.texi: Regenerated.
3356         * combine.c (recog_for_combine): Call targetm.legitimate_combined_insn
3357         to allow targets to reject combined insn.
3358         * hooks.h (hook_bool_rtx_true): New.
3359         * hooks.c (hook_bool_rtx_true): Ditto.
3360
3361 2012-08-31  Martin Jambor  <mjambor@suse.cz>
3362
3363         * ipa-inline-analysis.c (estimate_function_body_sizes): Allocate
3364         nonconstant_names after calculate_dominance_info and
3365         loop_optimizer_init.
3366
3367 2012-08-31  Greta Yorsh  <Greta.Yorsh@arm.com>
3368
3369         * config/arm/arm.c (arm_expand_epilogue): Remove unused variable
3370         floats_from_frame.
3371
3372 2012-08-31  Martin Jambor  <mjambor@suse.cz>
3373
3374         PR middle-end/54409
3375         * ipa-inline-analysis.c (remap_predicate): Fix the offset_map
3376         checking condition.
3377
3378 2012-08-31  Martin Jambor  <mjambor@suse.cz>
3379
3380         * ipa-inline-analysis.c (phi_result_unknown_predicate): New function.
3381         (predicate_for_phi_result): Likewise.
3382         (estimate_function_body_sizes): Use the above two functions.
3383
3384 2012-08-31  Martin Jambor  <mjambor@suse.cz>
3385
3386         PR middle-end/54394
3387         * ipa-inline-analysis.c (estimate_function_body_sizes): Compute
3388         dominance info and loops whenever optimizing.
3389
3390 2012-08-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3391             Richard Earnshaw  <richard.earnshaw@arm.com>
3392
3393         PR target/54252
3394         * config/arm/arm.c (neon_dereference_pointer): Adjust nelems by
3395         element size. Use elem_type from the formal parameter. New parameter
3396         fcode.
3397         (neon_expand_args): Adjust call to neon_dereference_pointer.
3398
3399 2012-08-29  Steven Bosscher  <steven@gcc.gnu.org>
3400
3401         * cfg.c (dump_bb_info): Print a newline if there were no edges to dump.
3402
3403 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
3404
3405         Revert:
3406         * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
3407         mapping style, add ../lib/mips16.
3408         (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
3409         (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
3410
3411 2012-08-29  Richard Sandiford  <rdsandiford@googlemail.com>
3412
3413         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci
3414         if TARGET_SYNCI.
3415
3416 2012-08-29  Oleg Endo  <olegendo@gcc.gnu.org>
3417
3418         * config/sh/sh.opt (menable-tas): Rename to mtas.
3419         * doc/invoke.texi (SH options): Likewise.
3420         * config/sh/sync.md: Update comments.
3421
3422 2012-08-29  Oleg Endo  <olegendo@gcc.gnu.org>
3423
3424         * config/sh/iterators.md: New file.
3425         * config/sh/sync.md (I124, I12, i124suffix): Delete.  Replace usage
3426         with new iterators QIHISI, QIHI, bw, bwl respectively throughout
3427         the file.
3428         * config/sh/sh.md: Include new file iterators.md.
3429         (zero_extendhisi2, zero_extendqisi2): Fold into zero_extend<mode>si2.
3430         (*zero_extendhisi2_compact, *zero_extendqisi2_compact): Fold into
3431         *zero_extend<mode>si2_compact.
3432         (*zero_extendqisi2_disp_mem, zero_extendhisi2_disp_mem): Fold into
3433         *zero_extend<mode>si2_disp_mem.
3434         (extendhisi2, extendqisi2): Fold into extend<mode>si2.
3435         (*extendqisi2_compact_reg, *extendhisi2_compact_reg): Fold into
3436         *extend<mode>si2_compact_reg.
3437         (*extendqisi2_compact_mem_disp, *extendhisi2_compact_mem_disp): Fold
3438         into *extend<mode>si2_compact_mem_disp.
3439         (*extendqisi2_compact_snd, *extendhisi2_compact_snd): Fold into
3440         *extend<mode>si2_compact_snd.
3441         (*movsi_index_disp, *movhi_index_disp): Fold with iterators and rename
3442         to *movsi_index_disp_load, *movhi_index_disp_load,
3443         *mov<mode>_index_disp_store.
3444         (*movqi_reg_reg, *movhi_reg_reg): Fold into *mov<mode>_reg_reg.
3445         (*movqi_store_mem_disp04, *movhi_store_mem_disp05): Fold into
3446         *mov<mode>_store_mem_disp04.
3447         (*movqi_store_mem_disp12, *movhi_store_mem_disp13): Fold into
3448         *mov<mode>_store_mem_disp12.
3449         (*movqi_load_mem_disp, *movhi_load_mem_disp): Fold into
3450         *mov<mode>_load_mem_disp04 and *mov<mode>_load_mem_disp12.
3451
3452 2012-08-29  Martin Jambor  <mjambor@suse.cz>
3453
3454         * ipa-inline.h (estimate_edge_hints): Call do_estimate_edge_hints, not
3455         do_estimate_edge_time.
3456
3457 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
3458
3459         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm
3460         directives, remove #ifndef __mips16 guards.
3461         * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
3462         mapping style, add ../lib/mips16.
3463         (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
3464         (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
3465
3466 2012-08-28  Walter Lee  <walt@tilera.com>
3467         * confg/tilegx/tilegx.md: Fix code style.
3468         (*zero_extendsidi_truncdisi): Fix typo.
3469         * config/tilegx/tilegx.c: Fix code style.
3470         (tilegx_function_profiler): Fix typo.
3471
3472 2012-08-28  Walter Lee  <walt@tilera.com>
3473
3474         * doc/invoke.texi: Document -mcmodel=small, -mcmodel=large.
3475         * config/tilegx/tilegx.h: Include config/tilegx/tilegx-opts.h.
3476         (CRT_CALL_STATIC_FUNCTION): Define.
3477         * config/tilegx/predicates.md (const_last_symbolic_operand):
3478         Handle UNSPEC_HW2_LAST_PCREL, UNSPEC_HW1_LAST_PLT_PCREL, and
3479         UNSPEC_HW2_LAST_PLT_PCREL.
3480         (const_symbolic_operand): Handle UNSPEC_HW1_PCREL,
3481         UNSPEC_HW0_PLT_PCREL, and UNSPEC_HW1_PLT_PCREL.
3482         * config/tilegx/tilegx.md (UNSPEC_MOV_LARGE_PCREL_STEP4): Define,
3483         and renumber the constants that follow.
3484         (UNSPEC_HW1_PCREL): Ditto.
3485         (UNSPEC_HW2_LAST_PCREL): Ditto.
3486         (UNSPEC_HW0_PLT_PCREL): Define.
3487         (UNSPEC_HW1_PLT_PCREL): Define.
3488         (UNSPEC_HW1_LAST_PLT_PCREL): Define.
3489         (UNSPEC_HW2_LAST_PLT_PCREL): Define.
3490         (mov_large_pcrel_step1): Define.
3491         (mov_large_pcrel_step2): Define.
3492         (mov_large_pcrel_step3): Define.
3493         (mov_large_pcrel_step4): Define.
3494         (mov_plt_pcrel_step1): Define.
3495         (mov_plt_pcrel_step2): Define.
3496         (mov_plt_pcrel_step3): Define.
3497         (mov_plt_pcrel_step1_32bit): Define.
3498         (mov_plt_pcrel_step2_32bit): Define.
3499         (call): Handle tilegx_cmodel == CM_LARGE, CM_LARGE_PIC.
3500         (call_value): Ditto.
3501         * config/tilegx/tilegx.opt: Include config/tilegx/tilegx-opts.h.
3502         (mcmodel): New option.
3503         (enum cmodel): Define.
3504         (CM_SMALL): Define.
3505         (CM_LARGE): Define.
3506         * config/tilegx/tilegx-opts.h: New file.
3507         * config/tilegx/tilegx-protos.h (tilegx_compute_pcrel_address):
3508         Declare.
3509         (tilegx_compute_pcrel_plt_address): Declare.
3510         * config/tilegx/tilegx.c (tilegx_option_override): Handle
3511         tilegx_cmodel.
3512         (tilegx_function_ok_for_sibcall): Ditto.
3513         (compute_pcrel_address): Rename to tilegx_compute_pcrel_address,
3514         and don't declare static.  Handle tilegx_cmodel.
3515         (tilegx_compute_pcrel_plt_address): Define.
3516         (tilegx_legitimize_pic_address): Rename calls to
3517         compute_pcrel_address.
3518         (tilegx_delegitimize_address): Handle UNSPEC_HW1_PCREL,
3519         UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
3520         UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
3521         (load_pic_register): Rename call to compute_pcrel_address.
3522         (tilegx_print_operand): Handle UNSPEC_HW1_PCREL,
3523         UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
3524         UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
3525
3526 2012-08-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3527
3528         * sched-deps.c (add_dependence_list_and_free): Simplify.
3529         (flush_pending_list_and_free): Fix a hack that was fixing a hack.  Free
3530         lists when add_dependence_list_and_free doesn't free them.
3531
3532 2012-08-27  Uros Bizjak  <ubizjak@gmail.com>
3533
3534         PR target/46254
3535         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
3536         true for TARGET_64BIT or !flag_pic.
3537         * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
3538         (atomic_compare_and_swap_double<mode>): Change operand 2 predicate
3539         to cmpxchg8b_pic_memory_operand.  Use DWIH mode iterator.
3540         Add insn constraint.  Conditionally emit xchg asm insns.
3541         (atomic_compare_and_swap<mode>): Update calls.  Check only
3542         cmpxchg8b_pic_memory_operand in memory address fixup.
3543         (DCASMODE): Remove.
3544         (CASHMODE): Rename from DCASHMODE.
3545         (doublemodesuffix): Update modes.
3546         (regprefix): New mode attribute.
3547
3548         (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
3549         <UNSPECV_CMPXCHG>: New constant.
3550         (atomic_compare_and_swap<mode>_1): Rename from
3551         atomic_compare_and_swap_single<mode>.  Update calls and
3552         unspec_volatile constants.
3553         (atomic_compare_and_swap<mode>_doubleword): Rename from
3554         atomic_compare_and_swap_double<mode>.  Update calls and
3555         unspec_volatile constants.
3556
3557 2012-08-27  Walter Lee  <walt@tilera.com>
3558
3559         * doc/md.texi (TILE-Gx): Fix typo.
3560
3561 2012-08-27  Walter Lee  <walt@tilera.com>
3562
3563         * config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo.
3564         * config/tilepro/tilepro.c (tilepro_function_profiler): Ditto.
3565
3566 2012-08-27  Walter Lee  <walt@tilera.com>
3567
3568         * config/tilegx/tilegx.md (*bfins): Rename to insn_bfins.
3569         (insn_bfins): Delete.
3570
3571 2012-08-27  Walter Lee  <walt@tilera.com>
3572
3573         * config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>,
3574         atomic_exchange_bare<mode>,
3575         atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote.
3576         * config/tilegx/tilegx-generic.md (X1_remote): New
3577         insn_reservation.
3578         * config/tilegx/tilegx.md (type): Add X1_remove.
3579         (insn_cmpexch<four_if_si>, insn_exch<four_if_si>,
3580         insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>,
3581         insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to
3582         X1_remote.
3583
3584 2012-08-27  Andreas Schwab  <schwab@linux-m68k.org>
3585
3586         * gdbinit.in: Fix syntax of skip command.
3587
3588 2012-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
3589
3590         * config/mips/mips.c (mips_pic_call_symbol_from_set): Check for
3591         SYMBOL_REF SET_SRCs.
3592
3593 2012-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
3594
3595         * config/mips/mips.c (vr4130_align_insns): Don't simulate
3596         ghost instructions.  Assert that the required instructions exist.
3597
3598 2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>
3599
3600         * config/mips/mips.h (AVOID_CCMODE_COPIES): Update rationale for
3601         definition.
3602         * config/mips/mips.c (machine_function): Add next_fcc.
3603         (mips_output_move): Remove handling of fcc moves.
3604         (mips_allocate_fcc): New function.
3605         (mips_emit_compare, mips_expand_vcondv2sf): Use it.
3606         (mips_hard_regno_mode_ok_p): Restrict CCmode to ST registers.
3607         Remove special case for CCmode reloads.
3608         (mips_expand_builtin_compare_1): Use mips_allocate_fcc and treat
3609         the result a fixed operand.
3610         * config/mips/mips.md (move_type): Remove lui_movf.
3611         (type, length): Remove references to it.
3612         (movcc, reload_incc, reload_outcc): Delete.
3613
3614 2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>
3615
3616         * config/mips/mips.c (mips_has_long_branch_p): New function,
3617         split out from...
3618         (mips_expand_ghost_gp_insns): ...here.  Look inside sequences.
3619
3620 2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>
3621
3622         * config/mips/mips.c (r10k_safe_mem_expr_p): Use get_inner_reference.
3623
3624 2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>
3625
3626         * config/mips/mips.c (mips_rtx_costs): Add costs for CINS.
3627
3628 2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>
3629
3630         * config/mips/mips.c (mips_rtx_costs): Add missing COSTS_N_INSNS
3631         to the size cost of multiplication.
3632
3633 2012-08-26  Gerald Pfeifer  <gerald@pfeifer.com>
3634
3635         * doc/install.texi (Specific): Clarify what needs to be added to
3636         this section.
3637
3638 2012-08-26  Gerald Pfeifer  <gerald@pfeifer.com>
3639
3640         * doc/tm.texi.in (Misc): Move descriptions of NO_DOLLAR_IN_LABEL
3641         and NO_DOT_IN_LABEL from here...
3642         (Label Output): ...to here.
3643         * doc/tm.texi: Regenerate.
3644
3645 2012-08-26  Gerald Pfeifer  <gerald@pfeifer.com>
3646
3647         * doc/invoke.texi (C++ Dialect Options): Add missing space.
3648
3649 2012-08-25  Eric Botcazou  <ebotcazou@adacore.com>
3650
3651         PR rtl-optimization/54088
3652         * jump.c (delete_related_insns): Robustify latest change.
3653
3654 2012-08-25  Ricardo Catalinas Jiménez  <jimenezrick@gmail.com>
3655
3656         * doc/extend.texi (__atomic Builtins): Remove space before comma.
3657
3658 2012-08-25  Richard Sandiford  <rdsandiford@googlemail.com>
3659             Andrew Pinski  <apinski@cavium.com>
3660
3661         * config/mips/mips.h (CASE_VECTOR_MODE): For not
3662         TARGET_MIPS16_SHORT_JUMP_TABLES use ptr_mode.
3663         (CASE_VECTOR_SHORTEN_MODE): Likewise.
3664
3665 2012-08-25  Uros Bizjak  <ubizjak@gmail.com>
3666
3667         * config/i386/i386.h (FP_REG_P): Remove macro.
3668         (FP_REGNO_P): Ditto.
3669         (HARD_REGNO_NREGS): Use STACK_REGNO_P instead of FP_REGNO_P.
3670         (HARD_REGNO_NREGS_HAS_PADDING): Ditto.
3671         (ANY_FP_REGNO_P): Ditto.
3672         (HARD_REGNO_RENAME_OK): Use STACK_REGNO_P.
3673         * config/i386/i386.c (output_387_ffreep): Use STACK_REGNO_P
3674         instead of FP_REGNO_P.
3675         (ix86_hard_regno_mode_ok): Ditto.
3676         * config/i386/predicates.md (fp_register_operand): Ditto.
3677         (register_and_not_fp_reg_operand): Ditto.
3678         * config/i386/sync.md (atomic_loaddi_fpu): Use STACK_REG_P instead
3679         of FP_REG_P.
3680
3681         * reg-stack.c (get_true_reg): Use STACK_REG_P instead of FP_REG_P.
3682
3683 2012-08-24  Jason Merrill  <jason@redhat.com>
3684
3685         * print-tree.c (print_node): Don't check TREE_LANG_FLAG_*
3686         on TREE_VEC or SSA_NAME.
3687
3688 2012-08-24  Jakub Jelinek  <jakub@redhat.com>
3689
3690         PR c/54363
3691         * gimplify.c (optimize_compound_literals_in_ctor): Only recurse
3692         if init is a CONSTRUCTOR.
3693
3694 2012-08-24  Steven Bosscher  <steven@gcc.gnu.org>
3695
3696         * tree-ssa-live.c (dump_var_map): Do not dump the partition
3697         map of virtual operands.
3698
3699 2012-08-24  Yuri Rumyantsev  <ysrumyan@gmail.com>
3700
3701         * config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add
3702         case for Atom processor.
3703
3704 2012-08-24  Simon Baldwin  <simonb@google.com>
3705
3706         * dwarf2out.c (gen_producer_string): Omit command line switch if
3707         CL_NO_DWARF_RECORD flag set.
3708         * opts.h (CL_NO_DWARF_RECORD): New.
3709         * opt-functions.awk (switch_flags): Add NoDWARFRecord.
3710         * doc/options.texi: Document NoDWARFRecord option flag.
3711
3712 2012-08-24  H.J. Lu  <hongjiu.lu@intel.com>
3713
3714         PR debug/52857
3715         * dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and
3716         frame_pointer_rtx for based_loc_descr.
3717
3718 2012-08-24  Martin Jambor  <mjambor@suse.cz>
3719
3720         * predict.c (maybe_hot_frequency_p): New parameter fun.  Use its decl
3721         instead of current_function_decl, use profile_status_for_function and
3722         ENTRY_BLOCK_PTR_FOR_FUNCTION with fun instead of their cfun variants.
3723         (maybe_hot_count_p): New parameter fun, use
3724         profile_status_for_function instead of its cfun_variant.
3725         (maybe_hot_bb_p): New parameter fun, checking-assert it, pass it to
3726         all callees.
3727         (maybe_hot_edge_p): Pass cfun to maybe_hot_count_p and
3728         maybe_hot_frequency_p.
3729         (probably_never_executed_bb_p): New parameter fun, use its decl
3730         instead of current_function_decl.
3731         (optimize_bb_for_size_p): Pass cfun to maybe_hot_bb_p.
3732         (rtl_profile_for_bb): Likewise.
3733         (compute_function_frequency): Pass cfun to maybe_hot_bb_p and
3734         probably_never_executed_bb_p.
3735         * tree-ssa-operands.c (ssa_operands_active): New operator fun.  Use it
3736         instead of cfun.
3737         (update_stmt_operands): Pass cfun as an argument of
3738         ssa_operands_active.
3739         (swap_tree_operands): Likewise.
3740         * gimple-iterator.c (update_modified_stmt): Likewise.
3741         (update_modified_stmts): Likewise.
3742         * tree-flow-inline.h (delink_stmt_imm_use): Likewise.
3743         * tree-ssa.c (delete_tree_ssa): Likewise.
3744         * bb-reorder.c (bb_to_key): Pass cfun to probably_never_executed_bb_p.
3745         (push_to_next_round_p): Likewise.
3746         (find_rarely_executed_basic_blocks_and_crossing_edges ): Likewise.
3747         * cfg.c: Inlude tree.h.
3748         (check_bb_profile): Use profile_status_for_function,
3749         EXIT_BLOCK_PTR_FOR_FUNCTION and ENTRY_BLOCK_PTR_FOR_FUNCTION with
3750         DECL_STRUCT_FUNCTION (current_function_decl) instead of their cfun
3751         variants.
3752         (dump_bb_info): Pass DECL_STRUCT_FUNCTION (current_function_decl) to
3753         maybe_hot_bb_p and probably_never_executed_bb_p.
3754         * gimple-pretty-print.c (gimple_dump_bb_buff): Checking-assert that
3755         DECL_STRUCT_FUNCTION (current_function_decl) is not NULL.  Pass it to
3756         dump_histograms_for_stmt.
3757         (dump_gimple_mem_ops): Pass
3758         DECL_STRUCT_FUNCTION (current_function_decl)
3759         as an argument to dump_gimple_mem_ops.
3760         * tree-cfg.c (dump_function_to_file): Rename parameter fn to fndecl.
3761         Do not change cfun.  Change and restore current_function_decl.
3762         * Makefile.in (cfg.o): Include TREE_H in dependencies.
3763
3764 2012-08-24  Georg-Johann Lay  <avr@gjlay.de>
3765
3766         PR target/54222
3767         * avr-modes.def (HA, SA, DA, TA, UTA): Adjust modes.
3768         * avr/avr-fixed.md: New file.
3769         * avr/avr.md: Include it.
3770         (cc): Add: minus.
3771         (adjust_len): Add: minus, minus64, ufract, sfract.
3772         (ALL1, ALL2, ALL4, ORDERED234): New mode iterators.
3773         (MOVMODE): Add: QQ, UQQ, HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
3774         (MPUSH): Add: HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
3775         (pushqi1, xload8_A, xload_8, movqi_insn, *reload_inqi, addqi3,
3776         subqi3, ashlqi3, *ashlqi3, ashrqi3, lshrqi3, *lshrqi3, *cmpqi,
3777         cbranchqi4, *cpse.eq): Generalize to handle all 8-bit modes in ALL1.
3778         (*movhi, reload_inhi, addhi3, *addhi3, addhi3_clobber, subhi3,
3779         ashlhi3, *ashlhi3_const, ashrhi3, *ashirhi3_const, lshrhi3,
3780         *lshrhi3_const, *cmphi, cbranchhi4): Generalize to handle all
3781         16-bit modes in ALL2.
3782         (subhi3, casesi, strlenhi): Add clobber when expanding minus:HI.
3783         (*movsi, *reload_insi, addsi3, subsi3, ashlsi3, *ashlsi3_const,
3784         ashrsi3, *ashrhi3_const, *ashrsi3_const, lshrsi3, *lshrsi3_const,
3785         *reversed_tstsi, *cmpsi, cbranchsi4): Generalize to handle all
3786         32-bit modes in ALL4.
3787         * avr-dimode.md (ALL8): New mode iterator.
3788         (adddi3, adddi3_insn, adddi3_const_insn, subdi3, subdi3_insn,
3789         subdi3_const_insn, cbranchdi4, compare_di2,
3790         compare_const_di2, ashrdi3, lshrdi3, rotldi3, ashldi3_insn,
3791         ashrdi3_insn, lshrdi3_insn, rotldi3_insn): Generalize to handle
3792         all 64-bit modes in ALL8.
3793         * config/avr/avr-protos.h (avr_to_int_mode): New prototype.
3794         (avr_out_fract, avr_out_minus, avr_out_minus64): New prototypes.
3795         * config/avr/avr.c (TARGET_FIXED_POINT_SUPPORTED_P): Define to...
3796         (avr_fixed_point_supported_p): ...this new static function.
3797         (TARGET_BUILD_BUILTIN_VA_LIST): Define to...
3798         (avr_build_builtin_va_list): ...this new static function.
3799         (avr_adjust_type_node): New static function.
3800         (avr_scalar_mode_supported_p): Allow if ALL_FIXED_POINT_MODE_P.
3801         (avr_builtin_setjmp_frame_value): Use gen_subhi3 and return new
3802         pseudo instead of gen_rtx_MINUS.
3803         (avr_print_operand, avr_operand_rtx_cost): Handle: CONST_FIXED.
3804         (notice_update_cc): Handle: CC_MINUS.
3805         (output_movqi): Generalize to handle respective fixed-point modes.
3806         (output_movhi, output_movsisf, avr_2word_insn_p): Ditto.
3807         (avr_out_compare, avr_out_plus_1): Also handle fixed-point modes.
3808         (avr_assemble_integer): Ditto.
3809         (output_reload_in_const, output_reload_insisf): Ditto.
3810         (avr_compare_pattern): Skip all modes > 4 bytes.
3811         (avr_2word_insn_p): Skip movuqq_insn, movqq_insn.
3812         (avr_out_fract, avr_out_minus, avr_out_minus64): New functions.
3813         (avr_to_int_mode): New function.
3814         (adjust_insn_length): Handle: ADJUST_LEN_SFRACT,
3815         ADJUST_LEN_UFRACT, ADJUST_LEN_MINUS, ADJUST_LEN_MINUS64.
3816         * config/avr/predicates.md (const0_operand): Allow const_fixed.
3817         (const_operand, const_or_immediate_operand): New.
3818         (nonmemory_or_const_operand): New.
3819         * config/avr/constraints.md (Ynn, Y00, Y01, Y02, Ym1, Ym2, YIJ):
3820         New constraints.
3821         * config/avr/avr.h (LONG_LONG_ACCUM_TYPE_SIZE): Define.
3822
3823 2012-08-23  Kenneth Zadeck <zadeck@naturalbridge.com>
3824
3825         * alias.c (rtx_equal_for_memref_p): Convert constant cases.
3826         * combine.c (find_single_use_1, mark_used_regs_combine): Convert
3827         to CASE_CONST_ANY.
3828         * cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1,
3829         count_reg_usage): Convert constant cases.
3830         * cselib.c (cselib_expand_value_rtx_1): Convert to CASE_CONST_ANY.
3831         (cselib_subst_to_values): Convert constant cases.
3832         * df-scan.c (df_uses_record): Ditto.
3833         * dse.c (const_or_frame_p): Convert case statements to explicit
3834         if-then-else using mode classes.
3835         * emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases.
3836         * explow.c (convert_memory_address_addr_space): Ditto.
3837         * gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto.
3838         * genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto.
3839         * ira.c (equiv_init_varies_p, contains_replace_regs,
3840         memref_referenced_p, rtx_moveable_p): Ditto.
3841         * jump.c (mark_jump_label_1): Remove constant cases.
3842         (rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE.
3843         * loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1,
3844         invariant_expr_equal_p): Convert to CASE_CONST_ANY.
3845         * postreload-gcse.c (oprs_unchanged_p): Convert constant cases.
3846         * reginfo.c (reg_scan_mark_refs): Ditto.
3847         * regrename.c (scan_rtx): Ditto.
3848         * reload1.c (eliminate_regs_1, elimination_effects,
3849         scan_paradoxical_subregs): Ditto.
3850         * reload.c (operands_match_p, subst_reg_equivs):  Ditto.
3851         * resource.c (mark_referenced_resources, mark_set_resources): Ditto.
3852         * rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences)
3853         (reg_mentioned_p, modified_between_p, modified_in_p)
3854         (volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1,
3855         inequality_comparisons_p, computed_jump_p_1): Ditto.
3856         * rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto.
3857         * sched-deps.c (sched_analyze_2): Ditto.
3858         * valtrack.c (cleanup_auto_inc_dec): Ditto.
3859         * rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE,
3860         CASE_CONST_ANY): New macros.
3861
3862 2012-08-23  Julian Brown  <julian@codesourcery.com>
3863             Sandra Loosemore  <sandra@codesourcery.com>
3864
3865         * config/mips/mips.md
3866         (UNSPEC_CASESI_DISPATCH): New.
3867         (MIPS16_T_REGNUM): New constant.
3868         (tablejump): Don't use for MIPS16_SHORT_JUMP_TABLES.
3869         (casesi): New.
3870         (casesi_internal_mips16_<mode>): New.
3871         * config/mips/mips.c (mips16_split_long_branches): Adjust test
3872         to ignore casesi jump tables.
3873         * config/mips/mips.h (TARGET_MIPS16_SHORT_JUMP_TABLES): Update
3874         comment.
3875         (CASE_VECTOR_MODE): Use SImode unconditionally.
3876         (CASE_VECTOR_SHORTEN_MODE): Define.
3877         (ASM_OUTPUT_ADDR_DIFF_ELT): Output word-sized addr_diff_elts
3878         when necessary for MIPS16_SHORT_JUMP_TABLES.
3879
3880 2012-08-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3881
3882         * config/rs6000/rs6000.c (rs6000_density_test): Free loop body.
3883
3884 2012-08-23  H.J. Lu  <hongjiu.lu@intel.com>
3885
3886         PR driver/54335
3887         * doc/invoke.texi: Add -da and remove -dm.
3888
3889 2012-08-23  Richard Guenther  <rguenther@suse.de>
3890
3891         * tree-vect-stmts.c (vect_finish_stmt_generation): Update
3892         virtual SSA form.
3893
3894 2012-08-23  Jakub Jelinek  <jakub@redhat.com>
3895
3896         * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION.
3897
3898 2012-08-23  Mingjie Xing  <mingjie.xing@gmail.com>
3899
3900         * doc/gty.texi: Fix typo.
3901
3902 2012-08-23  Richard Guenther  <rguenther@suse.de>
3903
3904         * tree-ssa-loop-manip.c (add_exit_phis_var): Allow virtual operands.
3905         (find_uses_to_rename_use): Likewise.
3906         (find_uses_to_rename_bb): Likewise.
3907         (find_uses_to_rename_stmt): Walk over all operands.
3908
3909 2012-08-22  Oleg Endo  <olegendo@gcc.gnu.org>
3910
3911         PR target/54089
3912         * config/sh/predicates (p27_rshift_count_operand,
3913         not_p27_rshift_count_operand): New predicates.
3914         * config/sh/sh.c (sh_ashlsi_clobbers_t_reg_p,
3915         sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p): Handle special
3916         case when shift amount is 31.
3917         (gen_ashift): Emit gen_shlr instead of gen_lshrsi3_m.
3918         * config/sh/sh.md (ashlsi3_d): Set type to 'dyn_shift' instead
3919         of 'arith'.
3920         (ashlsi_c): Rename to shll.  Adapt calls to gen_ashlsi_c throughout
3921         the file.
3922         (lshrsi3): Remove clobber from expander.  Use shift_count_operand
3923         instead of nonmemory_operand predicate for second operand.  Add
3924         handling of case lshrsi3_n_clobbers_t.
3925         (lshrsi3_k): Use p27_rshift_count_operand for second operand.
3926         (lshrsi3_d): Make insn_and_split.  Split dynamic shift to constant
3927         shift sequences if beneficial.
3928         (lshrsi3_n): Make insn_and_split.  Split constant shift sequence to
3929         dynamic shift if beneficial.
3930         (lshrsi3_n_clobbers_t): New insn_and_split.
3931         (lshrsi3_m): Delete.
3932
3933 2012-08-22  Steven Bosscher  <steven@gcc.gnu.org>
3934
3935         * tracer.c (mark_bb_seen): Use SBITMAP_SIZE.
3936
3937         * alias.c (MAX_ALIAS_LOOP_PASSES): Update comment with rationale,
3938         or rather a lack thereof.
3939         (init_alias_analysis): Propagate the latest information across
3940         the CFG in topological order to propagate as far as possible in
3941         each iteration.  Ignore debug insns.
3942
3943 2012-08-22  H.J. Lu  <hongjiu.lu@intel.com>
3944
3945         * doc/invoke.texi: Document -mlong-double-64/-mlong-double-80.
3946
3947         * config/i386/i386.c (flag_opts): Add -mlong-double-64.
3948         (TARGET_HAS_BIONIC): Default long double to 64-bit for Bionic.
3949
3950         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 64 if
3951         TARGET_LONG_DOUBLE_64 is true.
3952         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New macro.
3953         (WIDEST_HARDWARE_FP_SIZE): Defined to 80.
3954
3955         * config/i386/i386.opt (mlong-double-80): New option.
3956         (mlong-double-64): Likewise.
3957
3958         * config/i386/i386-c.c (ix86_target_macros): Define
3959         __LONG_DOUBLE_64__ for TARGET_LONG_DOUBLE_64.
3960
3961 2012-08-22  H.J. Lu  <hongjiu.lu@intel.com>
3962
3963         PR target/54347
3964         * config/i386/i386.c (ix86_split_to_parts): Replace
3965         REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target.
3966
3967 2012-08-22  Richard Guenther  <rguenther@suse.de>
3968
3969         * tree-vectorizer.c (vectorize_loops): Do not call
3970         mark_virtual_operands_for_renaming.
3971         * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
3972         Do not update SSA form here.
3973
3974 2012-08-22  Dodji Seketeli  <dodji@redhat.com>
3975
3976         * tree.h (TREE_NOTHROW): Use the base.nothrow_flag.
3977
3978 2012-08-22  Richard Guenther  <rguenther@suse.de>
3979
3980         PR tree-optimization/46590
3981         * tree-ssa-alias.h (get_continuation_for_phi): Add alias query
3982         counter output argument.
3983         (walk_non_aliased_vuses): Add alias query counter argument
3984         to the walker callback.
3985         * tree-ssa-alias.c (maybe_skip_until): Add alias query counter
3986         output argument and count alias queries.
3987         (get_continuation_for_phi_1): Likewise.
3988         (get_continuation_for_phi): Likewise.
3989         (walk_non_aliased_vuses): Add alias query counter argument
3990         to the walker callback and allow it to abort the walk by
3991         returning -1.
3992         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
3993         * tree-ssa-sccvn.c (vn_reference_lookup_2): Add alias query
3994         counter parmeter, abort walk if that is bigger than
3995         --param sccvn-max-alias-queries-per-access.
3996         * params.def (sccvn-max-alias-queries-per-access): New param.
3997         * doc/invoke.texi (sccvn-max-alias-queries-per-access): Document.
3998
3999 2012-08-22  Richard Guenther  <rguenther@suse.de>
4000
4001         * tree-ssa-loop-ch.c (copy_loop_headers): Remove redundant checking.
4002         * tree-into-ssa.c (initialize_flags_in_bb): Use gcc_checking_assert
4003         instead of gcc_assert.
4004         (mark_block_for_update): Likewise.
4005         (add_new_name_mapping): Likewise.
4006         (mark_def_sites): Likewise.
4007         (insert_phi_nodes_for): Likewise.
4008         (rewrite_debug_stmt_uses): Likewise.
4009         (rewrite_stmt): Likewise.
4010         (maybe_register_def): Likewise.
4011         (rewrite_update_phi_arguments): Likewise.
4012         (rewrite_update_enter_block): Likewise.
4013         (mark_def_interesting): Likewise.
4014         (prepare_def_site_for): Likewise.
4015         (insert_updated_phi_nodes_for): Likewise.
4016
4017 2012-08-22  Jakub Jelinek  <jakub@redhat.com>
4018
4019         * tree-vect-loop.c (vect_transform_loop): Initialize
4020         check_profitability to false.
4021
4022         * tree-predcom.c (try_combine_chains): Free the worklist vector
4023         at the end.
4024
4025 2012-08-22  Marc Glisse  <marc.glisse@inria.fr>
4026
4027         PR tree-optimization/54317
4028         * tree-vrp.c (extract_range_from_binary_expr_1): Test for
4029         double_int overflow.
4030         Remove dead tests.
4031
4032 2012-08-22  Jakub Jelinek  <jakub@redhat.com>
4033
4034         * tree-vrp.c (find_assert_locations): Skip also edges
4035         from the entry block.
4036
4037         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call
4038         free_stmt_vec_info on orig_cond after gsi_removing it.
4039         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always
4040         free body_cost_vec vector.
4041         (vect_analyze_data_refs): If gather is unsuccessful,
4042         free_data_ref (dr).
4043         * tree-inline.c (tree_function_versioning): Free
4044         old_transforms_to_apply vector.
4045
4046 2012-08-22  Steven Bosscher  <steven@gcc.gnu.org>
4047
4048         * tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents
4049         of this a VEC and add a bitmap obstack.
4050         (ssa_conflicts_new): Allocate the obstack and grow the VEC cleared
4051         to the right size.
4052         (ssa_conflicts_delete): Free the VEC and release the obstack.
4053         (ssa_conflicts_test_p, ssa_conflicts_test_p, ssa_conflicts_add_one,
4054         ssa_conflicts_merge, ssa_conflicts_dump): Update for above changes.
4055         (truct live_track_d): Add another bitmap obstack here.
4056         (new_live_track): Initialize it and use it for all bitmaps.
4057         (delete_live_track): Don't free the bitmaps one at a time, just
4058         release the obstack.
4059         (create_outofssa_var_map): Fix to conform to GCC code style rules.
4060
4061 2012-08-21  Nathan Froyd  <froydnj@gcc.gnu.org>
4062
4063         * config/m32c/constraints.md: New file.
4064         * config/m32c/t-m32c (MD_FILES): Add constraints.
4065         * config/m32c/m32c-protos.h (m32c_const_ok_for_constraint_p): Delete.
4066         (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
4067         (m32c_reg_class_from_constraint): Delete.
4068         (m32c_extra_constraint_p, m32c_extra_constraint_p2): Delete.
4069         (m32c_matches_constraint_p): Declare.
4070         * config/m32c/m32c.h (CONSTRAINT_LEN): Delete.
4071         (REG_CLASS_FROM_CONSTRAINT): Delete.
4072         (CONST_OK_FOR_CONSTRAINT_P): Delete.
4073         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Delete.
4074         (EXTRA_CONSTRAINT_STR): Delete.
4075         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Delete.
4076         * config/m32c/m32c.c: Include tm-constrs.h
4077         (m32c_reg_class_from_constraint): Delete.
4078         (m32c_const_ok_for_constraint_p): Delete.
4079         (m32c_extra_constraint_p2): Rename to...
4080         (m32c_matches_constraint_p): ...this.  Make it return bool.  Tweak
4081         formatting.
4082         (m32c_extra_constraint_p): Delete.
4083         (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
4084         (m32c_split_move): Use satisfies_constraint_Ss.
4085         * config/m32c/predicates.md (memsym_operand): Use
4086         satisfies_constraint_Si.
4087         (memimmed_operand): Use satisfies_constraint_Sp.
4088         (m32c_psi_scale, m32c_1bit8_operand): Use satisfies_constraint_Ilb.
4089         (m32c_1bit16_operand): Use satisfies_constraint_Ilw.
4090         (m32c_1mask8_operand): Use satisfies_constraint_ImB.
4091         (m32c_1mask16_operand): Use satisfies_constraint_Imw.
4092
4093 2012-08-21  Nathan Froyd  <froydnj@gcc.gnu.org>
4094
4095         * config/mep/mep.h (REG_CLASS_FROM_CONSTRAINT): Delete.
4096         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4097         (CONSTRAINT_LEN, EXTRA_CONSTRAINT): Delete.
4098         * config/mep/mep.c (mep_reg_class_from_constraint): Delete.
4099         (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
4100         * config/mep/mep-protos.h (mep_reg_class_from_constraint): Delete.
4101         (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
4102
4103 2012-08-21  Oleg Endo  <olegendo@gcc.gnu.org>
4104
4105         * config/sh/sh.md (cmpeqdi_t, cmpgtdi_t, cmpgedi_t, cmpgeudi_t,
4106         cmpgtudi_t, *movsicc_t_false, *movsicc_t_true, divsi_inv20, negsi_cond,
4107         truncdihi2, ic_invalidate_line_i, ic_invalidate_line_sh4a,
4108         ic_invalidate_line_media, movdf_i4, calli_pcrel, call_valuei,
4109         call_valuei_pcrel, sibcalli_pcrel, sibcall_compact,
4110         sibcall_valuei_pcrel, sibcall_value_compact, casesi_worker_1,
4111         casesi_worker_2, bandreg_m2a, borreg_m2a, bxorreg_m2a, sp_switch_1,
4112         sp_switch_2, stack_protect_set_si, stack_protect_set_si_media,
4113         stack_protect_set_di_media, stack_protect_test_si,
4114         stack_protect_test_si_media, stack_protect_test_di_media): Convert to
4115         multi-line asm output strings.
4116         (divsi_inv_qitable, divsi_inv_hitable): Use single-alternative asm
4117         output.
4118         (*andsi3_bclr, rotldi3_mextr, rotrdi3_mextr, calli,
4119         call_valuei_tbr_rel, movml_push_banked, movml_pop_banked, bclr_m2a,
4120         bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a, bldsign_m2a,
4121         bld_reg, *bld_regqi, band_m2a, bor_m2a, bxor_m2a, mextr_rl, *mextr_lr):
4122         Use tab char instead of '\\t'.
4123         (iordi3): Use braced string.
4124         (*movsi_pop): Use tab chars instead of spaces.
4125
4126 2012-08-21  Oleg Endo  <olegendo@gcc.gnu.org>
4127
4128         PR target/39423
4129         * config/sh/sh.md (*movhi_index_disp): Add support for SH2A
4130         movu.w insn.
4131
4132 2012-08-21  H.J. Lu  <hongjiu.lu@intel.com>
4133
4134         PR middle-end/54332
4135         * df-scan.c (df_bb_verify): Restore df_free_collection_rec call
4136         inside the insn traversal loop.
4137
4138         * vec.h (vec_reserve): Remove the stack allocation check.
4139
4140 2012-08-21  Marc Glisse  <marc.glisse@inria.fr>
4141
4142         * fold-const.c (fold_ternary_loc): Detect identity permutations.
4143         Canonicalize permutations more.
4144         * tree-ssa-forwprop.c (is_combined_permutation_identity): New function.
4145         (simplify_permutation): Likewise.
4146         (ssa_forward_propagate_and_combine): Call it.
4147
4148 2012-08-21  Richard Guenther  <rguenther@suse.de>
4149
4150         * tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
4151         the affine expansion cache.
4152         * tree-ssa-dom.c (free_expr_hash_elt_contents): New function,
4153         split out from ...
4154         (free_expr_hash_elt): ... this one.
4155         (record_cond): Properly free a not needed hashtable element.
4156         (lookup_avail_expr): Likewise.
4157         * tree-into-ssa.c (init_ssa_renamer): Specify a free function
4158         for the var_infos hashtable.
4159         (update_ssa): Likewise.
4160
4161 2012-08-21  Richard Guenther  <rguenther@suse.de>
4162
4163         * alloc-pool.c (pool_alloc): Fix valgrind annotation.
4164         * tree.h: Fix typo and complete flags documentation.
4165
4166 2012-08-21  Richard Guenther  <rguenther@suse.de>
4167
4168         * tree.h (struct tree_base): Add union to make it possible to
4169         re-use the upper 4 bytes for tree codes that do not need as
4170         many flags as others.  Move visited and default_def_flag to
4171         common bits section in exchange for saturating_flag and
4172         unsigned_flag.  Add SSA name version and tree vec length
4173         fields here.
4174         (struct tree_vec): Remove length field here.
4175         (struct tree_ssa_name): Remove version field here.
4176
4177 2012-08-20  Jan Hubicka  <jh@suse.cz>
4178
4179         PR fortran/48636
4180         * ipa-inline.c (want_inline_small_function_p): Take loop_iterations
4181         hint.
4182         (edge_badness): Likewise.
4183         * ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations.
4184         (inline_summary): Add loop_iterations.
4185         * ipa-inline-analysis.c: Include tree-scalar-evolution.h.
4186         (dump_inline_hints): Dump loop_iterations.
4187         (reset_inline_summary): Free loop_iterations.
4188         (inline_node_duplication_hook): Update loop_iterations.
4189         (dump_inline_summary): Dump loop_iterations.
4190         (will_be_nonconstant_expr_predicate): New function.
4191         (estimate_function_body_sizes): Analyze loops.
4192         (estimate_node_size_and_time): Set hint loop_iterations.
4193         (inline_merge_summary): Merge loop iterations.
4194         (inline_read_section): Stream in loop_iterations.
4195         (inline_write_summary): Stream out loop_iterations.
4196
4197 2012-08-20  Oleg Endo  <olegendo@gcc.gnu.org>
4198
4199         PR target/54089
4200         * config/sh/sh.md (rotcr, *rotcr, shar, shlr): New insns and splits.
4201         (ashrdi3_k, lshrdi3_k): Rewrite as insn_and_split.
4202         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p): New function.
4203         * config/sh/sh-protos.h (sh_lshrsi_clobbers_t_reg_p): Declare it.
4204
4205 2012-08-20  Oleg Endo  <olegendo@gcc.gnu.org>
4206
4207         PR target/51244
4208         * config/sh/sh.md (*cset_zero): New insns.
4209
4210 2012-08-20  Mark Wielaard  <mjw@redhat.com>
4211
4212         * dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc.
4213         * dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc.
4214         (add_AT_low_high_pc): New function.
4215         (AT_lbl): Handle dw_val_class_high_pc.
4216         (print_die): Likewise.
4217         (attr_checksum): Likewise.
4218         (attr_checksum_ordered): Likewise.
4219         (same_dw_val_p): Likewise.
4220         (size_of_die): Likewise.
4221         (value_format): Likewise.
4222         (output_die): Likewise.
4223         (gen_subprogram_die): Use add_AT_low_high_pc.
4224         (add_high_low_attributes): Likewise.
4225         (dwarf2out_finish): Likewise.
4226
4227 2012-08-20  Jakub Jelinek  <jakub@redhat.com>
4228
4229         PR rtl-optimization/54294
4230         * fwprop.c (all_uses_available_at): Ignore debug insns in between
4231         def_insn and target_insn when checking whether the shortcut is
4232         possible.
4233
4234 2012-08-20  Eric Botcazou  <ebotcazou@adacore.com>
4235
4236         * config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define.
4237
4238 2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>
4239
4240         PR middle-end/53992
4241         * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.
4242
4243 2012-08-20  Richard Earnshaw  <rearnsha@arm.com>
4244
4245         PR tree-ssa/54295
4246         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Delete rhs_code
4247         declaration and setter.
4248
4249 2012-08-20  Richard Earnshaw  <rearnsha@arm.com>
4250
4251         PR tree-ssa/54295
4252         * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
4253         New function.
4254         (is_widening_mult_rhs_p): Use it.
4255
4256 2012-08-20  Joseph Myers  <joseph@codesourcery.com>
4257
4258         * configure.ac (ffs): Check for declaration.
4259         * configure, config.in: Regenerate.
4260
4261 2012-08-20  Richard Guenther  <rguenther@suse.de>
4262
4263         * tree-flow.h (register_new_name_mapping): Remove.
4264         * tree-into-ssa.c (register_new_name_mapping): Likewise.
4265         (add_new_name_mapping): Do not push/pop timevar here.
4266         (create_new_def_for): Instead do it here.  Initialize
4267         update-ssa here, handle a NULL def.
4268         * tree-vrp.c (build_assert_expr_for): Use create_new_def_for.
4269
4270 2012-08-20  Richard Guenther  <rguenther@suse.de>
4271
4272         PR tree-optimization/54327
4273         * gimple-fold.c (get_maxval_strlen): Do not walk use-def chains
4274         if the use is registered for SSA update.
4275
4276 2012-08-20  Jakub Jelinek  <jakub@redhat.com>
4277
4278         PR tree-optimization/54321
4279         * tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1
4280         as second argument to tree_low_cst call on val2.
4281
4282 2012-08-20  Richard Guenther  <rguenther@suse.de>
4283
4284         * gimple.h (gimple_statement_base): Annotate with GTY chain_next.
4285
4286 2012-08-20  Richard Guenther  <rguenther@suse.de>
4287
4288         PR bootstrap/54326
4289         * genoutput.c (note_constraint): Properly use CONST_CAST.
4290
4291 2012-08-19  Nick Clifton  <nickc@redhat.com>
4292
4293         PR target/54306
4294         * config/arm/mmintrin.h: Remove spurious #endif.
4295
4296 2012-08-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4297
4298         * config/avr/avr-log.c (avr_log_vadump): Properly use
4299         int-promoted enum values.
4300         * config/avr/avr.h (struct mcu_type_s): Change `arch' from
4301         int to enum avr_arch.
4302         * config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer.
4303
4304 2012-08-18  Jan Hubicka  <jh@suse.cz>
4305
4306         PR lto/45375
4307         * ipa-inline.c (want_inline_small_function_p): Bypass
4308         inline limits for hinted functions.
4309         (edge_badness): Dump hints; decrease badness for hinted funcitons.
4310         * ipa-inline.h (enum inline_hints_vals): New enum.
4311         (inline_hints): New type.
4312         (edge_growth_cache_entry): Add hints.
4313         (dump_inline_summary): Update.
4314         (dump_inline_hints): Declare.
4315         (do_estimate_edge_hints): Declare.
4316         (estimate_edge_hints): New inline function.
4317         (reset_edge_growth_cache): Update.
4318         * predict.c (cgraph_maybe_hot_edge_p): Do not ice on indirect edges.
4319         * ipa-inline-analysis.c (dump_inline_hints): New function.
4320         (estimate_edge_devirt_benefit): Return true when function should be
4321         hinted.
4322         (estimate_calls_size_and_time): New hints argument; set it when
4323         devritualization happens.
4324         (estimate_node_size_and_time): New hints argument.
4325         (do_estimate_edge_time): Cache hints.
4326         (do_estimate_edge_growth): Update.
4327         (do_estimate_edge_hints): New function
4328
4329 2012-08-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4330
4331         PR middle-end/53823
4332         * expmed.c (expand_mult): Skip synth_mult for negative coefficients
4333         if the mode is larger than a wide int and it is too costly to multiply
4334         by a positive multiplier and negate the result.
4335
4336 2012-08-18  Steven Bosscher  <steven@gcc.gnu.org>
4337
4338         * sparseset.c (sparseset_alloc): Use non-clearing allocation.  Tell
4339         valgrind not to worry about reading from unitialized memory.
4340
4341 2012-08-18  Steven Bosscher  <steven@gcc.gnu.org>
4342
4343         PR middle-end/54313
4344         * dse.c (dse_step7): Don't free kill_on_calls bitmap, it is
4345         freed when its obstack is release.
4346
4347 2012-08-18  Andrew Pinski  <pinskia@gmail.com>
4348
4349         * alloc-pool.c (pool_alloc): Add valgrind markers.
4350         (pool_free): Likewise.
4351
4352 2012-08-17  Walter Lee  <walt@tilera.com>
4353
4354         * config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
4355         (FEEDBACK_ENTER): Define.
4356         (FEEDBACK_REENTER): Define.
4357         (FEEDBACK_ENTRY): Define.
4358         * config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
4359         (FEEDBACK_ENTER): Define.
4360         (FEEDBACK_REENTER): Define.
4361         (FEEDBACK_ENTRY): Define.
4362
4363 2012-08-17  H.J. Lu  <hongjiu.lu@intel.com>
4364             Gary Funck <gary@intrepid.com>
4365
4366         PR target/20020
4367         * config/i386/i386.c (ix86_member_type_forces_blk): New function.
4368         (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
4369
4370         * config/i386/i386.h (MAX_FIXED_MODE_SIZE): New macro.
4371
4372 2012-08-17  Marc Glisse  <marc.glisse@inria.fr>
4373
4374         * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
4375         a concatenation.
4376
4377 2012-08-17  H.J. Lu  <hongjiu.lu@intel.com>
4378
4379         * stor-layout.c (compute_record_mode): Replace
4380         MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk.
4381         (layout_type): Likewise.
4382
4383         * system.h: Poison MEMBER_TYPE_FORCES_BLK.
4384
4385         * target.def (member_type_forces_blk): New target hook.
4386
4387         * targhooks.c (default_member_type_forces_blk): New.
4388         * targhooks.h (default_member_type_forces_blk): Likewise.
4389
4390         * doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed.
4391         (TARGET_MEMBER_TYPE_FORCES_BLK): New hook.
4392         * doc/tm.texi: Regenerated.
4393
4394         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed.
4395
4396         * config/ia64/ia64.c (ia64_member_type_forces_blk): New function.
4397         (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
4398
4399         * config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
4400         (rs6000_member_type_forces_blk): New function.
4401
4402         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed.
4403
4404         * config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New function.
4405         (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
4406
4407         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed.
4408
4409 2012-08-17  Diego Novillo  <dnovillo@google.com>
4410
4411         PR bootstrap/54281
4412         * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
4413         * config.in: Regenerate.
4414         * configure: Regenerate.
4415         * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4416
4417 2012-08-17  Richard Guenther  <rguenther@suse.de>
4418
4419         * bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
4420         (struct bitmap_head_def): GTY skip current field.
4421
4422 2012-08-17  Steven Bosscher  <steven@gcc.gnu.org>
4423
4424         PR middle-end/54146
4425         * tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack.
4426         (memref_free): Don't free the bitmaps individually here.
4427         (mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack.
4428         (analyze_memory_references): Likewise.
4429         (tree_ssa_lim_initialize): Initialize the new bitmap obstack.
4430         (tree_ssa_lim_finalize): Release it.
4431         * dse.c (dse_bitmap_obstack): New bitmap obstack.
4432         (dse_obstack): New obstack.
4433         (get_group_info): Allocate the bitmaps on the new bitmap obstack.
4434         (dse_step0): Allocate the scratch bitmap on reg_obstack.  Initialize
4435         the new bitmap obstack and normal obstack.  Use XNEWVEC for bb_table.
4436         (record_store): Allocate regs_set on reg_obstack.
4437         (dse_step1): Allocate regs_live on reg_obstack.
4438         (dse_step2_init): Allocate offset_map_n and offset_map_p on the new
4439         obstack.
4440         (dse_step3_scan): Allocate bitmaps on the new bitmap obstack.
4441         (dse_step3): Likewise.
4442         (dse_confluence_0): Likewise.
4443         (dse_confluence_n): Likewise.
4444         (dse_transfer_function): Likewise.
4445         (dse_step7): Destroy the new obstacks, and everything allocated on
4446         them, in one big sweep.
4447         (rest_of_handle_dse): Update.
4448         * cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack.
4449         (add_stack_var_conflict): Allocate bitmaps on it.
4450         (add_scope_conflicts_1): Likewise.
4451         (add_scope_conflicts): Likewise.
4452         (update_alias_info_with_stack_vars): Likewise.
4453         (init_vars_expansion): Move TREE_USED fiddling expand_used_vars.
4454         Initialize the new bitmap obstack.
4455         (fini_vars_expansion): Release it.
4456         (estimated_stack_frame_size): Use init_vars_expansion to set things up
4457         and always clean up at the end.
4458         (expand_used_vars): Do the TREE_USED trickery here.  Always call
4459         fini_vars_expansion.
4460         * tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout
4461         arrays of bitmap_head to avoid one indirection per bitmap access.
4462         (live_on_entry, live_on_exit, live_var_map, live_merge_and_clear,
4463         make_live_on_entry): Update.
4464         * tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'.
4465         (liveness_bitmap_obstack): New bitmap obstack.
4466         (remove_unused_locals): Use it to allocate all bitmaps on.  Update
4467         for livein/liveout changes in tree-ssa-live.h.
4468         (delete_tree_live_info): Release the bitmap obstack.
4469         (loe_visit_block, live_worklist, set_var_live_on_entry,
4470         calculate_live_on_exit, dump_live_info): Update.
4471         (calculate_live_ranges): Initialize the bitmap.
4472         * tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack.
4473         (new_temp_expr_table): Allocate bitmap on it.
4474         (make_dependent_on_partition, add_to_partition_kill_list,
4475         add_dependence, process_replaceable): Likewise.
4476         (find_replaceable_exprs): Initialize and release the new obstack here.
4477         * df-problems.c (df_lr_add_problem): Allocate persistent bitmap
4478         for out_of_date_transfer_functions on df_bitmap_obstack.
4479         (df_live_add_problem): Likewise.
4480         (df_chain_add_problem): Likewise.
4481         (df_word_lr_add_problem): Likewise.
4482
4483 2012-08-17  Nick Clifton  <nickc@redhat.com>
4484
4485         * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
4486         (branch_true): Likewise.
4487         (branch_false): Likewise.
4488
4489         * config/mcore/mcore.md (cbranchsi4): Remove mode from comparison.
4490
4491         * config/iq2000/iq2000.md (cbranchsi4): Remove mode from
4492         comparison and label.
4493         (branch_zero): Likewise.
4494         (branch_zero_inverted): Likewise.
4495         (branch_equality): Likewise.
4496         (branch_equality_inverted): Likewise.
4497         (extend-and-compare): Disable until reload issues can be resolved.
4498         * config/iq2000/iq2000.c (gen_conditional_branch): Use VOIDmode
4499         for comparison.
4500         (iq2000_function_arg_advance): Remove CONST_CAST2.
4501
4502         * config/mep/t-mep (mep-pragma.o): Use $(COMPILER) to compile
4503         mep-pragma.c.
4504
4505 2012-08-17  Georg-Johann Lay  <avr@gjlay.de>
4506
4507         * config/avr/t-avr (gen-avr-mmcu-texi): Use $(CC) to compile
4508         gen-avr-mmcu-texi.c.
4509
4510 2012-08-17  Richard Earnshaw  <rearnsha@arm.com>
4511
4512         * arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
4513         * arm.c (thumb2_reorg): Don't convert an ADD instruction that's
4514         already 16 bits.
4515
4516 2012-08-17  Richard Guenther  <rguenther@suse.de>
4517
4518         * hash-table.h (class hash_table): Use a descriptor template
4519         argument instead of decomposed element type and support functions.
4520         (struct pointer_hash): New generic typed pointer-hash.
4521         (struct typed_free_remove, struct typed_noop_remove): Generic
4522         hash_table support pieces.
4523         * coverage.c (struct counts_entry): Add hash_table support members.
4524         * tree-ssa-ccp.c (gimple_htab): Use pointer_hash.
4525         * tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic
4526         SSA name by SSA_NAME_VAR hash.
4527         (coalesce_ssa_name): Use it.
4528         * tree-ssa-pre.c (struct pre_expr_d): Add hash_table support.
4529         (expression_to_id): Adjust.
4530         (struct expr_pred_trans_d): Add hash_table support.
4531         (phi_translate_table): Adjust.
4532         (phi_trans_lookup): Likewise.
4533         (phi_trans_add): Likewise.
4534         (do_regular_insertion): Likewise.
4535         * tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table support.
4536         (same_succ_htab): Adjust.
4537         (find_same_succ_bb): Likewise.
4538         (find_same_succ): Likewise.
4539         (update_worklist): Likewise.
4540         * tree-ssa-threadupdate.c (struct redirection_data): Add hash_table
4541         support.
4542         (redirection_data): Adjust.
4543
4544 2012-08-17  Richard Guenther  <rguenther@suse.de>
4545
4546         * params.def (integer-share-limit): Decrease from 256 to 251,
4547         add rationale.
4548
4549 2012-08-17  Richard Guenther  <rguenther@suse.de>
4550
4551         * tree-sra.c (modify_function): Free redirect_callers vector.
4552         * ipa-split.c (split_function): Free args_to_pass vector.
4553         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free
4554         body_cost_vec properly.
4555         (vect_enhance_data_refs_alignment): Likewise.
4556         * tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
4557         vec_oprnds.
4558         (new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
4559         * tree-vect-slp.c (vect_free_slp_instance): Free the instance.
4560         (vect_analyze_slp_instance): Free everything.
4561         (destroy_bb_vec_info): Free the SLP instances.
4562
4563 2012-08-17  Iain Sandoe  <iain@codesourcery.com>
4564
4565         * config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
4566         to vec.h.
4567
4568 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
4569
4570         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.
4571
4572 2012-08-16  Sandra Loosemore  <sandra@codesourcery.com>
4573
4574         * config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr)
4575         (mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph)
4576         (mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w)
4577         (mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr)
4578         (mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute.
4579
4580 2012-08-16  Oleg Endo  <olegendo@gcc.gnu.org>
4581
4582         PR target/54236
4583         * config/sh/sh.md (addc): Add commutative modifier.
4584         (*addc, *minus_plus_one, *subc, *negc): New insns and splits.
4585
4586 2012-08-16  Oleg Endo  <olegendo@gcc.gnu.org>
4587
4588         PR target/39423
4589         * config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle
4590         potential T_REG clobber.  Convert zero extending split to
4591         insn_and_split.
4592
4593 2012-08-16  Oleg Endo  <olegendo@gcc.gnu.org>
4594
4595         PR target/54089
4596         * config/sh/sh.md (ashlsi3_d): Do not split if it would result
4597         in a T_REG clobber.  Correct comment.
4598         (ashlsi3_n): Correct comment.
4599
4600 2012-08-16  Hans-Peter Nilsson  <hp@axis.com>
4601
4602         PR middle-end/54261
4603         * optabs.c (expand_atomic_fetch_op): Save and restore code when
4604         retrying after failed attempt.
4605
4606 2012-08-16  Yuri Rumyantsev  <ysrumyan@gmail.com>
4607
4608         * config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
4609         additional argument.
4610         * config/i386/i386.md (ix86_split_lea_for_addr) : Add
4611         additional argument curr_insn.
4612         * config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
4613         register first, depending on their defintion distances.
4614         (ix86_lea_outperforms): Prefer LEA only if split cost exceeds
4615         AGU stall.
4616         (find_nearest_reg-def): New function. Find register with
4617         nearest definition.
4618
4619 2012-08-16  Walter Lee  <walt@tilera.com>
4620
4621         * config.gcc (tilegx-*-linux*): Add feedback.h.
4622         (tilepro-*-linux*): Likewise.
4623         * config/tilegx/feedback.h: New file.
4624         * config/tilepro/feedback.h: New file.
4625
4626 2012-08-16  Diego Novillo  <dnovillo@google.com>
4627
4628         Revert
4629
4630         PR bootstrap/54281
4631         * double-int.h: Move including of gmp.h ...
4632         * system.h: ... here.
4633         * realmpfr.h: Do not include gmp.h.
4634         * tree-ssa-loop-niter.c: Do not include gmp.h.
4635
4636 2012-08-16  Segher Boessenkool  <segher@kernel.crashing.org>
4637
4638         * config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment.
4639
4640 2012-08-16  Richard Guenther  <rguenther@suse.de>
4641
4642         PR middle-end/54146
4643         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
4644         exit vector.
4645         * ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
4646         * cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
4647         * tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
4648         * tree-into-ssa.c (get_ssa_name_ann): Allocate info only when needed.
4649         * tree-ssa-loop-im.c (analyze_memory_references): Adjust.
4650         (tree_ssa_lim_finalize): Free all mem_refs.
4651         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
4652         scc when bailing out.
4653         * modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
4654         * ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
4655         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
4656         FOR_EACH_LOOP_BREAK.
4657
4658 2012-08-16  Diego Novillo  <dnovillo@google.com>
4659
4660         PR bootstrap/54281
4661         * double-int.h: Move including of gmp.h ...
4662         * system.h: ... here.
4663         * realmpfr.h: Do not include gmp.h.
4664         * tree-ssa-loop-niter.c: Do not include gmp.h.
4665
4666 2012-08-16  Steven Bosscher  <steven@gcc.gnu.org>
4667
4668         PR middle-end/54146
4669         * tree-flow.h (compute_global_livein): Remove prototype.
4670         * tree-into-ssa.c (compute_global_livein): Remove function.
4671         * tree-ssa-loop-manip.c: Include gimple-pretty-print.h.
4672         (find_sibling_superloop): New function.
4673         (compute_live_loop_exits): New function.
4674         (add_exit_phis_edge): Rename to add_exit_phi.  Do not allow
4675         inserting a PHI in a block that is not a loop exit for VAR.
4676         Add dumping if TDF_DETAILS.
4677         (add_exit_phis_var): Rewrite.
4678         (add_exit_phis): Update.
4679         (get_loops_exits): Rewrite to return an array of per-loop exits
4680         rather than one bitmap with all loop exits.
4681         (find_uses_to_rename_bb): Ignore virtual PHI nodes.
4682         (rewrite_into_loop_closed_ssa): Update.
4683
4684 2012-08-16  Nick Clifton  <nickc@redhat.com>
4685
4686         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
4687         before passing it to ASM_OUTPUT_LIMITED_STRING.
4688
4689         * config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.
4690
4691         * config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
4692         * config/avr/avr.c (avr_legitimize_reload_address): Add casts
4693         for reload_type enums.
4694         (DEF_BUILTIN): Cast the icode to enum insn_code.
4695
4696 2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
4697
4698         * config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default)
4699         instead of -mppc.
4700         * config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto.
4701
4702 2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
4703
4704         * config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4705         (RS6000_CALL_GLUE): Adjust for single assembler syntax.
4706         * config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
4707         * config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
4708         * config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
4709         * config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
4710         * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
4711         * config/rs6000/darwin.md (whole file): Adjust to single
4712         assembler syntax.
4713         * config/rs6000/darwin64.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4714         * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
4715         * config/rs6000/dfp.md: (whole file): Adjust to single
4716         assembler syntax.
4717         * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4718         * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
4719         * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
4720         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
4721         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
4722         * config/rs6000/rs6000-cpus.def (whole file): Delete POWERPC_BASE_MASK.
4723         * config/rs6000/rs6000-tables.opt: Regenerate.
4724         * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete.
4725         (num_insns_constant_wide): Adjust comments.
4726         (whole file): Adjust to single assembler syntax.
4727         (output_cbranch): Adjust comment.
4728         * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete.
4729         * config/rs6000/rs6000.md: (whole file): Adjust to single
4730         assembler syntax.
4731         * config/rs6000/rs6000.opt (mnew-mnemonics): Delete.
4732         (mold-mnemonics): Delete.
4733         * config/rs6000/spe.md: (whole file): Adjust to single
4734         assembler syntax.
4735         * config/rs6000/sync.md: (whole file): Adjust to single
4736         assembler syntax.
4737         * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4738         (ASM_OUTPUT_REG_PUSH): Adjust.
4739         (ASM_OUTPUT_REG_POP): Adjust.
4740         * config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4741         * config/rs6000/vsx.md: (whole file): Adjust to single
4742         assembler syntax.
4743         * config/rs6000/vxworks.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4744         * doc/invoke.texi: Adjust documentation to reflect the
4745         removal of -mnew-mnemonics and -mold-mnemonics.
4746
4747 2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
4748
4749         * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
4750         Delete handling for -mno-powerpc and -mpowerpc.
4751         * config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
4752         (ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
4753         * config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
4754         * config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
4755         * config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
4756         * config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
4757         * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
4758         * config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
4759         * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
4760         * config/rs6000/driver-rs6000.c (asm_names): Delete handling
4761         for -mcpu=common and -mpowerpc.
4762         * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
4763         * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
4764         * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
4765         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
4766         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
4767         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
4768         Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
4769         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
4770         (rs6000_cpu_cpp_builtins): Adjust.
4771         * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
4772         (rs6000_builtin_mask_calculate): Adjust.
4773         (rs6000_emit_move): Delete code for ! TARGET_POWERPC.
4774         (rs6000_init_libfuncs): Ditto.
4775         (rs6000_output_function_prologue): Ditto.
4776         (rs6000_opt_masks): Delete MASK_POWERPC.
4777         (rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
4778         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for -mpowerpc.
4779         (RS6000_BTM_POWERPC): Delete.
4780         (RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
4781         * config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
4782         TARGET_POWERPC always on.
4783         (extendqihi2 patterns): Similar.
4784         (various unnamed subtract patterns): Similar.
4785         (bswaphi2 patterns): Similar.
4786         (divmodsi4): Similar.
4787         (udiv<GPR:mode>3): Similar.
4788         (div<GPR:mode>3 patterns): Similar.
4789         (udivmodsi4): Similar.
4790         (mulhcall): Delete.
4791         (mullcall): Delete.
4792         (divss_call): Delete.
4793         (divus_call): Delete.
4794         (quoss_call): Delete.
4795         (quous_call): Delete.
4796         (insvsi patterns): Adjust.
4797         (addsf3 patterns): Adjust.
4798         (subsf3 patterns): Adjust.
4799         (mulsf3 patterns): Adjust.
4800         (divsf3 patterns): Adjust.
4801         (*fmasf4_fpr): Adjust.
4802         (*fmssf4_fpr): Adjust.
4803         (*nfmasf4_fpr): Adjust.
4804         (*nfmssf4_fpr): Adjust.
4805         (*floatunssidf2_internal): Adjust.
4806         (fix_trunc<SFDF:mode>si2_internal): Adjust.
4807         (fctiwz_<SFDF:mode>): Adjust.
4808         (mulsidi3 patterns): Adjust.
4809         (smulsi3_highpart patterns): Adjust.
4810         (umulsi3_highpart patterns): Adjust.
4811         (fix_trunctfsi2 patterns): Adjust.
4812         (prefetch): Adjust.
4813         * config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
4814         (mno-powerpc): Delete.
4815         * config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
4816         (store_conditional<ATOMIC:mode>): Adjust.
4817         (atomic_compare_and_swap<ATOMIC:mode>): Adjust.
4818         (atomic_exchange<ATOMIC:mode>): Adjust.
4819         (atomic_<fetchop_name><ATOMIC:mode>): Adjust.
4820         (atomic_nand<ATOMIC:mode>): Adjust.
4821         (atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
4822         (atomic_fetch_nand<ATOMIC:mode>): Adjust.
4823         (atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
4824         (atomic_nand_fetch<ATOMIC:mode>): Adjust.
4825         * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
4826         * config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
4827         * config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
4828         * doc/invoke.texi: Adjust documentation.
4829
4830 2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
4831
4832         * config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New.
4833
4834 2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
4835
4836         * config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo.
4837         * config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto.
4838         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
4839         * config/rs6000/driver-rs6000.c (asm_names): Ditto.
4840
4841 2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
4842
4843         PR target/54142
4844         * config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default)
4845         instead of -mcom.
4846         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto.
4847
4848 2012-08-15  Sandra Loosemore  <sandra@codesourcery.com>
4849             Maxim Kuvyrkov  <maxim@codesourcery.com>
4850             Julian Brown  <julian@codesourcery.com>
4851             MIPS Technologies, Inc.
4852
4853         * config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu)
4854         (dspalusat): Add insn types.
4855         * config/mips/mips-dsp.md (add<DSPV:mode>3)
4856         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>)
4857         (sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc)
4858         (mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>)
4859         (mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w)
4860         (mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr)
4861         (mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla)
4862         (mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr)
4863         (mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>)
4864         (mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb)
4865         (mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv)
4866         (mips_repl_qb, mips_repl_ph)
4867         (mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>)
4868         (mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>)
4869         (mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb)
4870         (mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>)
4871         (mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu.
4872         (mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr)
4873         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph)
4874         (mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to
4875         dspmac.
4876         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to
4877         dspmacsat.
4878         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp):
4879         Set type to accext.
4880         (mips_shilo, mips_mthlip): Set type to accmod.
4881         * config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph)
4882         (mips_adduh_r_qb): Set type to dspalusat.
4883         (mips_addu_ph, mips_adduh_qb, mips_append, mips_balign)
4884         (mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb)
4885         (mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w)
4886         (mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph)
4887         (mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph)
4888         (mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph)
4889         (mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu.
4890         (mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph)
4891         (mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to
4892         dspmac.  Set accum_in attribute.
4893         (mips_subu_s_ph): Set type to dspalusat.
4894         (mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat.
4895         Set accum_in attribute.
4896         * config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype.
4897         * config/mips/mips.c (dspalu_bypass_table): New.
4898         (mips_dspalu_bypass_p): New.
4899         * config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat)
4900         (r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations.
4901         (r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat)
4902         (r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses.
4903         * config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac)
4904         (r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn
4905         reservations.
4906         (r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3)
4907         (r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses.
4908
4909 2012-08-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4910
4911         * config/spu/spu.c: Include "cfgloop.h".
4912         (spu_machine_dependent_reorg): Call loop_optimizer_init and
4913         loop_optimizer_finalize.  Use bb_loop_depth instead of loop_depth.
4914         Directly compare loop_father values where appropriate.
4915         * config/spu/t-spu-elf (spu.o): Update dependencies.
4916
4917 2012-08-15  H.J. Lu  <hongjiu.lu@intel.com>
4918
4919         * Makefile.in (tree-cfg.o): Also depend on $(TARGET_H).
4920
4921 2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4922
4923         PR tree-optimization/54245
4924         * gimple-ssa-strength-reduction.c (legal_cast_p_1): New function.
4925         (legal_cast_p): Split out logic to legal_cast_p_1.
4926         (analyze_increments): Avoid introducing multiplies in smaller types.
4927
4928 2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4929
4930         PR tree-optimization/54240
4931         * tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for
4932         existence of conditional move with given mode.
4933
4934 2012-08-15  Richard Guenther  <rguenther@suse.de>
4935
4936         * double-int.h (double_int::from_unsigned): Rename to ...
4937         (double_int::from_uhwi): ... this.
4938         (double_int::from_signed): Rename to ...
4939         (double_int::from_shwi): ... this.
4940         (double_int::to_signed): Rename to ...
4941         (double_int::to_shwi): ... this.
4942         (double_int::to_unsigned): Rename to ...
4943         (double_int::to_uhwi): ... this.
4944         (double_int::fits_unsigned): Rename to ...
4945         (double_int::fits_uhwi): ... this.
4946         (double_int::fits_signed): Rename to ...
4947         (double_int::fits_shwi): ... this.
4948         (double_int::fits): Rename to ...
4949         (double_int::fits_hwi): ... this.
4950         * double-int.c: Likewise.
4951
4952 2012-08-15  Steven Bosscher  <steven@gcc.gnu.org>
4953
4954         * timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
4955         TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
4956         TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
4957         TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
4958         (TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
4959         TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
4960         * timevar.c (timevar_print): Make printing width of timevar names
4961         more flexible, but enforce maximum length.
4962         * ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
4963         (pass_ipa_inline): Use TV_IPA_INLINING.
4964         * ipa-inline-analysis.c (pass_inline_parameters): Use
4965         TV_INLINE_HEURISTICS.
4966         * tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
4967         (pass_tree_loop_done): Likewise.
4968         * final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
4969         * loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
4970         (loop_optimizer_finalize): Push/pop TV_LOOP_FINI.
4971
4972 2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4973
4974         * config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize operands.
4975         (neon_vabal<mode> VDQIW): Likewise.
4976
4977 2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4978
4979         PR target/54212
4980         * config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
4981         mark as predicable. Adjust asm template.
4982         (vec_setv2di_internal): Likewise.
4983         (vec_extract<mode> VD, VQ): Likewise.
4984         (vec_extractv2di): Likewise.
4985         (neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
4986         (neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
4987         (neon_vdup_n<mode> VX, V32): Likewise.
4988         (neon_vdup_nv2di): Likewise.
4989
4990 2012-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
4991
4992         * config/mips/mips.md (define_attr accum_in): New instruction
4993         attribute.  Set it for imadd and fmadd patterns.
4994         * config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract
4995         accumulator register.
4996
4997 2012-08-14  Diego Novillo  <dnovillo@google.com>
4998
4999         Merge from cxx-conversion branch.  Configury.
5000
5001         * configure.ac (CXX_FOR_BUILD): Define and substitute.
5002         (BUILD_CXXFLAGS): Define.
5003         Remove all handlers of ENABLE_BUILD_WITH_CXX.
5004         Force all build to be with C++.
5005         * Makefile.in (BUILD_CXXFLAGS): Use it.
5006         Remove all handlers of ENABLE_BUILD_WITH_CXX.
5007         * configure: Regenerate.
5008         * config.in: Regenerate.
5009         * doc/install.texi: Remove documentation for --enable-build-with-cxx
5010         and --enable-build-poststage1-with-cxx.
5011
5012 2012-08-14  Diego Novillo  <dnovillo@google.com>
5013
5014         Merge from cxx-conversion branch.  Re-implement VEC in C++.
5015
5016         * vec.c (vec_heap_free): Convert into a template function.
5017         (vec_gc_o_reserve_1): Make extern.
5018         (vec_gc_p_reserve): Remove.
5019         (vec_gc_p_reserve_exact): Remove.
5020         (vec_gc_o_reserve): Remove.
5021         (vec_gc_o_reserve_exact): Remove.
5022         (vec_heap_o_reserve_1): Make extern.
5023         (vec_heap_p_reserve): Remove.
5024         (vec_heap_p_reserve_exact): Remove.
5025         (vec_heap_o_reserve): Remove.
5026         (vec_heap_o_reserve_exact): Remove.
5027         (vec_stack_p_reserve): Remove.
5028         (vec_stack_p_reserve_exact): Remove.
5029         * vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS, VEC_ASSERT,
5030         VEC_ASSERT_FAIL, vec_assert_fail): Move earlier in the file.
5031         (VEC): Define to vec_t<T>.
5032         (vec_allocation_t): Define.
5033         (struct vec_prefix): Move earlier in the file.
5034         (vec_t<T>): New template.
5035         (DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
5036         DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
5037         DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
5038         DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
5039         (DEF_VEC_A): Provide template instantiations for
5040         GC/PCH markers that do not traverse the vector.
5041         (vec_stack_p_reserve): Remove.
5042         (vec_stack_p_reserve_exact): Remove.
5043         (vec_stack_p_reserve_exact_1): Remove.
5044         (vec_stack_o_reserve): Remove.
5045         (vec_stack_o_reserve_exact): Remove.
5046         (vec_stack_free): Re-write as a template function.
5047         (vec_reserve): New template function.
5048         (vec_reserve_exact): New template function.
5049         (vec_heap_free): New template function if GATHER_STATISTICS is
5050         defined.  Otherwise, macro that expands to free().
5051         (VEC_length_1): New template function.
5052         (VEC_length): Call it.
5053         (VEC_empty_1): New template function.
5054         (VEC_empty): Call it.
5055         (VEC_address_1): New template function.
5056         (VEC_address): Call it.
5057         (VEC_last_1): New template function.
5058         (VEC_last): Call it.  Change return type to T&.
5059         Change all users that used VEC_Os.
5060         (VEC_index_1): New template function.
5061         (VEC_index): Call it.  Return a T& instead of a T*.
5062         Update all callers that were using VEC_O before.
5063         (VEC_iterate_1): New template function.
5064         (VEC_iterate): Call it.
5065         (VEC_embedded_size_1): New template function.
5066         (VEC_embedded_size): Call it.
5067         (VEC_embedded_init_1): New template function.
5068         (VEC_embedded_init): Call it.
5069         (VEC_alloc_1): New template function.
5070         (VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
5071         do the allocation.
5072         (VEC_free_1): New template function.
5073         (VEC_free): Call it.
5074         (VEC_copy_1): New template function.
5075         (VEC_copy): Call it.
5076         (VEC_space_1): New template function
5077         (VEC_space): Call it.
5078         (VEC_reserve_1): New template function.
5079         (VEC_reserve): Call it.
5080         (VEC_reserve_exact_1): New template function.
5081         (VEC_reserve_exact): Call it.
5082         (VEC_splice_1): New template function.
5083         (VEC_splice): Call it.
5084         (VEC_safe_splice_1): New template function.
5085         (VEC_safe_splice): Call it.
5086         (VEC_quick_push_1): New template function.  Create two overloads, one
5087         accepting T, the other accepting T *.  Update all callers
5088         where T and T * are ambiguous.
5089         (VEC_quick_push): Call it.
5090         (VEC_safe_push_1): New template function. Create two overloads, one
5091         accepting T, the other accepting T *.  Update all callers
5092         where T and T * are ambiguous.
5093         (VEC_safe_push): Call it.
5094         (VEC_pop_1): New template function.
5095         (VEC_pop): Call it.
5096         (VEC_truncate_1): New template function.
5097         (VEC_truncate): Call it.
5098         (VEC_safe_grow_1): New template function.
5099         (VEC_safe_grow): Call it.
5100         (VEC_safe_grow_cleared_1): New template function.
5101         (VEC_safe_grow_cleared): Call it.
5102         (VEC_replace_1): New template function.
5103         (VEC_replace): Call it.  Always accept T instead of T*.
5104         Update all callers that used VEC_Os.
5105         (VEC_quick_insert_1): New template function.
5106         (VEC_quick_insert): Call it.
5107         (VEC_safe_insert_1): New template function.
5108         (VEC_safe_insert): Call it.
5109         (VEC_ordered_remove_1): New template function.
5110         (VEC_ordered_remove): Call it.
5111         (VEC_unordered_remove_1): New template function.
5112         (VEC_unordered_remove): Call it.
5113         (VEC_block_remove_1): New template function.
5114         (VEC_block_remove): Call it.
5115         (VEC_lower_bound_1): New template function.
5116         (VEC_lower_bound): Call it.
5117         (VEC_OP): Remove.
5118         (DEF_VEC_FUNC_P): Remove.
5119         (DEF_VEC_ALLOC_FUNC_P): Remove.
5120         (DEF_VEC_NONALLOC_FUNCS_P): Remove.
5121         (DEF_VEC_FUNC_O): Remove.
5122         (DEF_VEC_ALLOC_FUNC_O): Remove.
5123         (DEF_VEC_NONALLOC_FUNCS_O): Remove.
5124         (DEF_VEC_ALLOC_FUNC_I): Remove.
5125         (DEF_VEC_NONALLOC_FUNCS_I): Remove.
5126         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
5127         (DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
5128         (DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
5129         (vec_reserve_exact): New template function.
5130
5131         * gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
5132         * gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
5133         (typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
5134         (def_vec_alloc): Remove.  Update all callers.
5135         * gengtype.c (filter_type_name): New.
5136         (output_mangled_typename): Call it.
5137         (write_func_for_structure): Likewise.
5138         (write_types): Likewise.
5139         (write_root): Likewise.
5140         (write_typed_alloc_def): Likewise.
5141         (note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
5142         (note_def_vec_alloc): Remove.
5143         * gengtype.h (note_def_vec_alloc): Remove.
5144         (DEFVEC_ALLOC): Remove token code.
5145
5146         * df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
5147         inside the insn traversal loop.
5148         * gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
5149         * ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
5150         * reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
5151         * tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.
5152
5153         * config/bfin/bfin.c (hwloop_optimize): Update some calls to
5154         VEC_* for vectors of non-pointers.
5155         * config/c6x/c6x.c (try_rename_operands): Likewise.
5156         (reshuffle_units): Likewise.
5157         * config/mips/mips.c (mips_multi_start): Likewise.
5158         (mips_multi_add): Likewise.
5159         (mips_multi_copy_insn): Likewise.
5160         (mips_multi_set_operand): Likewise.
5161         * hw-doloop.c (discover_loop): Likewise.
5162         (discover_loops): Likewise.
5163         (reorg_loops): Likewise.
5164
5165 2012-08-14  Diego Novillo  <dnovillo@google.com>
5166
5167         Merge from cxx-conversion branch.  C++ support in gengtype.
5168
5169         * coretypes.h (gt_pointer_operator): Move from ...
5170         * ggc.h: ... here.
5171         * doc/gty.texi: Document support for C++ templates and
5172         user-provided markers.
5173         * gcc/gengtype-lex.l: Update copyright year.
5174         Remove support for recognizing DEF_VEC_O, DEF_VEC_P and DEFVEC_I.
5175         * gengtype-parse.c: Update copyright year.
5176         (token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
5177         (require_template_declaration): New.
5178         (typedef_name): Call it.
5179         (type): Replace IS_UNION with KIND. Replace all users.
5180         (def_vec): Remove.  Update all users.
5181         * gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
5182         (write_state_user_struct_type): New.
5183         (write_state_type): Call it.
5184         (read_state_user_struct_type): New.
5185         (read_state_type): Call it.
5186         * gengtype.c: Update copyright year.
5187         (dump_pair): Move declaration to the top.
5188         (dump_type): Likewise.
5189         (dump_type_list): Likewise.
5190         (dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
5191         (create_user_defined_type): New.
5192         (resolve_typedef): Call it.
5193         (new_structure): Replace argument ISUNION with KIND.
5194         Change users to refer to KIND directly.
5195         Update all callers.
5196         (find_structure): Likewise.
5197         (set_gc_used_type): Handle TYPE_USER_STRUCT.
5198         (create_file): Update HDR to include new copyright year.
5199         (struct walk_type_data): Add field IN_PTR_FIELD.
5200         (output_mangled_typename): Handle TYPE_USER_STRUCT.
5201         (walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
5202         Clear it afterwards.
5203         Handle TYPE_USER_STRUCT.
5204         (write_types_process_field): Handle TYPE_USER_STRUCT.
5205         (get_type_specifier): Move earlier in the file.
5206         (write_type_decl): New.
5207         (write_marker_function_name): New.
5208         (write_user_func_for_structure_ptr): New.
5209         (write_user_func_for_structure_body): New.
5210         (write_user_marking_functions): New.
5211         (write_func_for_structure): Call write_marker_function_name
5212         and write_type_decl.
5213         Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
5214         function directly.
5215         Call write_user_marking_functions on TYPE_USER_STRUCTs.
5216         (write_types_local_user_process_field): New.
5217         (write_pch_user_walking_for_structure_body): New.
5218         (write_pch_user_walking_functions): New.
5219         (write_types_local_process_field): Handle TYPE_USER_STRUCT.
5220         (write_local_func_for_structure): Do not call walk_type for
5221         TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
5222         Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
5223         (write_root): Handle TYPE_USER_STRUCT.
5224         (vec_prefix_type): Remove.  Update all users.
5225         (note_def_vec): Remove.  Update all users.
5226         (dump_typekind): Handle TYPE_USER_STRUCT.
5227         (dump_type): Initialize SEEN_TYPES, if needed.
5228         Handle TYPE_USER_STRUCT.
5229         (dump_everything): Do not initialize SEEN_TYPES.
5230         * gengtype.h: Update copyright year.
5231         (enum typekind): Add TYPE_USER_STRUCT.
5232         (union_or_struct_p): Rename from UNION_OR_STRUCT_P.
5233         Convert into function.
5234         Add an overload taking const_type_p.
5235         Update all callers.
5236         (new_structure): Change second field to type enum typekind.
5237         Update all users.
5238         (find_structure): Likewise.
5239         (note_def_vec): Remove.
5240         (DEFVEC_OP): Remove.
5241         (DEFVEC_I): Remove.
5242         * ggc-page.c (gt_ggc_mx): Add entry points for marking
5243         'const char *&', 'unsigned char *&' and 'unsigned char&'.
5244         * ggc-zone.c (gt_ggc_mx): Add entry points for marking
5245         'const char *&' and 'unsigned char *&'.
5246         * stringpool.c (gt_pch_nx): Add entry points for marking
5247         'const char *&', 'unsigned char *&' and 'unsigned char&'.
5248         Add an entry point for the overload taking arguments 'unsigned char
5249         *', 'gt_pointer_operator' and 'void *'.
5250         * vec.h (struct vec_prefix): Remove GTY marker.
5251         (struct vec_t): Remove GTY((length)) attribute from field 'vec'.
5252         (gt_ggc_mx (vec_t<T> *)): New template function.
5253         (gt_pch_nx (vec_t<T> *)): New template function.
5254         (gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
5255         function.
5256         (gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
5257         function.
5258
5259         * basic-block.h (struct edge_def): Mark GTY((user)).
5260         Remove all GTY markers from fields.
5261         (gt_ggc_mx): Declare.
5262         (gt_pch_nx): Declare.
5263         * tree-cfg.c (gt_ggc_mx): New.
5264         (gt_pch_nx): New.
5265
5266         * gengtype-lex.l (USER_GTY): Add pattern for "user".
5267         * gengtype-parse.c (option): Handle USER_GTY.
5268         (opts_have): New.
5269         (type): Call it.
5270         If the keyword 'user' is used, do not walk the fields
5271         of the structure.
5272         * gengtype.h (USER_GTY): Add.
5273         * doc/gty.texi: Update.
5274
5275 2012-08-14  Lawrence Crowl  <crowl@google.com>
5276
5277         Merge cxx-conversion branch.  Implement C++ hash table.
5278
5279         * hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
5280         * hash-table.c: Likewise.
5281         * tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
5282         (static htab_t same_succ_htab): Change type to hash_table;
5283         move specification of helper functions from create call to declaration.
5284         Change users to invoke member functions.
5285         (same_succ_print_traverse): Make extern ssa_.... Change callers.
5286         Remove void* casting.
5287         (same_succ_hash): Likewise.
5288         (same_succ_equal): Likewise.
5289         (same_succ_delete): Likewise.
5290         * tree-ssa-threadupdate.c: Include hash-table.h.
5291         (struct local_info): Rename to ssa_local_info_t to avoid overloading
5292         the type name local_info with the variable name local_info.
5293         (static htab_t redirection_data): Change type to hash_table.
5294         Move specification of helper functions from create call to declaration.
5295         Change users to invoke member functions.
5296         (redirection_data_hash): Make extern ssa_.... Change callers.
5297         Remove void* casting.
5298         (redirection_data_eq): Likewise.
5299         (fix_duplicate_block_edges): Likewise.
5300         (create_duplicates): Likewise.
5301         (fixup_template_block): Likewise.
5302         (redirect_edges): Likewise.
5303         (lookup_redirection_data): Change types associated with the hash table
5304         from void* to their actual type. Remove unnecessary casts.
5305         * tree-ssa-ccp.c: Include hash-table.h.
5306         (typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
5307         of htab_t with gimple_htab.  Change users to invoke member functions.
5308         Move specification of helper functions from create call to declaration.
5309         * tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
5310         (hash_ssa_name_by_var): Make extern. Remove void* casting.
5311         (eq_ssa_name_by_var): Likewise.
5312         (coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
5313         to hash_table. Change users to invoke member functions.
5314         Move specification of helper functions from create call to declaration.
5315         * coverage.c: Include hash-table.h instead of hashtab.h.
5316         (static htab_t counts_hash): Change type to hash_table;
5317         move specification of helper functions from create call to declaration.
5318         Change users to invoke member functions.
5319         (htab_counts_entry_hash): Make extern. Rename with coverage_... instead
5320         of htab_... Remove void* casting.
5321         (htab_counts_entry_eq): Likewise.
5322         (htab_counts_entry_del): Likewise.
5323         * tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
5324         (static htab_t expression_to_id): Change type to hash_table.
5325         Move specification of helper functions from create call to declaration.
5326         Change users to invoke member functions.
5327         (static htab_t phi_translate_table): Likewise.
5328         (pre_expr_eq): Make extern ssa_.... Change callers.
5329         Remove void* casting.
5330         (pre_expr_hash): Likewise.
5331         (expr_pred_trans_hash): Likewise.
5332         (expr_pred_trans_eq): Likewise.
5333         (alloc_expression_id): Change types associated with the hash table
5334         from void* to their actual type. Remove unnecessary casts.
5335         (lookup_expression_id): Likewise.
5336         (phi_trans_lookup): Likewise.
5337         (phi_trans_add): Likewise.
5338         * stringpool.c: Rename uses of libcpp typedef hash_table to
5339         cpp_hash_table.
5340         * Makefile.in: Add hash-table.o to OBJS-libcommon-target.
5341         Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
5342
5343 2012-08-14  Lawrence Crowl  <crowl@google.com>
5344
5345         Merge from cxx-conversion branch.  Re-write double_int in C++.
5346
5347         * hash-table.h
5348         (typedef double_int): Change to struct (POD).
5349         (double_int::make): New overloads for int to double-int conversion.
5350         (double_int::mask): New.
5351         (double_int::max_value): New.
5352         (double_int::min_value): New.
5353         (double_int::operator ++): New.
5354         (double_int::operator --): New.
5355         (double_int::operator *=): New.
5356         (double_int::operator +=): New.
5357         (double_int::operator -=): New.
5358         (double_int::to_signed): New.
5359         (double_int::to_unsigned): New.
5360         (double_int::fits_unsigned): New.
5361         (double_int::fits_signed): New.
5362         (double_int::fits): New.
5363         (double_int::trailing_zeros): New.
5364         (double_int::popcount): New.
5365         (double_int::multiple_of): New.
5366         (double_int::set_bit): New.
5367         (double_int::mul_with_sign): New.
5368         (double_int::operator * (binary)): New.
5369         (double_int::operator + (binary)): New.
5370         (double_int::operator - (binary)): New.
5371         (double_int::operator - (unary)): New.
5372         (double_int::operator ~ (unary)): New.
5373         (double_int::operator & (binary)): New.
5374         (double_int::operator | (binary)): New.
5375         (double_int::operator ^ (binary)): New.
5376         (double_int::and_not): New.
5377         (double_int::lshift): New.
5378         (double_int::rshift): New.
5379         (double_int::alshift): New.
5380         (double_int::arshift): New.
5381         (double_int::llshift): New.
5382         (double_int::lrshift): New.
5383         (double_int::lrotate): New.
5384         (double_int::rrotate): New.
5385         (double_int::div): New.
5386         (double_int::sdiv): New.
5387         (double_int::udiv): New.
5388         (double_int::mod): New.
5389         (double_int::smod): New.
5390         (double_int::umod): New.
5391         (double_int::divmod): New.
5392         (double_int::sdivmod): New.
5393         (double_int::udivmod): New.
5394         (double_int::ext): New.
5395         (double_int::zext): New.
5396         (double_int::sext): New.
5397         (double_int::is_zero): New.
5398         (double_int::is_one): New.
5399         (double_int::is_minus_one): New.
5400         (double_int::is_negative): New.
5401         (double_int::cmp): New.
5402         (double_int::ucmp): New.
5403         (double_int::scmp): New.
5404         (double_int::ult): New.
5405         (double_int::ugt): New.
5406         (double_int::slt): New.
5407         (double_int::sgt): New.
5408         (double_int::max): New.
5409         (double_int::smax): New.
5410         (double_int::umax): New.
5411         (double_int::min): New.
5412         (double_int::smin): New.
5413         (double_int::umin): New.
5414         (double_int::operator ==): New.
5415         (double_int::operator !=): New.
5416         (shwi_to_double_int): Change implementation to use member function.
5417         (double_int_minus_one): Likewise.
5418         (double_int_zero): Likewise.
5419         (double_int_one): Likewise.
5420         (double_int_two): Likewise.
5421         (double_int_ten): Likewise.
5422         (uhwi_to_double_int): Likewise.
5423         (double_int_to_shwi): Likewise.
5424         (double_int_to_uhwi): Likewise.
5425         (double_int_fits_in_uhwi_p): Likewise.
5426         (double_int_fits_in_shwi_p): Likewise.
5427         (double_int_fits_in_hwi_p): Likewise.
5428         (double_int_mul): Likewise.
5429         (double_int_mul_with_sign): Likewise.
5430         (double_int_add): Likewise.
5431         (double_int_sub): Likewise.
5432         (double_int_neg): Likewise.
5433         (double_int_div): Likewise.
5434         (double_int_sdiv): Likewise.
5435         (double_int_udiv): Likewise.
5436         (double_int_mod): Likewise.
5437         (double_int_smod): Likewise.
5438         (double_int_umod): Likewise.
5439         (double_int_divmod): Likewise.
5440         (double_int_sdivmod): Likewise.
5441         (double_int_udivmod): Likewise.
5442         (double_int_multiple_of): Likewise.
5443         (double_int_setbit): Likewise.
5444         (double_int_ctz): Likewise.
5445         (double_int_not): Likewise.
5446         (double_int_ior): Likewise.
5447         (double_int_and): Likewise.
5448         (double_int_and_not): Likewise.
5449         (double_int_xor): Likewise.
5450         (double_int_lshift): Likewise.
5451         (double_int_rshift): Likewise.
5452         (double_int_lrotate): Likewise.
5453         (double_int_rrotate): Likewise.
5454         (double_int_cmp): Likewise.
5455         (double_int_scmp): Likewise.
5456         (double_int_ucmp): Likewise.
5457         (double_int_max): Likewise.
5458         (double_int_smax): Likewise.
5459         (double_int_umax): Likewise.
5460         (double_int_min): Likewise.
5461         (double_int_smin): Likewise.
5462         (double_int_umin): Likewise.
5463         (double_int_ext): Likewise.
5464         (double_int_sext): Likewise.
5465         (double_int_zext): Likewise.
5466         (double_int_mask): Likewise.
5467         (double_int_max_value): Likewise.
5468         (double_int_min_value): Likewise.
5469         (double_int_zero_p): Likewise.
5470         (double_int_one_p): Likewise.
5471         (double_int_minus_one_p): Likewise.
5472         (double_int_equal_p): Likewise.
5473         (double_int_popcount): Likewise.
5474         * hash-table.c
5475         (double_int_mask): Reuse implementation for double_int::mask.
5476         (double_int_max_value): Likewise.
5477         (double_int_min_value): Likewise.
5478         (double_int_ext): Likewise.
5479         (double_int_zext): Likewise.
5480         (double_int_sext): Likewise.
5481         (double_int_mul_with_sign): Likewise.
5482         (double_int_divmod): Likewise.
5483         (double_int_sdivmod): Likewise.
5484         (double_int_udivmod): Likewise.
5485         (double_int_div): Likewise.
5486         (double_int_sdiv): Likewise.
5487         (double_int_udiv): Likewise.
5488         (double_int_mod): Likewise.
5489         (double_int_smod): Likewise.
5490         (double_int_umod): Likewise.
5491         (double_int_multiple_of): Likewise.
5492         (double_int_lshift): Likewise.
5493         (double_int_rshift): Likewise.
5494         (double_int_lrotate): Likewise.
5495         (double_int_rrotate): Likewise.
5496         (double_int_cmp): Likewise.
5497         (double_int_ucmp): Likewise.
5498         (double_int_scmp): Likewise.
5499         (double_int_max): Likewise.
5500         (double_int_smax): Likewise.
5501         (double_int_umax): Likewise.
5502         (double_int_min): Likewise.
5503         (double_int_smin): Likewise.
5504         (double_int_umin): Likewise.
5505         (double_int_min): Likewise.
5506         (double_int_min): Likewise.
5507         (double_int_min): Likewise.
5508         (double_int_min): Likewise.
5509         (double_int_min): Likewise.
5510         (double_int_min): Likewise.
5511         (double_int::alshift): New.
5512         (double_int::arshift): New.
5513         (double_int::llshift): New.
5514         (double_int::lrshift): New.
5515         (double_int::ult): New.
5516         (double_int::ugt): New.
5517         (double_int::slt): New.
5518         (double_int::sgt): New.
5519         (double_int_setbit): Reuse implementation for double_int::set_bit,
5520         which avoids a name conflict with a macro.
5521         (double_int_double_int_ctz): Reuse implementation for
5522         double_int::trailing_zeros.
5523         (double_int_fits_in_shwi_p): Reuse implementation for
5524         double_int::fits_signed.
5525         (double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
5526         (double_int_mul): Reuse implementation for binary
5527         double_int::operator *.
5528         (double_int_add): Likewise.
5529         (double_int_sub): Likewise.
5530         (double_int_neg): Reuse implementation for unary
5531         double_int::operator -.
5532         (double_int_max_value): Likewise.
5533         * fixed-value.c: Change to use member functions introduced above.
5534
5535 2012-08-14  Lawrence Crowl  <crowl@google.com>
5536
5537         Merge cxx-conversion branch.  Support tree macro calling from gdb.
5538
5539         * tree.h (tree_check): New.
5540         (TREE_CHECK): Use inline function above instead of __extension__.
5541         (tree_not_check): New.
5542         (TREE_NOT_CHECK): Use inline function above instead of __extension__.
5543         (tree_check2): New.
5544         (TREE_CHECK2): Use inline function above instead of __extension__.
5545         (tree_not_check2): New.
5546         (TREE_NOT_CHECK2): Use inline function above instead of __extension__.
5547         (tree_check3): New.
5548         (TREE_CHECK3): Use inline function above instead of __extension__.
5549         (tree_not_check3): New.
5550         (TREE_NOT_CHECK3): Use inline function above instead of __extension__.
5551         (tree_check4): New.
5552         (TREE_CHECK4): Use inline function above instead of __extension__.
5553         (tree_not_check4): New.
5554         (TREE_NOT_CHECK4): Use inline function above instead of __extension__.
5555         (tree_check5): New.
5556         (TREE_CHECK5): Use inline function above instead of __extension__.
5557         (tree_not_check5): New.
5558         (TREE_NOT_CHECK5): Use inline function above instead of __extension__.
5559         (contains_struct_check): New.
5560         (CONTAINS_STRUCT_CHECK): Use inline function above instead of
5561         __extension__.
5562         (tree_class_check): New.
5563         (TREE_CLASS_CHECK): Use inline function above instead of __extension__.
5564         (tree_range_check): New.
5565         (TREE_RANGE_CHECK): Use inline function above instead of __extension__.
5566         (omp_clause_subcode_check): New.
5567         (OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
5568         __extension__.
5569         (omp_clause_range_check): New.
5570         (OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
5571         __extension__.
5572         (expr_check): New.
5573         (EXPR_CHECK): Use inline function above instead of __extension__.
5574         (non_type_check): New.
5575         (NON_TYPE_CHECK): Use inline function above instead of __extension__.
5576         (tree_vec_elt_check): New.
5577         (TREE_VEC_ELT_CHECK): Use inline function above instead of
5578         __extension__.
5579         (omp_clause_elt_check): New.
5580         (OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
5581         __extension__.
5582         (tree_operand_check): New.
5583         (TREE_OPERAND_CHECK): Use inline function above instead of
5584         __extension__.
5585         (tree_operand_check_code): New.
5586         (TREE_OPERAND_CHECK_CODE): Use inline function above instead of
5587         __extension__.
5588         (TREE_CHAIN): Simplify implementation.
5589         (TREE_TYPE): Simplify implementation.
5590         (tree_operand_length): Move for compilation dependences.
5591         * gdbinit.in: (macro define __FILE__): New.
5592         (macro define __LINE__): New.
5593         (skip "tree.h"): New.
5594
5595 2012-08-14  Oleg Endo  <olegendo@gcc.gnu.org>
5596
5597         PR target/52933
5598         * config/sh/sh.md (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0,
5599         *cmp_div0s_1, *cbranch_div0s, *movsicc_div0s): New insns.
5600         * config/sh/sh.c (sh_rtx_costs): Handle div0s patterns.
5601
5602 2012-08-14  Oleg Endo  <olegendo@gcc.gnu.org>
5603
5604         PR target/50751
5605         * config/sh/constraints.md (Sra): New constraint.
5606         * config/sh/predicates.md (simple_mem_operand,
5607         displacement_mem_operand, zero_extend_movu_operand): New predicates.
5608         (zero_extend_operand): Check zero_extend_movu_operand for SH2A.
5609         * config/sh/sh.md (*zero_extendqisi2_disp_mem,
5610         *zero_extendhisi2_disp_mem): Add new insns and two new related
5611         peephole2 patterns.
5612
5613 2012-08-14  Steven Bosscher  <steven@gcc.gnu.org>
5614
5615         * graphite-scop-detection.c (create_sese_edges): Compute dominance
5616         info before trying to fix loop structure.
5617         * cfgloopmanip.c (fix_loop_structure): Require fast DOM queries.
5618         * tree-cfgcleanup.c (repair_loop_structures): Likewise.
5619         * cfgloop.c (verify_loop_structure): Verify loop fathers.
5620
5621         * dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert.
5622         (dom_convert_dir_to_idx, compute_dom_fast_query,
5623         get_immediate_dominator, set_immediate_dominator, get_dominated_by,
5624         redirect_immediate_dominators, nearest_common_dominator,
5625         (dominated_by_p, bb_dom_dfs_in, bb_dom_dfs_out, recompute_dominator,
5626         iterate_fix_dominators, add_to_dominance_info,
5627         delete_from_dominance_info): Likewise.
5628
5629 2012-08-14  Richard Guenther  <rguenther@suse.de>
5630
5631         * cfgexpand.c (expand_used_vars): Use virtual_operand_p.
5632         * gimple-pretty-print.c (dump_phi_nodes): Likewise.
5633         * gimple-streamer-out.c (output_bb): Likewise.
5634         * graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
5635         (rewrite_reductions_out_of_ssa): Likewise.
5636         (rewrite_commutative_reductions_out_of_ss): Likewise.
5637         * ipa-split.c (verify_non_ssa_vars): Likewise.
5638         (consider_split): Likewise.
5639         (visit_bb): Likewise.
5640         (split_function): Likewise.
5641         * lto-streamer-out.c (output_ssa_names): Likewise.
5642         * sese.c (rename_uses): Likewise.
5643         * tree-cfg.c (replace_uses_by): Likewise.
5644         (gimple_merge_blocks): Likewise.
5645         (gimple_cfg2dot): Likewise.
5646         (verify_gimple_phi): Likewise.
5647         (replace_ssa_name): Likewise.
5648         (move_block_to_fn): Likewise.
5649         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
5650         * tree-if-conv.c (if_convertible_phi_p): Likewise.
5651         (predicate_scalar_phi): Likewise.
5652         * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
5653         (copy_phis_for_bb): Likewise.
5654         * tree-loop-distribution.c (generate_loops_for_partition): Likewise.
5655         (destroy_loop): Likewise.
5656         * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
5657         (insert_backedge_copies): Likewise.
5658         * tree-parloops.c (transform_to_exit_first_loop): Likewise.
5659         (gather_scalar_reductions): Likewise.
5660         (try_create_reduction_list): Likewise.
5661         * tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
5662         Likewise.
5663         (scev_const_prop): Likewise.
5664         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
5665         (get_default_value): Likewise.
5666         (ccp_initialize): Likewise.
5667         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5668         * tree-ssa-copy.c (may_propagate_copy): Likewise.
5669         (init_copy_prop): Likewise.
5670         * tree-ssa-dce.c (propagate_necessity): Likewise.
5671         (remove_dead_phis): Likewise.
5672         (forward_edge_to_pdom): Likewise.
5673         (eliminate_unnecessary_stmts): Likewise.
5674         * tree-ssa-live.c (partition_view_init): Likewise.
5675         (remove_unused_locals): Likewise.
5676         (register_ssa_partition_check): Likewise.
5677         * tree-ssa-loop-im.c (movement_possibility): Likewise.
5678         (move_computations_stmt): Likewise.
5679         * tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
5680         (record_invariant): Likewise.
5681         (find_interesting_uses_outside): Likewise.
5682         (determine_set_costs): Likewise.
5683         * tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
5684         (find_uses_to_rename_use): Likewise.
5685         (check_loop_closed_ssa_use): Likewise.
5686         (rewrite_phi_with_iv): Likewise.
5687         (canonicalize_loop_ivs): Likewise.
5688         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
5689         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
5690         * tree-ssa-pre.c (make_values_for_phi): Likewise.
5691         (compute_avail): Likewise.
5692         (eliminate): Likewise.
5693         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5694         * tree-ssa-reassoc.c (phi_rank): Likewise.
5695         * tree-ssa-strlen.c (strlen_enter_block): Likewise.
5696         * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
5697         (ipa_pta_execute): Likewise.
5698         * tree-ssa-tail-merge.c (same_succ_hash): Likewise.
5699         (release_last_vdef): Likewise.
5700         (same_phi_alternatives_1): Likewise.
5701         (bb_has_non_vop_phi): Likewise.
5702         (vop_phi): Likewise.
5703         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
5704         Likewise.
5705         * tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
5706         (execute_late_warn_uninitialized): Likewise.
5707         * tree-ssa.c (verify_ssa_name): Likewise.
5708         (verify_phi_args): Likewise.
5709         (verify_ssa): Likewise.
5710         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5711         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
5712         Likewise.
5713         (slpeel_tree_peel_loop_to_edge): Likewise.
5714         (vect_can_advance_ivs_p): Likewise.
5715         (vect_update_ivs_after_vectorizer): Likewise.
5716         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
5717         * tree-vrp.c (remove_range_assertions): Likewise.
5718         * value-prof.c (gimple_divmod_values_to_profile): Likewise.
5719
5720 2012-08-14  Richard Guenther  <rguenther@suse.de>
5721
5722         PR tree-optimization/54146
5723         * tree-ssa-pre.c (do_regular_insertion): Use a VEC
5724         indexed by pred edge index for avail.
5725         (do_partial_partial_insertion): Likewise.
5726         (insert_into_preds_of_block): Adjust.
5727
5728 2012-08-14  Richard Guenther  <rguenther@suse.de>
5729
5730         * gimplify.c (create_tmp_from_val): Mark temporary with
5731         DECL_GIMPLE_REG_P here ...
5732         (internal_get_tmp_var): ... instead of here.  If we go into
5733         SSA create an SSA name instead of a VAR_DECL.
5734         (gimplify_modify_expr): Do not create SSA names here, assert
5735         we already got them.
5736         (force_gimple_operand_1): Create an SSA name if we go into SSA.
5737         * sese.c (rename_uses): Simplify.
5738
5739 2012-08-14  Richard Guenther  <rguenther@suse.de>
5740
5741         * tree-into-ssa.c: Include diagnostic-core.h.
5742         * Makefile.in (tree-into-ssa.o): Adjust.
5743
5744 2012-08-14  Richard Guenther  <rguenther@suse.de>
5745
5746         * tree-into-ssa.c (update_ssa): Verify we do not rename
5747         symbols that are already partly in SSA form.
5748
5749 2012-08-14  Jakub Jelinek  <jakub@redhat.com>
5750
5751         PR middle-end/53411
5752         PR rtl-optimization/53495
5753         * ira.c (ira): Move delete_trivially_dead_insns call before
5754         find_moveable_pseudos call.
5755
5756 2012-08-13  Steven Bosscher  <steven@gcc.gnu.org>
5757
5758         * tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
5759         of potentially huge memset overhead.
5760         (do_partial_partial_insertion): Likewise.
5761         * cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc.
5762         * tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC
5763         for arrays to be filled by pre_and_rev_post_order_compute.  Allocate
5764         the right number of slots, not that number plus NUM_FIXED_BLOCKS.
5765         * tree-ssa-reassoc.c (init_reassoc): Likewise.
5766         * cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for
5767         array used as stack.
5768         * tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for
5769         arrays to be filled by pre_and_rev_post_order_compute.
5770         * cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for
5771         array to be filled by dfs_enumerate_from.
5772         (remove_path): Likewise.
5773         (duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for
5774         array of loops that is filled on the next lines.
5775         * cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for
5776         array of basic blocks to be returned.
5777         (get_loop_body_in_dom_order): Likewise.
5778         (get_loop_body_in_bfs_order): Likewise.
5779         * tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack
5780         for all bitmaps used for rewriting into loop-closed SSA form.
5781         (add_exit_phis_var): Allocate the def bitmap on it.  Clear the livein
5782         bitmap at the end to release a lot of memory.
5783         (add_exit_phis): Allocate the exits bitmap on the new obstack.
5784         (get_loops_exits): Allocate the exits bitmap on the new obstack.
5785         (find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is
5786         seen for the first time.
5787         (find_uses_to_rename): Add "???" for why the whole function must
5788         be re-scanned if changed_bbs is empty.
5789         (rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack.
5790         Use XNEWVEC to allocate the use_blocks array.  Initialize the new
5791         obstack, and free it at the end.  Remove loop over all SSA names.
5792         (check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands.
5793         * tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of
5794         xcalloc to allocate edge_pred and edge_flag arrays.
5795
5796 2012-08-13  Uros Bizjak  <ubizjak@gmail.com>
5797
5798         * config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
5799         (CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
5800         for different ABIs.
5801         (enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
5802         (REG_CLASS_NAMES): Update.
5803         (REG_CLASS_CONTENTS): Update.  Clear CLOBBERED_REGS members.
5804         * config/i386/i386.c (ix86_conditional_register_usage): Disable
5805         REX registers on 32bit targets.  Handle bitmaps from
5806         CALL_USED_REGISTERS initializer.  Calculate CLOBBERED_REGS register
5807         set from GENERAL_REGS also for 32bit targets.  Do not change call
5808         used register set for TARGET_64BIT_MS_ABI separately.
5809
5810 2012-08-13  Richard Guenther  <rguenther@suse.de>
5811
5812         * basic-block.h (struct basic_block): Remove loop_depth
5813         member, move flags and index members next to each other.
5814         * cfgloop.h (bb_loop_depth): New inline function.
5815         * cfghooks.c (split_block): Do not set loop_depth.
5816         (duplicate_block): Likewise.
5817         * cfgloop.c (flow_loop_nodes_find): Likewise.
5818         (flow_loops_find): Likewise.
5819         (add_bb_to_loop): Likewise.
5820         (remove_bb_from_loops): Likewise.
5821         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
5822         * gimple-streamer-in.c (input_bb): Do not stream loop_depth.
5823         * gimple-streamer-out.c (output_bb): Likewise.
5824         * bt-load.c: Include cfgloop.h.
5825         (migrate_btr_defs): Use bb_loop_depth.
5826         * cfg.c (dump_bb_info): Likewise.
5827         * final.c (compute_alignments): Likewise.
5828         * ira.c (update_equiv_regs): Likewise.
5829         * tree-ssa-copy.c (init_copy_prop): Likewise.
5830         * tree-ssa-dom.c (loop_depth_of_name): Likewise.
5831         * tree-ssa-forwprop.c: Include cfgloop.h.
5832         (forward_propagate_addr_expr): Use bb_loop_depth.
5833         * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
5834         * tree-ssa-sink.c (select_best_block): Likewise.
5835         * ipa-inline-analysis.c: Include cfgloop.h.
5836         (estimate_function_body_sizes): Use bb_loop_depth.
5837         * Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
5838         (ipa-inline-analysis.o): Likewise.
5839         (bt-load.o): Likewise.
5840
5841 2012-08-13  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
5842             Jakub Jelinek  <jakub@redhat.com>
5843
5844         PR driver/54210
5845         * config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
5846         bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
5847         * config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
5848         0x80000001 %ecx flags.
5849
5850 2012-08-13  Richard Guenther  <rguenther@suse.de>
5851
5852         * tree-cfg.c (print_loop): Avoid ICEing for loops marked for
5853         removal and loops with multiple latches.
5854
5855 2012-08-13  Jakub Jelinek  <jakub@redhat.com>
5856
5857         PR c/53968
5858         * tree.c (integer_pow2p): Avoid undefined signed overflows.
5859         * simplify-rtx.c (neg_const_int): Likewise.
5860         * expr.c (fixup_args_size_notes): Likewise.
5861         * stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
5862         * double-int.c (mul_double_wide_with_sign): Likewise.
5863         (double_int_mask): Likewise.
5864         * tree-ssa-loop-ivopts.c (get_address_cost): Likewise.
5865
5866 2012-08-13  Richard Guenther  <rguenther@suse.de>
5867
5868         PR tree-optimization/54200
5869         * tree-ssa-copyrename.c (rename_ssa_copies): Do not add
5870         PHI results to another partition if not all PHI arguments
5871         have the same partition.
5872
5873 2012-08-12  Jan Hubicka  <jh@suse.cz>
5874
5875         * tree-pass.h (write_summary, write_optimization_summary): Remove
5876         set and vset arguments.
5877         * ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
5878         (write_node_summary_p): Likewise; use the encoder.
5879         (ipa_reference_write_optimization_summary): Likewise.
5880         * lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
5881         (lto_symtab_encoder_new): Initialize in_partition field.
5882         (lto_symtab_encoder_delete): Destroy in_partition field.
5883         (LCC_NOT_FOUND): Move to lto-streamer.h
5884         (lto_symtab_encoder_deref): Likewise.
5885         (lto_symtab_encoder_in_partition_p,
5886         lto_set_symtab_encoder_in_partition): New functions.
5887         (referenced_from_other_partition_p): Rewrite to use encoder.
5888         (reachable_from_other_partition_p): Likewise.
5889         (referenced_from_this_partition_p): Likewise.
5890         (reachable_from_this_partition_p): Likewise.
5891         (lto_output_node): Likewise.
5892         (lto_output_varpool_node): Likewise.
5893         (output_refs): Likewise.
5894         (compute_ltrans_boundary): Initialize in_partition fileds of
5895         the encoder.
5896         (output_symtab): Likewise.
5897         (input_refs): Match the changes in output_refs.
5898         (output_cgraph_opt_summary_p): Remove set argument.
5899         (output_node_opt_summary): Replace set by encoder.
5900         (output_cgraph_opt_summary): Remove set argument; use
5901         the encoder.
5902         * ipa-pure-const.c (pure_const_write_summary): Remove set and vset
5903         arguments; use the encoder.
5904         * lto-streamer-out.c (lto_output): Remove set and vset argument; use
5905         the encoder.
5906         (produce_symtab): Likewise.
5907         * ipa-inline.h (inline_write_summary): Remove set and vset arguments.
5908         * ipa-inline-analysis.c (inline_write_summary): Likewise.
5909         * ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
5910         use encoder.
5911         * ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
5912         * passes.c (ipa_write_summaries_2): Remove set and vset arguments.
5913         (ipa_write_summaries_1): Update.
5914         (ipa_write_optimization_summaries_1): Likewise.
5915         (ipa_write_optimization_summaries): Likewise.
5916         * lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
5917         (lto_symtab_encoder_iterator): New type.
5918         (lto_symtab_encoder_deref): Make inline.
5919         (output_symtab, referenced_from_other_partition_p,
5920         reachable_from_other_partition_p, referenced_from_this_partition_p,
5921         reachable_from_this_partition_p): Update.
5922         (lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node,
5923         lsei_varpool_node): New inline functions.
5924         (LCC_NOT_FOUND): New macro.
5925         (lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
5926         lsei_start_in_partition, lsei_next_function_in_partition,
5927         lsei_start_function_in_partition, lsei_next_variable_in_partition,
5928         lsei_start_variable_in_partition): New inline functions.
5929
5930 2012-08-12  Oleg Endo  <olegendo@gcc.gnu.org>
5931
5932         * config/sh/sh.md (prefetch): Simplify expander.  Fix condition to
5933         allow SH3.
5934         (*prefetch_media): Move insn below expander.
5935         (*prefetch): Fix condition to allow SH3.
5936
5937 2012-08-12  Oleg Endo  <olegendo@gcc.gnu.org>
5938
5939         PR target/51244
5940         * config/sh/sh.md: Add splits for inverted compare and branch
5941         opportunities.
5942         (*cmpeqsi_t): New insn.
5943         (cmpgtsi_t, cmpgesi_t): Swap r and N alternatives.
5944         (cmpgeusi_t): Use satisfies_constraint_Z.  Emit sett insn in
5945         replacement insn list and not in the preparation statements.
5946         (clrt, sett): Add mt_group attribute.
5947
5948 2012-08-12 Marc Glisse <marc.glisse@inria.fr>
5949
5950         PR middle-end/54193
5951         * gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.
5952
5953 2012-08-12  Oleg Endo  <olegendo@gcc.gnu.org>
5954
5955         PR target/39423
5956         * config/sh/predicates.md (mem_index_disp_operand): Check for
5957         arith_reg_operand instead of REG_P.
5958
5959 2012-08-11  Bernd Schmidt  <bernds@codesourcery.com>
5960
5961         * reload1.c (replaced_subreg, gen_reload): Add
5962         SECONDARY_MEMORY_NEEDED ifdefs as necessary.
5963
5964 2012-08-11  Jan Hubicka  <jh@suse.cz>
5965
5966         * lto-section-in.c (lto_section_name): Do not use "symtab" as part of
5967         symtab_node sectoin name; it confuses plugin.
5968
5969 2012-08-11  Uros Bizjak  <ubizjak@gmail.com>
5970
5971         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
5972         index in the va_list_vars bitmap by num_ssa_names.
5973
5974 2012-08-11  Uros Bizjak  <ubizjak@gmail.com>
5975
5976         * config/i386/sse.md (xop integer multiply/add insns): Use
5977         register_operand for operand 3 predicate.
5978         (xop_phadd<u>bq):  Fix vec_select selectors.
5979
5980 2012-08-11  Martin Jambor  <mjambor@suse.cz>
5981
5982         PR fortran/48636
5983         * ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
5984         * ipa-inline-analysis.c (agg_position_info): New type.
5985         (add_condition): New parameter aggpos, also store agg_contents, by_ref
5986         and offset.
5987         (dump_condition): Also dump aggregate conditions.
5988         (evaluate_conditions_for_known_args): Also handle aggregate
5989         conditions.  New parameter known_aggs.
5990         (evaluate_properties_for_edge): Gather known aggregate contents.
5991         (inline_node_duplication_hook): Pass NULL known_aggs to
5992         evaluate_conditions_for_known_args.
5993         (unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
5994         (unmodified_parm_or_parm_agg_item): New function.
5995         (set_cond_stmt_execution_predicate): Handle values passed in
5996         aggregates.
5997         (set_switch_stmt_execution_predicate): Likewise.
5998         (will_be_nonconstant_predicate): Likewise.
5999         (estimate_edge_devirt_benefit): Pass new parameter known_aggs to
6000         ipa_get_indirect_edge_target.
6001         (estimate_calls_size_and_time): New parameter known_aggs, pass it
6002         recrsively to itself and to estimate_edge_devirt_benefit.
6003         (estimate_node_size_and_time): New vector known_aggs, pass it o
6004         functions which need it.
6005         (remap_predicate): New parameter offset_map, use it to remap aggregate
6006         conditions.
6007         (remap_edge_summaries): New parameter offset_map, pass it recursively
6008         to itself and to remap_predicate.
6009         (inline_merge_summary): Also create and populate vector offset_map.
6010         (do_estimate_edge_time): New vector of known aggregate contents,
6011         passed to functions which need it.
6012         (inline_read_section): Stream new fields of condition.
6013         (inline_write_summary): Likewise.
6014         * ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
6015         contents.  Let all local callers pass NULL for known_aggs.
6016
6017 2012-08-11  Jan Hubicka  <jh@suse.cz>
6018
6019         * lto-cgraph.c (output_cgraph): Rename to ...
6020         (output_symtab): ... this one. Update for LTO_section_symtab_nodes.
6021         (input_cgraph): Rename to ...
6022         (input_symtab): ... this one. Update for LTO_section_symtab_nodes.
6023         * lto-streamer-out.c (create_output_block): Do not set
6024         section_type.
6025         (produce_asm): Likewise.
6026         (lto_output_toplevel_asms): Likewise.
6027         (produce_asm_for_decls): Likewise.
6028         (lto_output): Use output_symtab.
6029         * lto-section-in.c (lto_section_name): Update.
6030         * lto-section-out.c (lto_destroy_simple_output_block): Remove
6031         section_type.
6032         * lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
6033         rename LTO_section_cgraph to LTO_section_symtab_nodes.
6034         (struct lto_header): Remove section_type.
6035
6036 2012-08-11  Jan Hubicka  <jh@suse.cz>
6037
6038         * cgraph.h (vector types for symtab_node): Add.
6039         * ipa-reference.c (ipa_reference_write_optimization_summary): Update
6040         for new symtab encoder.
6041         (ipa_reference_read_optimization_summary): Likewise.
6042         * lto-cgraph.c (output_varpool): Remove.
6043         (input_cgraph_opt_summary): Take symtab nodes vector as argument.
6044         (LTO_cgraph_tags): Rename to ...
6045         (LTO_symtab_tags): ... this one; add LTO_symtab_variable.
6046         (lto_cgraph_encoder_new): Rename to ...
6047         (lto_symtab_encoder_new): ... this on.
6048         (lto_cgraph_encoder_encode): Rename to ...
6049         (lto_symtab_encoder_encode): ... this one.
6050         (lto_cgraph_encoder_delete): Rename to ...
6051         (lto_symtab_encoder_delete): ... this one.
6052         (lto_cgraph_encoder_deref): Rename to ...
6053         (lto_symtab_encoder_deref): ... this one.
6054         (lto_cgraph_encoder_encode_body_p): Rename to ...
6055         (lto_symtab_encoder_encode_body_p): ... this one.
6056         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
6057         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
6058         lto_varpool_encoder_deref): Remove.
6059         (lto_varpool_encoder_encode_initializer_p): Rename to ...
6060         (lto_symtab_encoder_encode_initializer_p): ... this one.
6061         (lto_set_varpool_encoder_encode_initializer): Rename to ...
6062         (lto_set_symtab_encoder_encode_initializer): ... this one.
6063         (lto_output_edge): Update.
6064         (lto_output_node): Update.
6065         (lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
6066         (lto_output_ref): Drop varpool_encoder; update.
6067         (add_node_to): Update.
6068         (add_references): Update.
6069         (output_outgoing_cgraph_edges): Update.
6070         (output_refs): Update.
6071         (compute_ltrans_boundary): Update.
6072         (output_cgraph): Update; output varpools too.
6073         (input_overwrite_node): Update.
6074         (output_varpool): Remove.
6075         (input_node): Update.
6076         (input_ref): Update.
6077         (input_edge): Update.
6078         (input_cgraph_1): Update; input varpool too; unify fixup code.
6079         (input_varpool_1): Remove.
6080         (input_refs): Update.
6081         (input_cgraph): Update.
6082         (output_node_opt_summary): Update.
6083         (input_cgraph_opt_section): Update.
6084         (input_cgraph_opt_summary): Update.
6085         * ipa-pure-const.c (pure_const_write_summary): Update.
6086         (pure_const_read_summary): Update.
6087         * lto-streamer-out.c (lto_write_tree): Update.
6088         (lto_output): Likewise.
6089         (produce_symtab): Update.
6090         (produce_asm_for_decls): Update.
6091         * ipa-inline-analysis.c (inline_read_section): Update.
6092         (inline_write_summary): Update.
6093         * ipa-prop.c (ipa_write_node_info): Update.
6094         (ipa_prop_read_section): Update.
6095         * lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
6096         (lto_symtab_encoder_d): ... this one;  add initializer.
6097         (lto_cgraph_encoder_t): Rename to ...
6098         (lto_symtab_encoder_t): ... this one.
6099         (lto_cgraph_encoder_size): Rename to ...
6100         (lto_symtab_encoder_size): ... this one.
6101         (lto_varpool_encoder_d): ... remove.
6102         (lto_varpool_encoder_t): Remove.
6103         (lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
6104         add symtab_node_encoder.
6105         (lto_file_decl_data): Likewise.
6106         (lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
6107         lto_cgraph_encoder_new, lto_cgraph_encoder_encode,
6108         lto_cgraph_encoder_delete, lto_cgraph_encoder_encode_body_p,
6109         lto_varpool_encoder_encode_body_p, lto_varpool_encoder_deref,
6110         lto_varpool_encoder_lookup, lto_varpool_encoder_new,
6111         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
6112         lto_varpool_encoder_encode_initializer_p): Remove.
6113         (lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
6114         lto_symtab_encoder_t, lto_symtab_encoder_encode,
6115         lto_symtab_encoder_delete, lto_symtab_encoder_encode_body_p,
6116         lto_symtab_encoder_encode_initializer_p): New.
6117
6118 2012-08-11  Uros Bizjak  <ubizjak@gmail.com>
6119
6120         * config/i386/i386.md (isa): Add fma and fma4.
6121         (enabled): Handle fma and fma4.
6122         * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
6123         (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
6124         (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
6125         (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
6126         (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
6127         (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.
6128
6129 2012-08-10  Uros Bizjak  <ubizjak@gmail.com>
6130
6131         * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
6132         *fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
6133         *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.
6134
6135 2012-08-10  Uros Bizjak  <ubizjak@gmail.com>
6136
6137         * config/i386/i386.md (simple LEA peephole2s): Add zero-extend
6138         variants of PLUS and MULT simple LEA patterns.  Disable PLUS
6139         patterns for TARGET_OPT_AGU.
6140
6141 2012-08-10  Richard Guenther  <rguenther@suse.de>
6142
6143         * Makefile.in (OBJS): Remove matrix-reorg.o.
6144         (matrix-reorg.o): Remove dependence rule.
6145         (GTFILES): Remove matrix-reorg.c.
6146         * matrix-reorg.c: Remove.
6147         * passes.c (init_optimization_passes): Do not schedule
6148         pass_ipa_matrix_reorg.
6149         * tree-pass.h (pass_ipa_matrix_reorg): Remove.
6150         * common.opt (fipa-matrix-reorg): Stub out.
6151         * doc/invoke.texi (fipa-matrix-reorg): Remove documentation.
6152
6153 2012-08-10  Richard Guenther  <rguenther@suse.de>
6154
6155         PR middle-end/54219
6156         * fold-const.c (fold_ternary_loc): Do not reverse the mask
6157         when canonicalizing it when folding VEC_PERM_EXPR.
6158
6159 2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6160
6161         PR middle-end/54211
6162         * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
6163         Use cand_type to determine whether pointer arithmetic will be generated.
6164
6165 2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6166
6167         * doc/sourcebuild.texi: Document long_neq_int effective target.
6168
6169 2012-08-10  Richard Guenther  <rguenther@suse.de>
6170
6171         PR tree-optimization/54109
6172         * tree-ssa-forwprop.c
6173         (forward_propagate_addr_into_variable_array_index): Remove.
6174         (forward_propagate_addr_expr_1): Adjust.
6175
6176 2012-08-10  Richard Guenther  <rguenther@suse.de>
6177
6178         * tree-cfg.c (dump_function_to_file): Make sure to dump
6179         anonymous SSA names when there are no local decls.
6180
6181 2012-08-10  Steven Bosscher  <steven@gcc.gnu.org>
6182
6183         * tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
6184         * tree-into-ssa.c (get_ssa_name_ann): Likewise.
6185         (mark_phi_for_rewrite): Likewise.
6186         (compute_global_livein): Use VEC_reserve outside the innermost
6187         loop and VEC_quick_push instead of VEC_safe_push in that loop.
6188         (update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing
6189         of new_ssa_names and old_ssa_names.  Allocate phis_to_rewrite to
6190         the correct initial size.
6191
6192 2012-08-10  Richard Guenther  <rguenther@suse.de>
6193
6194         * tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove.
6195         (need_creation): Remove.
6196         (get_representative_for): Use anonymous named SSA names.
6197         (create_expression_by_pieces): Likewise.
6198         (insert_into_preds_of_block): Likewise.
6199         (init_pre): Do not init removed vars.
6200         (fini_pre): Do not free need_creation.
6201         * tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous
6202         SSA names.
6203         * tree-ssa-loop-manip.c (create_iv): Likewise.
6204         * value-prof.c (gimple_divmod_fixed_value): Likewise.
6205         (gimple_mod_pow2): Likewise.
6206         (gimple_mod_subtract): Likewise.
6207         (gimple_ic): Likewise.
6208         (gimple_stringop_fixed_value): Likewise.
6209         * tree-ssa-phiopt.c (condstoretemp): Remove.
6210         (tree_ssa_phiopt_worker): Use anonymous named SSA names.
6211         (conditional_replacement): Likewise.
6212         (abs_replacement): Likewise.
6213         (cond_store_replacement): Likewise.
6214         (cond_if_else_store_replacement_1): Likewise.
6215         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
6216         (rewrite_bittest): Likewise.
6217         * tree-ssa-reassoc.c (build_and_add_sum): Get type from callers
6218         and build anonymous SSA names.
6219         (undistribute_ops_list): Adjust.
6220         (eliminate_redundant_comparison): Use anonymous SSA names.
6221         (rewrite_expr_tree_parallel): Likewise.
6222         (get_reassoc_pow_ssa_name): Remove.
6223         (attempt_builtin_powi): Adjust.
6224         (reassociate_bb): Likewise.
6225         * tree-ssa-strlen.c (get_string_length): Use anonymous SSA names.
6226         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
6227         (build_arrays): Likewise.
6228         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
6229         (create_tailcall_accumulator): Likewise.
6230         * tree-vect-generic.c (expand_vector_divmod): Likewise.
6231         * tree-profile.c (gcov_type_tmp_var): Remove.
6232         (gimple_init_edge_profiler): Do not initialize it and use anonymous
6233         SSA names.
6234         (gimple_gen_ic_profiler): Likewise.
6235         (tree_profiling): Adjust.
6236         * tree-sra.c (build_ref_for_offset): Use anonymous SSA names.
6237         * tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
6238         (powi_as_mults_1): Likewise.
6239         (powi_as_mults): Likewise.
6240         (build_and_insert_call): Adjust.
6241         (build_and_insert_binop): Likewise.
6242         (build_and_insert_ref): Likewise.
6243         (build_and_insert_cast): Likewise.
6244         (gimple_expand_builtin_pow): Likewise.
6245         (gimple_expand_builtin_cabs): Likewise.
6246         (execute_optimize_bswap): Use anonymous SSA names.
6247         (convert_mult_to_widen): Likewise.
6248         (convert_plusminus_to_widen): Likewise.
6249         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
6250         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
6251         * tree-if-conv.c (ifc_temp_var): Likewise.
6252         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
6253         * tree-parloops.c (take_address_of): Likewise.
6254         * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
6255         (vect_permute_load_chain): Likewise.
6256         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
6257         * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
6258         (vect_handle_widen_op_by_const): Likewise.
6259         (vect_operation_fits_smaller_type): Likewise.
6260         (vect_recog_over_widening_pattern): Likewise.
6261         * tree-vect-stmts.c (vect_init_vector): Likewise.
6262         * tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
6263         (simplify_float_conversion_using_ranges): Likewise.
6264
6265 2012-08-10  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6266
6267         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix
6268         target mask of __builtin_ia32_rdseed_di_step builtin.
6269
6270 2012-08-10  Richard Guenther  <rguenther@suse.de>
6271
6272         PR tree-optimization/54027
6273         * tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR
6274         and LSHIFT_EXPR handling, force -fwrapv for the multiplication used
6275         to handle LSHIFT_EXPR with a constant.
6276
6277 2012-08-10  Richard Guenther  <rguenther@suse.de>
6278
6279         * tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
6280         is recorded as var.
6281         (SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
6282         or its SSA_NAME_VAR.
6283         (SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
6284         * tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
6285         SSA names by passing a type instead of a variable decl.
6286         (release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
6287         (copy_ssa_name_fn): Handle anonymous SSA names.
6288         (replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
6289         * tree-flow-inline.h (make_temp_ssa_name): New inline function.
6290         * tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
6291         dump SSA names without a name as <anon>.
6292         * cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
6293         going to expand a decl.
6294         (gimple_expand_cfg): Assign all SSA names of a partition the
6295         decl we created for its leader.
6296         * tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
6297         (verify_ssa_name): Handle anonymous SSA names.
6298         (verify_def): Likewise.
6299         * tree-predcom.c (eliminate_temp_copies): Likewise.
6300         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
6301         * tree-ssa-live.c (var_map_base_init): Compute conflicts for
6302         anonymous SSA names with the same type.
6303         (mark_all_vars_used_1): Handle anonymous SSA names.
6304         (verify_live_on_entry): Likewise.
6305         * tree-ssa-coalesce.c (abnormal_corrupt): Remove.
6306         (create_outofssa_var_map): Adjust with respect to conflicts we
6307         compute for anonymous SSA names.  Do not restrict abnormal
6308         coalescing.
6309         (coalesce_partitions): Do not restrict abnormal coalescing.
6310         Assert we only ever coalesce variables we computed conflicts for.
6311         * tree-ssa-ter.c (process_replaceable): Do not restrict TER
6312         of anonymous names.
6313         * expr.c (expand_expr_real_1): Handle anonymous SSA names
6314         expanded from IVOPTs by creating a raw REG here.
6315         * tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
6316         (dump_function_to_file): Dump anonymous SSA names alongside
6317         with their types in the variable list.
6318         (verify_gimple_return): Guard use of SSA_NAME_VAR.
6319         * tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
6320         (rewrite_into_ssa): Make SSA names anonymous.
6321         * tree-ssa-structalias.c (alias_get_name): Rewrite.
6322         * tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
6323         SSA names.
6324         (warn_uninitialized_phi): Likewise.
6325         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
6326         anonymous SSA names to the expander.
6327         (determine_iv_cost): Anonymous SSA names are artificial.
6328         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
6329         Handle anonymous SSA names.
6330         * lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
6331         or if NULL, the type of the SSA name.
6332         * tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
6333         remap names as anonymous where appropriate.
6334         (insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
6335         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
6336         according to what we create conflicts for in out-of-SSA
6337         coalescing.
6338         * tree-parloops.c (separate_decls_in_region_name): Handle
6339         anonymous SSA names.
6340         (add_field_for_name): Likewise.
6341         * tree.c (get_name): Handle SSA names.
6342         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
6343         SSA_NAMEs.
6344         * tree-vect-loop-manip.c (adjust_debug_stmts): Use
6345         virtual_operand_p.
6346         * tree-sra.c (create_access_replacement): Give up generating
6347         a DECL_DEBUG_EXPR for SSA names in the memory reference.
6348         (replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
6349         * tree-complex.c (get_component_ssa_name): Handle anonymous
6350         SSA names.
6351         (set_component_ssa_name): Likewise.
6352         * tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
6353         * tree-object-size.c (collect_object_sizes_for): Handle
6354         uninitialized SSA names properly.
6355         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
6356         SSA_NAME_VAR.
6357         * ipa-split.c (test_nonssa_use): Likewise.
6358         (consider_split): Likewise.
6359         (mark_nonssa_use): Likewise.
6360
6361 2012-08-09  Jan Hubicka  <jh@suse.cz>
6362
6363         PR middle-end/54146
6364         * ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY
6365         parameter; honnor it.
6366         * ipa-inline.c (recursive_inlining): Update call
6367         of inline_call.
6368         (inline_small_functions): Likewise.
6369         (ipa_inline): Likewise.
6370         (inline_always_inline_functions): Likewise.
6371         (early_inline_small_functions): Likewise.
6372         (flatten_function): Do separate update of summary info.
6373         * ipa-inline.h (inline_update_overall_summary): Declare.
6374         (inline_call): Update.
6375         * ipa-inline-analysis.c (inline_merge_summary): Break out
6376         updating code to ...
6377         (inline_update_overall_summary): Likewise.
6378
6379 2012-08-09  Richard Henderson  <rth@redhat.com>
6380
6381         * config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET.
6382
6383         * config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before
6384         performing the compare for the restart loop.
6385
6386 2012-08-09  DJ Delorie  <dj@redhat.com>
6387
6388         * config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
6389         SET before extracting SET_SRC.
6390         (rl78_remove_unused_sets): Check for REG before extractnig REGNO.
6391
6392 2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>
6393
6394         PR target/54089
6395         * config/sh/sh-protos (shift_insns_rtx): Delete.
6396         (sh_ashlsi_clobbers_t_reg_p): Add.
6397         * config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns,
6398         ext_shift_amounts): Merge arrays of ints to array of structs.
6399         Adapt usage of arrays throughout the file.
6400         (shift_insns_rtx): Delete unused function.
6401         (sh_ashlsi_clobbers_t_reg_p): New function.
6402         * config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the
6403         final shift sequence will clobber T_REG.
6404         (ashlsi3_n): Split only if the final shift sequence will not
6405         clobber T_REG.
6406         (ashlsi3_n_clobbers_t): New insn_and_split.
6407
6408 2012-08-09  Steven Bosscher  <steven@gcc.gnu.org>
6409
6410         * calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE
6411         instead of looking at sbitmap n_bits member directly.
6412         * gcse.c (hoist_code): Likewise.
6413         * sched-rgn.c (split_edges): Likewise.
6414         * tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping,
6415         update_ssa): Likewise.
6416
6417 2012-08-09  Uros Bizjak  <ubizjak@gmail.com>
6418
6419         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred
6420         single unit register class for classes that contain registers form
6421         multiple units.
6422         (REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS,
6423         INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes.
6424
6425 2012-08-09  Martin Jambor  <mjambor@suse.cz>
6426
6427         * cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to
6428         offset, updated all users.  New field agg_contents.
6429         * ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR.
6430         (ipa_pass_through_data): New field agg_preserved.
6431         (ipa_ancestor_jf_data): Likewise.
6432         (ipa_member_ptr_cst): Removed.
6433         (ipa_agg_jf_item): New type.
6434         (ipa_agg_jump_function): Likewise.
6435         (ipa_jump_func): New field agg.  Removed field member_cst.
6436         (ipa_get_jf_pass_through_agg_preserved): New function.
6437         (ipa_get_jf_ancestor_agg_preserved): Likewise.
6438         (ipa_get_jf_member_ptr_pfn): Removed.
6439         (ipa_find_agg_cst_for_param): Declare.
6440         (ipa_load_from_parm_agg): Likewise.
6441         * ipa-prop.c (param_analysis_info): Fields modified and
6442         visited_statements rename to parm_modified and parm_visited_statements
6443         respectively, added fields ref_modified, ref_visited_statements,
6444         pt_modified and pt_visited_statements.
6445         (ipa_print_node_jump_functions_for_edge): Do not dump const member
6446         functions.  Dump agg_preserved flags and aggregate jump functions.
6447         (ipa_set_jf_simple_pass_through): Set also agg_preserved.
6448         (ipa_set_ancestor_jf): Likewise.
6449         (ipa_set_jf_arith_pass_through): Clear agg_preserved.
6450         (ipa_set_jf_member_ptr_cst): Removed.
6451         (is_parm_modified_before_stmt): Logic reversed, renamed to
6452         parm_preserved_before_stmt_p.  Cache visited bitmap only for
6453         naked DECL parameters.  All callers updated.
6454         (load_from_unmodified_param): Allow NULL parms_ainfo.
6455         (parm_ref_data_preserved_p): New function.
6456         (parm_ref_data_pass_through_p): Likewise.
6457         (ipa_load_from_parm_agg_1): Likewise.
6458         (ipa_load_from_parm_agg): Likewise.
6459         (compute_complex_assign_jump_func): Check if aggregate contents are
6460         preserved.
6461         (compute_complex_ancestor_jump_func): Likewise.
6462         (compute_scalar_jump_functions): Removed.
6463         (type_like_member_ptr_p): Also check field position are known and sane.
6464         (compute_pass_through_member_ptrs): Removed.
6465         (determine_cst_member_ptr): Likewise.
6466         (ipa_known_agg_contents_list): New type.
6467         (determine_known_aggregate_parts): New function.
6468         (compute_cst_member_ptr_arguments): Removed.
6469         (ipa_compute_jump_functions_for_edge): Compute all kinds of jump
6470         functions (scalar, aggregate and member pointer).
6471         (ipa_get_member_ptr_load_param): Incorporate into
6472         ipa_get_stmt_member_ptr_load_param, also pass back an offset.
6473         (ipa_note_param_call): Clear agg_contents.
6474         (ipa_analyze_indirect_call_uses): Also look for simple pointers loaded
6475         from aggregates.  In such cases, store offset of the called field.
6476         (ipa_analyze_node): Initialize new fields of param_analysis_info.
6477         (update_jump_functions_after_inlining): Handle aggregate contents.
6478         (ipa_find_agg_cst_for_param): New function.
6479         (try_make_edge_direct_simple_call): Handle called aggregate values.
6480         (update_indirect_edges_after_inlining): Make sure aggregate preserving
6481         jump functions comply with type compatibility requirements.
6482         (ipa_edge_duplication_hook): Copy also aggregate jump functions.
6483         (ipa_write_jump_function): Stream agg_preserved flags and aggregate
6484         jump functions.  Do not stream member pointer constant jump functions.
6485         (ipa_read_jump_function): Likewise.
6486         (ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info
6487         fields.
6488         (ipa_read_indirect_edge_info): Likewise.
6489
6490 2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>
6491
6492         PR target/39423
6493         * config/sh/predicates.md (mem_index_disp_operand): New predicate.
6494         * config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new
6495         mem_index_disp_operand predicate.
6496
6497 2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>
6498
6499         PR target/51244
6500         * config/sh/sh.md: Add negc extu sequence peephole.
6501         (movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
6502         (*movrt_negc): New insn.
6503         * config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
6504         gen_movnegt.
6505         * config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
6506         sh_emit_compare_and_branch, sh_emit_compare_and_set): Use
6507         get_t_reg_rtx.
6508         (sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.
6509
6510 2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>
6511
6512         PR target/50751
6513         * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg):
6514         Use arith_reg_operand predicate instead of register_operand.
6515         * config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept
6516         only mem, simplify.
6517
6518 2012-08-09  Uros Bizjak  <ubizjak@gmail.com>
6519
6520         * config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
6521         (alpha_pad_function_end): ... this.  Also insert NOP between
6522         sibling call and GP load.
6523         (alpha_reorg): Update call to alpha_pad_function_end.  Expand comment.
6524
6525 2012-08-09  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6526
6527         * config/i386/adxintrin.h: Remove guarding __ADX__ check.
6528         * config/i386/x86intrin.h: Likewise.
6529         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
6530         OPTION_MASK_ISA_ADX from needed options for
6531         __builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64.
6532         (ix86_expand_builtin): Use add<mode>3_carry in expanding of
6533         IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64.
6534
6535 2012-08-09  Andrey Belevantsev  <abel@ispras.ru>
6536
6537         PR rtl-optimization/53701
6538         * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
6539         Process not only expr's vinsns but all old vinsns from expr's
6540         history of changes.
6541         (update_and_record_unavailable_insns): Clarify comment.
6542
6543 2012-08-09  Bernd Schmidt  <bernds@codesourcery.com>
6544
6545         * reload.c (find_valid_class_1): New static function.
6546         (push_reload): Use it when reloading a SYMBOL_REG as the inner
6547         of a subreg.  Keep better track of needed classes for the
6548         secondary memory case.
6549         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to
6550         GENERAL_REGS.
6551         * reload1.c (replaced_subreg): New static function.
6552         (gen_reload): Use it when deciding whether to use secondary
6553         memory.
6554
6555 2012-08-09  Richard Guenther  <rguenther@suse.de>
6556
6557         * tree.h (SSA_VAR_P): Simplify.
6558         * tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
6559         * fold-const.c (fold_comparison): Check for default def first
6560         before checking for PARM_DECL.
6561         * tree-complex.c (get_component_ssa_name): Likewise.
6562         * tree-inline.c (remap_ssa_name): Likewise.
6563         * tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
6564         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
6565         (find_what_p_points_to): Likewise.
6566         * tree-ssa-operands.c (add_stmt_operand): Simplify.
6567
6568 2012-08-08  Joseph Myers  <joseph@codesourcery.com>
6569
6570         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
6571         IOR to a constant if one operand has side effects.
6572
6573 2012-08-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6574
6575         * builtins.c (expand_builtin_atomic_compare_exchange): Pass old
6576         value operand as MEM to expand_atomic_compare_and_swap.
6577
6578         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept
6579         nonimmediate_operand for old value; generate load and store if
6580         needed.
6581         * config/s390/s390.c (s390_expand_cs_hqi): Accept any operand
6582         as vtarget.
6583
6584 2012-08-08  Steven Bosscher  <steven@gcc.gnu.org>
6585
6586         PR middle-end/54146
6587         * gimpify.c (gimplify_body): Only verify_gimple_in_seq with
6588         checking enabled.
6589         * tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is
6590         a gimple_reg if checking is enabled.
6591         (find_uses_to_rename_stmt): Only look at non-virtual USE operands.
6592         * tree-into-ssa (compute_global_livein): Change the worklist
6593         type from an array to a VEC.
6594
6595 2012-08-08  Richard Guenther  <rguenther@suse.de>
6596
6597         * tree-ssa-operands.h (virtual_operand_p): Declare.
6598         * tree-ssa-operands.c (virtual_operand_p): New predicate.
6599         * gimple.c (is_gimple_reg): Use virtual_operand_p.
6600         * tree-into-ssa.c (prepare_block_for_update): Likewise.
6601         * tree-vect-loop-manip.c (adjust_debug_stmts): Likewise.
6602
6603 2012-08-08  Richard Guenther  <rguenther@suse.de>
6604
6605         * tree-call-cdce.c (check_pow): Simplify.
6606         (gen_conditions_for_pow_int_base): Likewise.
6607         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not handle
6608         virtual operands here.
6609         * tree-ssa-operands.c (get_name_decl): Remove unused function.
6610         * gimplify.c (gimple_regimplify_operands): Remove dead code.
6611         * tree-vrp.c (get_value_range): Move SSA_NAME_VAR access.
6612         * tree-parloops.c (create_phi_for_local_result): Use copy_ssa_name.
6613         * value-prof.c (gimple_ic): Use duplicate_ssa_name.
6614         (gimple_stringop_fixed_value): Likewise.
6615         * tree.c (needs_to_live_in_memory): Remove SSA name handling.
6616         * tree-stdarg.c (find_va_list_reference): Store SSA_NAME_VERSIONs
6617         in the bitmap alongside shifted DECL_UIDs.
6618         (va_list_counter_struct_op): Likewise.
6619         (va_list_ptr_read): Likewise.
6620         (va_list_ptr_write): Likewise.
6621         (check_va_list_escapes): Likewise.
6622         (check_all_va_list_escapes): Likewise.
6623         (execute_optimize_stdarg): Likewise.
6624         * tree-outof-ssa.c (insert_backedge_copies): Use copy_ssa_name.
6625
6626 2012-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
6627             H.J. Lu  <hongjiu.lu@intel.com>
6628
6629         PR rtl-optimization/54157
6630         * combine.c (gen_lowpart_for_combine): Don't return identity
6631         for CONST or symbolic reference.
6632
6633 2012-08-08  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6634
6635         * common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
6636         (OPTION_MASK_ISA_ADX_UNSET): Likewise.
6637         (ix86_handle_option): Handle madx option.
6638         * config.gcc (i[34567]86-*-*): Add adxintrin.h.
6639         (x86_64-*-*): Likewise.
6640         * config/i386/adxintrin.h: New header.
6641         * config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX
6642         support.
6643         * config/i386/i386-builtin-types.def
6644         (UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type.
6645         (UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise.
6646         * config/i386/i386-c.c: Define __ADX__ if needed.
6647         * config/i386/i386.c (ix86_target_string): Define -madx option.
6648         (PTA_ADX): New.
6649         (ix86_option_override_internal): Handle new option.
6650         (ix86_valid_target_attribute_inner_p): Add OPT_madx.
6651         (ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32,
6652         IX86_BUILTIN_ADDCARRYX64.
6653         (ix86_init_mmx_sse_builtins): Define corresponding built-ins.
6654         (ix86_expand_builtin): Handle these built-ins.
6655         (ix86_expand_args_builtin): Handle new function types.
6656         * config/i386/i386.h (TARGET_ADX): New.
6657         * config/i386/i386.md (adcx<mode>3): New define_insn.
6658         * config/i386/i386.opt (madx): New.
6659         * config/i386/x86intrin.h: Include adxintrin.h.
6660
6661 2012-08-08  Nick Clifton  <nickc@redhat.com>
6662
6663         * config/rl78/rl78.c: Include tree-pass.h.
6664
6665 2012-08-08  Steven Bosscher  <steven@gcc.gnu.org>
6666
6667         PR middle-end/54146
6668         * ira.c (init_live_subregs): Take live_subregs_used as a bitmap.
6669         (build_insn_chain): Make live_subregs_used a bitmap.
6670         Use SBITMAP_SIZE to ignore the paradoxical bytes of subregs.
6671         Use sbitmap_free to free the live_subreg sbitmaps.
6672
6673         PR middle-end/54146
6674         * ifcvt.c: Include pointer-set.h.
6675         (cond_move_process_if_block): Change type of then_regs and
6676         else_regs from alloca'd array to pointer_sets.
6677         (check_cond_move_block): Update for this change.
6678         (cond_move_convert_if_block): Likewise.
6679         * Makefile.in: Fix dependencies for ifcvt.o.
6680
6681 2012-08-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6682
6683         * gimple-ssa-strength-reduction.c (struct incr_info_d): New struct.
6684         (incr_vec): New static var.
6685         (incr_vec_len): Likewise.
6686         (address_arithmetic_p): Likewise.
6687         (stmt_cost): Remove dead assignment.
6688         (dump_incr_vec): New function.
6689         (cand_abs_increment): Likewise.
6690         (lazy_create_slsr_reg): Likewise.
6691         (incr_vec_index): Likewise.
6692         (count_candidates): Likewise.
6693         (record_increment): Likewise.
6694         (record_increments): Likewise.
6695         (unreplaced_cand_in_tree): Likewise.
6696         (optimize_cands_for_speed_p): Likewise.
6697         (lowest_cost_path): Likewise.
6698         (total_savings): Likewise.
6699         (analyze_increments): Likewise.
6700         (ncd_for_two_cands): Likewise.
6701         (nearest_common_dominator_for_cands): Likewise.
6702         (profitable_increment_p): Likewise.
6703         (insert_initializers): Likewise.
6704         (introduce_cast_before_cand): Likewise.
6705         (replace_rhs_if_not_dup): Likewise.
6706         (replace_one_candidate): Likewise.
6707         (replace_profitable_candidates): Likewise.
6708         (analyze_candidates_and_replace): Handle candidates with SSA-name
6709         strides.
6710
6711 2012-08-07  Steven Bosscher  <steven@gcc.gnu.org>
6712
6713         * cfg.c (debug_bb): Do not set TDF_BLOCKS.
6714         * cfghooks.c (dump_bb): Honor ~TDF_BLOCKS.
6715         * pretty-print.c (pp_base_flush): Do not add a newline, and do not
6716         clear pp_needs_newline.
6717         * pretty-print.h (pp_newline_and_flush): New macro with the behavior
6718         of pp_base_flush before the above change.
6719         * langhooks.c (lhd_print_error_function): Use pp_newline_and_flush
6720         instead of pp_flush.
6721         * diagnostic.c (diagnostic_finish): Likewise.
6722         (diagnostic_report_diagnostic): Likewise.
6723         (verbatim): Likewise.
6724         (error_recursion): Likewise.
6725         * tree-pretty-print.c (print_generic_stmt): Likewise.
6726         (print_generic_stmt_indented): LIkewise.
6727         * gimple-pretty-print.c (print_gimple_stmt): Likewise.
6728         (print_gimple_seq): Likewise.
6729         (gimple_dump_bb_buff): Likewise.
6730
6731 2012-08-07  Uros Bizjak  <ubizjak@gmail.com>
6732
6733         PR debug/54177
6734         * var-tracking.c (var_lowpart): Exit early for matched modes.
6735
6736 2012-08-07  Richard Henderson  <rth@redhat.com>
6737
6738         * config/s390/s390.c (s390_emit_compare_and_swap): Update for
6739         atomic_compare_and_swapsi_internal name change.
6740         (s390_expand_insv): Try RISBG last, not requiring operands in
6741         registers but forcing them there.  Try a limited form of ICM.
6742         (s390_two_part_insv): New.
6743         (s390_expand_cs_hqi): Use it.  Update for atomic optabs.
6744         * config/s390/s390.md (UNSPEC_MOVA): New.
6745         (TDSI): Remove mode iterator.
6746         (DGPR, DINT, TDI): New mode iterators.
6747         (td): New mode attribute.
6748         (mem_signal_fence): New.
6749         (mem_thread_fence): Rename from memory_barrier; update for model arg.
6750         (mem_thread_fence_1): Rename from *memory_barrier.
6751         (atomic_load<DINT>, atomic_store<DINT>): New expanders.
6752         (atomic_loaddi_1, atomic_loadti_1): New.
6753         (atomic_storedi_1, atomic_storeti_1): New.
6754         (sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove.
6755         (atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New.
6756         (atomic_compare_and_swap<DGPR>_internal): New.
6757         (*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove.
6758         (*atomic_compare_and_swap<TDI>_1): New.
6759         (*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New.
6760         (sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove.
6761         (atomic_fetch_<ATOMIC_Z196><GPR>): New.
6762         (atomic_fetch_<ATOMC_Z196><GPR>_iaf): New.
6763         (sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove.
6764         (sync_new_<ATOMIC><HQI>): Remove.
6765         (atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New.
6766         (atomic_<ATOMIC>_fetch<HQI>): New.
6767         (sync_lock_test_and_set<HQI>): Remove.
6768         (atomic_exchange<HQI>): New.
6769
6770 2012-08-07  Paul Brook  <paul@codesourcery.com>
6771             Sandra Loosemore  <sandra@codesourcery.com>
6772
6773         * except.c (switch_to_exception_section): Place tables for
6774         DECL_ONE_ONLY functions in comdat groups.
6775
6776 2012-08-07  Richard Guenther  <rguenther@suse.de>
6777
6778         * tree-flow.h (copy_ssa_name_fn): New function.
6779         (duplicate_ssa_name_fn): Likewise.
6780         * tree-flow-inline.h (copy_ssa_name): New function.
6781         (duplicate_ssa_name): Likewise.
6782         * tree-ssanames.c (copy_ssa_name_fn): New function.
6783         (duplicate_ssa_name): Rename to ...
6784         (duplicate_ssa_name_fn): ... this and adjust.
6785         * tree-tailcall.c (update_accumulator_with_ops): Use copy_ssa_name.
6786         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
6787         Likewise.
6788         (slpeel_update_phi_nodes_for_guard2): Likewise.
6789         (slpeel_tree_peel_loop_to_edge): Likewise.
6790         (vect_loop_versioning): Likewise.
6791         * tree-parloops.c (transform_to_exit_first_loop): Likewise.
6792         (create_parallel_loop): Likewise.
6793         * ipa-split.c (split_function): Likewise.
6794         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
6795         (vect_create_epilog_for_reduction): Likewise.
6796         * tree-vect-data-refs.c (bump_vector_ptr): Likewise.
6797         (vect_setup_realignment): Likewise.
6798         * tree-vect-stmts.c (vectorizable_load): Likewise.
6799         * tree-switch-conversion.c (build_one_array): Likewise.
6800         (gen_def_assigns): Likewise.
6801         * tree-cfg.c (gimple_make_forwarder_block): Likewise.
6802         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
6803         create_zero_dim_array with the SSA name.
6804         (rewrite_phi_out_of_ssa): Likewise.
6805         (rewrite_cross_bb_scalar_dependence): Likewise.  Use copy_ssa_name.
6806
6807 2012-08-07  Richard Guenther  <rguenther@suse.de>
6808
6809         * tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF
6810         bit of the old name when we clear the slot.
6811         * tree-ssa-live.c (remove_unused_locals): Release any default
6812         def associated with an unused var.
6813         * tree-ssa-copy.c (may_propagate_copy_into_asm): Always return true.
6814
6815 2012-08-07  Richard Guenther  <rguenther@suse.de>
6816
6817         * tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables
6818         we rewrite into SSA form.
6819         (rewrite_enter_block): Adjust.
6820         * gimple-iterator.c (gsi_replace): Also allow replacement with
6821         a stmt without a lhs.
6822         * tree-ssa-live.c (remove_unused_locals): Remove code handling
6823         clobbers of SSA names.
6824         * tree-nested.c (convert_local_reference_stmt): Remove clobbers
6825         for variables we access through the local chain.
6826         * tree-cfg.c (verify_gimple_assign_single): Verify clobbers
6827         clobber full decls only.
6828
6829 2012-08-07  Richard Guenther  <rguenther@suse.de>
6830
6831         * gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT.
6832         * tree-phinodes.c (make_phi_node): Allow a NULL var.
6833         * tree-into-ssa.c (insert_phi_nodes_for): Simplify.
6834         * tree-complex.c (update_phi_components): Likewise.
6835         * tree-ssa-loop-manip.c (create_iv): Likewise.
6836         (add_exit_phis_edge): Likewise.
6837         (split_loop_exit_edge): Likewise.
6838         (tree_transform_and_unroll_loop): Likewise.
6839         * value-prof.c (gimple_ic): Likewise.
6840         (gimple_stringop_fixed_value): Likewise.
6841         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
6842         * omp-low.c (expand_parallel_call): Likewise.
6843         (expand_omp_for_static_chunk): Likewise.
6844         (expand_omp_atomic_pipeline): Likewise.
6845         * tree-parloops.c (create_phi_for_local_result): Likewise.
6846         (transform_to_exit_first_loop): Likewise.
6847         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
6848         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
6849         * tree-predcom.c (initialize_root_vars): Likewise.
6850         (initialize_root_vars_lm): Likewise.
6851         * sese.c (sese_add_exit_phis_edge): Likewise.
6852         * gimple-streamer-in.c (input_phi): Likewise.
6853         * tree-inline.c (copy_phis_for_bb): Likewise.
6854         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
6855         * tree-cfg.c (gimple_make_forwarder_block): Likewise.
6856         (gimple_duplicate_bb): Likewise.
6857
6858 2012-08-07  Nick Clifton  <nickc@redhat.com>
6859
6860         * config/mn10300/mn10300.c (mn10300_expand_prologue): Report
6861         stack usage if requested.
6862
6863 2012-08-06  Cary Coutant  <ccoutant@google.com>
6864
6865         * cgraphunit.c (assemble_thunk): Add source line info.
6866         * final.c (final): Check for non-null cfg pointer.
6867
6868 2012-08-06  Sandra Loosemore  <sandra@codesourcery.com>
6869             Maxim Kuvyrkov  <maxim@codesourcery.com>
6870             Julian Brown  <julian@codesourcery.com>
6871
6872         * config/mips/24k.md (r24k_unknown_store): Delete special handling
6873         for cprestore.
6874         (r24k_int_load, r24k_int_arith, r24k_int_mul3, r24k_int_mfhilo)
6875         (r24k_int_cop, r24k_int_multi)
6876         (r24kf2_1_fcvt_f2i, r24kf2_1_fxfer)
6877         (r24kf1_1_fcvt_f2i, r24kf1_1_fxfer): Use mips_store_data_bypass_p
6878         instead of store_data_bypass_p.
6879         * config/mips/74k.md (r74k_int_store): Delete special handling for
6880         cprestore.
6881         (r74k_int_load, r74k_int_logical, r74k_int_arith, r74k_int_cmove):
6882         Use mips_store_data_bypass_p instead of store_data_bypass_p.
6883
6884 2012-08-06  Marc Glisse  <marc.glisse@inria.fr>
6885
6886         PR tree-optimization/51938
6887         PR tree-optimization/52005
6888         * tree-ssa-ifcombine.c (ifcombine_ifandif): New parameters for
6889         inverted conditions.
6890         (ifcombine_iforif): Remove, merge code into ifcombine_ifandif.
6891         (tree_ssa_ifcombine_bb): Update calls to the above. Detect !a&&b
6892         and !a||b patterns.
6893
6894 2012-08-06  Olivier Hainque  <hainque@adacore.com>
6895
6896         * tree-emutls.c (new_emutls_decl): When a var_section is requested by
6897         the target, attach the new decl to that, not to the template section.
6898
6899 2012-08-06  Tom de Vries  <tom@codesourcery.com>
6900
6901         * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in
6902         unsigned type.
6903
6904 2012-08-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6905
6906         * doc/invoke.texi: Document AMD btver2.
6907         * doc/extend.texi: Document AMD btver1 and btver2.
6908
6909 2012-08-04  Sandra Loosemore  <sandra@codesourcery.com>
6910             Richard Sandiford  <rdsandiford@googlemail.com>
6911
6912         * config/mips/mips.c (mips_option_override): Check -fpic
6913         for compatibility with -mabicalls and ABI.
6914
6915 2012-08-04  Catherine Moore  <clm@codesourcery.com>
6916             Sandra Loosemore  <sandra@codesourcery.com>
6917
6918         * config/mips/xlr.md (ir_xlr_alu_clz): New insn_reservation.
6919         (ir_xlr_alu): Remove clz.
6920         * config/mips/mips-cpus.def (xlr): Set PTF_AVOID_BRANCHLIKELY.
6921
6922 2012-08-04  Richard Earnshaw  <rearnsha@arm.com>
6923
6924         * arm.c (arm_gen_constant): Use SImode when preparing operands for
6925         gen_extzv_t2.
6926
6927 2012-08-04  Uros Bizjak  <ubizjak@gmail.com>
6928
6929         * config/i386/i386.h (QI_REGNO_P): New define.
6930         (ANY_QI_REGNO_P): Ditto.
6931         (GENERAL_REGNO_P): Use IN_RANGE macro.
6932         (QI_REG_P): Use QI_REGNO_P.
6933         (ANY_QI_REG_P): Use GENERAL_REGNO_P and QI_REGNO_P.
6934         (HARD_REGNO_CALLER_SAVE_MODE): Use QI_REGNO_P.
6935         * config/i386/i386.c (ix86_hard_regno_mode_ok): Ditto.
6936         (x86_extended_QIreg_mentioned_p): Ditto.  Also check if
6937         register is a general register.
6938
6939 2012-08-03  Uros Bizjak  <ubizjak@gmail.com>
6940
6941         * config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use
6942         incdec_operand predicate to return INC or DEC insn mnemonic.
6943         Add %K operand modifier.
6944         (atomic_add<mode>): Use incdec_operand predicate to
6945         return INC or DEC insn mnemonic.
6946         (atomic_dec<mode>): Ditto.
6947
6948 2012-08-03  Michael Matz  <matz@suse.de>
6949
6950         PR tree-optimization/54146
6951         * cfgexpand.c (add_scope_conflicts_1): Use bitmap_ior_into.
6952         (add_scope_conflicts): Iterate in RPO order.
6953         (add_stack_protection_conflicts): Iterate over the other triangle.
6954         (fini_vars_expansion): Clear stack_vars_sorted.
6955
6956 2012-08-03  Marc Glisse  <marc.glisse@inria.fr>
6957
6958         PR tree-optimization/30318
6959         * double-int.c (mul_double_wide_with_sign): New function.
6960         (mul_double_with_sign): Call the new function.
6961         * double-int.h (mul_double_wide_with_sign): Declare the new function.
6962         * tree-vrp.c (extract_range_from_binary_expr_1) [MULT_EXPR]:
6963         Handle integer types that wrap on overflow.
6964         (quad_int_cmp): New helper function.
6965         (quad_int_pair_sort): Likewise.
6966
6967 2012-08-03  Richard Guenther  <rguenther@suse.de>
6968
6969         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query
6970         is_gimple_reg on the SSA name, not its variable.
6971         (vect_update_ivs_after_vectorizer): Likewise.
6972         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
6973         * tree-if-conv.c (if_convertible_phi_p): Likewise.
6974         (predicate_scalar_phi): Likewise.
6975         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
6976         (vect_analyze_scalar_cycles_1): Likewise.
6977         * tree-ssa-live.c (register_ssa_partition_check): Likewise.
6978         * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
6979         * tree-ssa-reassoc.c (phi_rank): Likewise.
6980         * tree-parloops.c (separate_decls_in_region_name): Use
6981         replace_ssa_name_symbol.
6982         * tree-predcom.c (base_names_in_chain_on): Likewise.
6983         * matrix-reorg.c (update_type_size): Query the type of the SSA name,
6984         not its variable.
6985         * gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise.
6986         (create_mul_imm_cand): Likewise.
6987         (create_add_ssa_cand): Likewise.
6988         (create_add_imm_cand): Likewise.
6989         (slsr_process_add): Likewise.
6990         * tree-inline.c (remap_ssa_name): Do not set the type of the
6991         new SSA_NAME.
6992         * tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify assert.
6993         Check for default def first.
6994
6995 2012-08-04  Steven Bosscher  <steven@gcc.gnu.org>
6996
6997         * cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns.
6998
6999         * sched-vis.c (print_pattern): Handle SEQUENCE also.
7000
7001 2012-08-02  Richard Henderson  <rth@redhat.com>
7002
7003         Revert:
7004         PR 34548
7005         * function.h (struct rtl_data): Add max_dynamic_stack_alignment.
7006         * cfgexpand.c (gimple_expand_cfg): Initialise it.
7007         * explow.c (allocate_dynamic_stack_space): Set it.  Simplify
7008         alignment requirements given the known alignment of dynamic_offset.
7009         * function.c (instantiate_virtual_regs): Align dtnamic_offset.
7010
7011 2012-08-02  Kenneth Zadeck <zadeck@naturalbridge.com>
7012
7013         * cfgexpand.c (expand_debug_locations):  Encapsulate test for
7014         CONST_DOUBLE in macro.
7015         * combine.c (try_combine, gen_lowpart_for_combine): Ditto.
7016         * cprop.c (implicit_set_cond_p): Ditto.
7017         * cselib.c (rtx_equal_for_cselib_1): Ditto.
7018         * expmed.c (expand_mult): Ditto.
7019         * expr.c (convert_modes): Ditto.
7020         * ira-costs.c (record_reg_classes): Ditto.
7021         * ira-lives.c (single_reg_class): Ditto.
7022         * optabs.c (expand_copysign_absneg, expand_copysign): Ditto.
7023         * print-rtl.c (print_rtx): Ditto.
7024         * recog.c (simplify_while_replacing, const_double_operand)
7025         (asm_operand_ok, constrain_operands): Ditto.
7026         * reg-stack.c (subst_stack_regs_pat): Ditto.
7027         * reload.c (find_reloads, find_equiv_reg): Ditto.
7028         * rtlanal.c (replace_rtx): Remove test.
7029         * rtlanal.c (constant_pool_constant_p, split_double): Encapsulate
7030         test for CONST_DOUBLE in macro.
7031         * simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference)
7032         (simplify_unary_operation_1, simplify_const_unary_operation)
7033         (simplify_binary_operation_1, simplify_const_binary_operation)
7034         (simplify_relational_operation_1)
7035         (simplify_const_relational_operations)
7036         (implify_subreg): Ditto.
7037         * varasm.c (output_constant_pool_2): Ditto.
7038         * rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New macros.
7039         * rtl.def (CONST_DOUBLE):  Updated comments.
7040
7041 2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>
7042
7043         PR target/51931
7044         * config/mips/mips-protos.h (mips_strip_unspec_address): Declare.
7045         * config/mips/mips.c (mips_strip_unspec_address): Make extern.
7046         (mips16_rewrite_pool_constant): Make a copy of the pool constant
7047         before adding to a PC-relative table.
7048         (mips16_lay_out_constants): Add a SPLIT_P parameter.
7049         (mips16_load_branch_target, mips16_split_long_branches): New functions.
7050         (mips_reorg): Update call to mips16_lay_out_constants.
7051         Call mips16_split_long_branches.
7052         * config/mips/predicates.md (pc_or_label_operand): Delete.
7053         * config/mips/mips.md (length): Add a calculation for MIPS16 branches.
7054         Move the extended_mips16 handling further down.
7055         (*branch_equality<mode>_mips16): Replace use pc_or_label_operand
7056         with explicit label_ref and pc.  Follow the usual operand numbering.
7057         (*branch_equality<mode>_mips16_inverted): New pattern.
7058         (*jump_mips16): Add length attribute.
7059         (indirect_jump_and_restore_<mode>): New pattern.
7060         (consttable_int): Call mips_strip_unspec_address on the operand.
7061
7062 2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>
7063
7064         * recog.c (split_insn): Copy the original SET_SRC before using
7065         it as a note.
7066
7067 2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>
7068
7069         * reorg.c (dbr_schedule): Delete REG_BR_PRED loop.
7070
7071 2012-08-02  Marc Glisse  <marc.glisse@inria.fr>
7072
7073         PR tree-optimization/53805
7074         * fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and
7075         UNORDERED_EXPR even for trapping floating point.
7076
7077 2012-08-02  H.J. Lu  <hongjiu.lu@intel.com>
7078
7079         PR middle-end/53321
7080         PR middle-end/53865
7081         * ipa-inline-analysis.c (inline_free_summary): Return if
7082         inline_edge_summary_vec is NULL.
7083
7084         * ipa-split.c (execute_split_functions): Check if a function
7085         is inlinable only if inline_edge_summary_vec != NULL.
7086
7087         * ipa.c (symtab_remove_unreachable_nodes): Restore
7088         cgraph_propagate_frequency call when something was changed.
7089         (free_inline_summary): New function.
7090         (pass_ipa_free_inline_summary): New pass.
7091
7092         * passes.c (init_optimization_passes): Add
7093         pass_ipa_free_inline_summary before pass_ipa_tree_profile.
7094
7095         * timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
7096
7097         * tree-pass.h (pass_ipa_free_inline_summary): New.
7098
7099 2012-08-02  Richard Earnshaw  <rearnsha@arm.com>
7100
7101         * arm.c (arm_gen_constant): Use UBFX for some AND operations when
7102         available.
7103
7104 2012-08-02  Richard Guenther  <rguenther@suse.de>
7105
7106         * tree-into-ssa.c (struct common_info_d): New struct.
7107         (struct var_info_d, struct ssa_name_info): Use it.
7108         (get_ssa_name_ann): Adjust.
7109         (get_phi_state, set_phi_state): Remove.
7110         (get_common_info): New function.
7111         (get_current_def, set_current_def): Adjust.
7112         (get_def_blocks_for): Take a common info as param.
7113         (set_def_block): Call get_common_info once.
7114         (set_livein_block): Likewise.
7115         (find_def_blocks_for): Adjust.
7116         (insert_phi_nodes): Likewise.
7117         (register_new_def): Call get_common_info once.
7118         (get_reaching_def): Likewise.
7119         (rewrite_debug_stmt_uses): Likewise.
7120         (rewrite_leave_block): Likewise.
7121         (dump_currdefs): Likewise.
7122         (debug_var_infos_r): Adjust.
7123         (register_new_update_single): Call get_common_info once.
7124         (maybe_replace_use_in_debug_stmt): Likewise.
7125         (rewrite_update_leave_block): Likewise.
7126         (mark_use_interesting): Adjust.
7127         (create_new_def_for): Likewise.
7128         (update_ssa): Likewise.
7129
7130 2012-08-02  Michael Matz  <matz@suse.de>
7131
7132         * tree-ssa-live.c (set_is_used): Return a bool.
7133         (mark_all_vars_used): Don't take data argument.
7134         (mark_all_vars_used_1): Adjust calls to above, merge handling
7135         of local and global vars.
7136         (remove_unused_scope_block_p): Don't take global_unused_vars,
7137         merge handling of local and global vars.
7138         (remove_unused_locals): Don't allocate/fill/pass global_unused_vars,
7139         use is_used_p for local and global vars.
7140
7141 2012-08-02  Richard Guenther  <rguenther@suse.de>
7142
7143         * tree-flow.h (make_rename_temp): Remove.
7144         * tree-dfa.c (make_rename_temp): Likewise.
7145         * cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg
7146         instead of make_rename_temp.
7147         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
7148         expand_omp_atomic_pipeline): Likewise.
7149         * trans-mem.c (tm_log_emit_save_or_restores, build_tm_load,
7150         build_tm_store, expand_call_tm, expand_transaction,
7151         ipa_tm_insert_gettmclone_call): Likewise.
7152         * tree-complex.c (expand_complex_div_wide): Likewise.
7153         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
7154         Likewise.
7155         * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
7156         Likewise.
7157         * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
7158         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
7159         gimple_mod_subtract): Likewise.
7160
7161 2012-08-02  Richard Guenther  <rguenther@suse.de>
7162
7163         * tree-flow.h (set_default_def): Rename to ...
7164         (set_ssa_default_def): ... this.  Take a struct function argument.
7165         (gimple_default_def): Rename to ...
7166         (ssa_default_def): ... this.
7167         (get_or_create_ssa_default_def): New function.
7168         * tree-dfa.c: Likewise.
7169         (dump_variable): Adjust.
7170         * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check
7171         for used parameters.
7172         * ipa-split.c (consider_split): Adjust, avoid repeated default-def
7173         lookups.
7174         (split_function): Likewise.
7175         * lto-streamer-in.c (input_ssa_names): Adjust.
7176         * omp-low.c (expand_omp_taskreg): Likewise.
7177         * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun.
7178         * tree-complex.c (init_parameter_lattice_values): Adjust.
7179         (get_component_ssa_name): Likewise.
7180         (update_parameter_components): Likewise.
7181         * tree-inline.c (remap_ssa_name): Likewise.
7182         (setup_one_parameter): Likewise.
7183         (initialize_inlined_parameters): Likewise.
7184         (declare_return_variable): Likewise.
7185         (expand_call_inline): Likewise.
7186         (tree_function_versioning): Likewise.
7187         * tree-into-ssa.c (get_default_def_for): Remove.
7188         (get_reaching_def): Use get_or_create_ssa_default_def instead.
7189         * tree-predcom.c (replace_ref_with): Adjust.
7190         * tree-sra.c (get_repl_default_def_ssa_name): Likewise.
7191         (is_unused_scalar_param): Likewise.
7192         (ptr_parm_has_direct_uses): Likewise.
7193         (sra_ipa_reset_debug_stmts): Likewise.
7194         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust.
7195         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
7196         * tree-ssa-live.c (verify_live_on_entry): Likewise.
7197         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise,
7198         avoid repeated default def lookups.
7199         * tree-ssa-sccvn.c (run_scc_vn): Likewise.
7200         * tree-tailcall.c (arg_needs_copy_p): Adjust.
7201         (tree_optimize_tail_calls_1): Likewise.
7202
7203 2012-08-02  Richard Guenther  <rguenther@suse.de>
7204
7205         PR tree-optimization/50672
7206         Revert
7207         2012-08-01  Richard Guenther  <rguenther@suse.de>
7208
7209         * tree-ssa-tail-merge.c (release_last_vdef): Remove.
7210         (replace_block_by): Adjust.
7211
7212 2012-08-02  Richard Guenther  <rguenther@suse.de>
7213
7214         * tree-dfa.c (referenced_var_lookup): Remove.
7215         (find_referenced_vars): Remove.
7216         (pass_referenced_vars): Likewise.
7217         (make_rename_temp): Do not add referenced vars.
7218         (dump_referenced_vars): Remove.
7219         (debug_referenced_vars): Likewise.
7220         (dump_dfa_stats): Do not dump referenced var stats.
7221         (find_vars_r): Remove.
7222         (find_referenced_vars_in): Likewise.
7223         (referenced_var_check_and_insert): Likewise.
7224         (add_referenced_var_1): Likewise.
7225         (remove_referenced_var): Likewise.
7226         * tree-flow.h (referenced_var_lookup): Likewise.
7227         (struct gimple_df): Remove referenced_vars member.
7228         (typedef referenced_var_iterator): Remove.
7229         (FOR_EACH_REFERENCED_VAR): Likewise.
7230         (num_referenced_vars): Likewise.
7231         (debug_referenced_vars, dump_referenced_vars): Likewise.
7232         (add_referenced_var_1, add_referenced_var): Likewise.
7233         (remove_referenced_var): Likewise.
7234         (find_referenced_vars_in): Likewise.
7235         * tree-flow-inline.h (gimple_referenced_vars): Remove.
7236         (first_referenced_var): Likewise.
7237         (end_referenced_vars_p): Likewise.
7238         (next_referenced_var): Likewise.
7239         * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert.
7240         * gimple-pretty-print.c (pp_points_to_solution): Dump UIDs
7241         unconditionally.
7242         * tree-into-ssa.c (dump_decl_set): Likewise.
7243         (pass_build_ssa): Do not require PROP_referenced_vars.
7244         * tree-ssa.c (target_for_debug_bind): Virtual operands are
7245         not suitable, but all register type vars are.
7246         (init_tree_ssa): Do not allocate referenced vars.
7247         (delete_tree_ssa): Do not free referenced vars.
7248         * cgraphunit.c (init_lowered_empty_function): Do not set
7249         PROP_referenced_vars.
7250         (assemble_thunk): Do not add referenced vars.
7251         * gimple-fold.c (canonicalize_constructor_val): Likewise.
7252         (gimplify_and_update_call_from_tree): Likewise.
7253         * gimple-streamer-in.c (input_bb): Likewise.
7254         * passes.c (init_optimization_passes): Do not run
7255         pass_referenced_vars.
7256         (dump_properties): Do not dump PROP_referenced_vars.
7257         * tree-inline.c (remap_decl): Do not add referenced vars.
7258         (remap_gimple_op_r): Likewise.
7259         (copy_tree_body_r): Likewise.
7260         (copy_bb): Likewise.
7261         (setup_one_parameter): Likewise.
7262         (declare_return_variable): Likewise.
7263         (copy_decl_for_dup_finish): Likewise.
7264         (copy_arguments_for_versioning): Likewise.
7265         (tree_function_versioning): Likewise.
7266         * tree-pass.h (PROP_referenced_vars): Remove.
7267         (pass_referenced_vars): Likewise.
7268         * tree-profile.c (gimple_gen_edge_profiler): Do not add
7269         referenced vars.
7270         (gimple_gen_interval_profiler): Likewise.
7271         (gimple_gen_pow2_profiler): Likewise.
7272         (gimple_gen_one_value_profiler): Likewise.
7273         (gimple_gen_ic_profiler): Likewise.
7274         (gimple_gen_average_profiler): Likewise.
7275         (gimple_gen_ior_profiler): Likewise.
7276         * tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars.
7277         * tree-cfg.c (replace_ssa_name): Do not add referenced vars.
7278         (move_stmt_op): Likewise.
7279         * tree-ssa-operands.c (create_vop_var): Likewise.
7280         * gimple-low.c (record_vars_into): Likewise.
7281         * gimplify.c (gimple_regimplify_operands): Likewise.
7282         (force_gimple_operand_1): Likewise.
7283         * omp-low.c (expand_omp_for_generic): Likewise.
7284         (expand_omp_for_static_chunk): Likewise.
7285         (expand_omp_atomic_pipeline): Likewise.
7286         * graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise.
7287         (translate_clast_assignment): Likewise.
7288         * graphite-sese-to-poly.c (create_zero_dim_array): Likewise.
7289         (handle_scalar_deps_crossing_scop_limits): Likewise.
7290         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
7291         * ipa-split.c (split_function): Likewise.
7292         * matrix-reorg.c (transform_access_sites): Likewise.
7293         * trans-mem.c (tm_log_add): Likewise.
7294         (ipa_tm_insert_gettmclone_call): Likewise.
7295         * tree-complex.c (create_one_component_var): Likewise.
7296         * tree-if-conv.c (ifc_temp_var): Likewise.
7297         * tree-parloops.c (take_address_of): Likewise.
7298         (initialize_reductions): Likewise.
7299         (separate_decls_in_region_name): Likewise.
7300         (create_call_for_reduction_1): Likewise.
7301         (separate_decls_in_region): Likewise.
7302         * tree-predcom.c (predcom_tmp_var): Likewise.
7303         (reassociate_to_the_same_stmt): Likewise.
7304         * tree-sra.c (build_ref_for_offset): Likewise.
7305         (create_access_replacement): Likewise.
7306         (get_replaced_param_substitute): Likewise.
7307         (sra_ipa_reset_debug_stmts): Likewise.
7308         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
7309         (rewrite_bittest): Likewise.
7310         * tree-ssa-loop-ivopts.c (create_new_iv): Likewise.
7311         * tree-ssa-loop-manip.c (create_iv): Likewise.
7312         (tree_transform_and_unroll_loop): Likewise.
7313         * tree-ssa-math-opts.c (powi_as_mults): Likewise.
7314         (build_and_insert_call): Likewise.
7315         (gimple_expand_builtin_cabs): Likewise.
7316         (execute_optimize_bswap): Likewise.
7317         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
7318         (abs_replacement): Likewise.
7319         (cond_store_replacement): Likewise.
7320         (cond_if_else_store_replacement_1): Likewise.
7321         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
7322         * tree-ssa-pre.c (get_representative_for): Likewise.
7323         (create_expression_by_pieces): Likewise.
7324         (insert_into_preds_of_block): Likewise.
7325         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
7326         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7327         (eliminate_redundant_comparison): Likewise.
7328         (rewrite_expr_tree_parallel): Likewise.
7329         (get_reassoc_pow_ssa_name): Likewise.
7330         * tree-ssa-strlen.c (get_string_length): Likewise.
7331         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
7332         (build_arrays): Likewise.
7333         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
7334         (create_tailcall_accumulator): Likewise.
7335         * tree-vect-data-refs.c (vect_get_new_vect_var): Likewise.
7336         (vect_create_addr_base_for_vector_ref): Likewise.
7337         (vect_permute_store_chain): Likewise.
7338         (vect_permute_load_chain): Likewise.
7339         * tree-vect-generic.c (expand_vector_divmod): Likewise.
7340         * tree-vect-loop-manip.c (set_prologue_iterations): Likewise.
7341         (vect_build_loop_niters): Likewise.
7342         (vect_generate_tmps_on_preheader): Likewise.
7343         (vect_update_ivs_after_vectorizer): Likewise.
7344         (vect_gen_niters_for_prolog_loop): Likewise.
7345         (vect_do_peeling_for_alignment): Likewise.
7346         (vect_create_cond_for_align_checks): Likewise.
7347         * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
7348         (vect_handle_widen_op_by_const): Likewise.
7349         (vect_operation_fits_smaller_type): Likewise.
7350         (vect_recog_over_widening_pattern): Likewise.
7351         * tree-vect-stmts.c (vect_init_vector): Likewise.
7352
7353 2012-08-01  Alexandre Oliva  <aoliva@redhat.com>
7354
7355         PR debug/52983
7356         * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
7357
7358 2012-08-01  Alexandre Oliva  <aoliva@redhat.com>
7359
7360         PR debug/52983
7361         * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
7362         falling back to copy_rtx on non-autoinc machines.
7363         (propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
7364
7365 2012-08-01  Alexandre Oliva  <aoliva@redhat.com>
7366
7367         PR debug/52983
7368         * valtrack.h, valtrack.c: New.
7369         * Makefile.in (VALTRACK_H): New.
7370         (OBJS): Add valtrack.o.
7371         (valtrack.o): New.
7372         (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H.
7373         * combine.c: Include valtrack.h.
7374         (make_compound_operation): Publish.
7375         (cleanup_auto_inc_dec): Move to valtrack.c.
7376         (struct rtx_subst_pair, propagate_for_debug_subst): Likewise.
7377         (propagate_for_debug): Likewise.  Add this_basic_block parameter.
7378         Adjust all callers.
7379         * cselib.c: Include valtrack.h.
7380         * dce.c: Likewise.
7381         * df-problems.c: Likewise.
7382         (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c.
7383         (dead_debug_finish, dead_debug_add): Likewise.
7384         (dead_debug_insert_temp): Likewise.
7385         * df.h (struct dead_debug_use): Move to valtrack.h.
7386         (struct dead_debug, enum debug_temp_where): Likewise.
7387         (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h.
7388         (dead_debug_finish, dead_debug_add): Likewise.
7389         (dead_debug_insert_temp): Likewise.
7390         * rtl.h (make_compound_operation): Declare.
7391
7392 2012-08-01  Catherine Moore  <clm@codesourcery.com>
7393             Sandra Loosemore  <sandra@codesourcery.com>
7394
7395         * config/mips/mips-cpus.def (34kn): New.
7396         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn.
7397         (BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn.
7398         * config/mips/mips-tables.opt: Regenerate.
7399         * doc/invoke.texi (MIPS Options): Document -march=34kn.
7400
7401 2012-08-01  Richard Henderson  <rth@redhat.com>
7402
7403         * expmed.h (NUM_MODE_PARTIAL_INT): New.
7404         (NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New.
7405         (struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT.
7406         (struct expmed_op_costs): Likewise.
7407         (struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT.
7408         (expmed_mode_index): New.
7409         (expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index.
7410         (convert_cost_ptr): Likewise.
7411         * expmed.c (struct init_expmed_rtl): Rename convert to trunc.
7412         (init_expmed_one_conv): Split out from ...
7413         (init_expmed_one_mode): ... here.  Iterate conversions over
7414         partial integer modes too.
7415         (init_expmed): Iterate over partial integer modes too.
7416
7417 2012-08-01  Richard Henderson  <rth@redhat.com>
7418
7419         * config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove.
7420         (m32c_init_libfuncs): Remove.
7421         * config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4.
7422         (cstore<QHPSI>4): New expander.
7423
7424 2012-08-01  Richard Guenther  <rguenther@suse.de>
7425
7426         * tree-flow-inline.h (referenced_var): Remove.
7427         * tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate
7428         checking code.
7429         * tree-sra.c (candidates): New global hashtable.
7430         (candidate): New function.
7431         (sra_initialize): Initialize candidates.
7432         (sra_deinitialize): Free candidates.
7433         (disqualify_candidate): Remove candidate from candidates.
7434         (maybe_add_sra_candidate): New function.
7435         (find_var_candidates): Walk over all local decls and parameters,
7436         add candidates to candidates hashtable.
7437         (find_param_candidates): Add candidates to candidates hashtable.
7438         (analyze_all_variable_accesses): Use candidate instead of
7439         referenced_var.
7440
7441 2012-08-01  Tom de Vries  <tom@codesourcery.com>
7442
7443         * tree-vrp.c (find_case_label_ranges): New function.
7444         (vrp_visit_switch_stmt, simplify_switch_using_ranges): Use
7445         find_case_label_ranges instead of find_case_label_range.  Handle second
7446         range.
7447
7448 2012-08-01  Michael Matz  <matz@suse.de>
7449
7450         * tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
7451         * tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
7452         (dump_dfa_stats): Don't dump stats about var anns.
7453         (collect_dfa_stats): Don't collect them.
7454         (add_referenced_var_1): Don't set var annotation pointers.
7455         (remove_referenced_var): Ditto, and only remove it it's in the
7456         hash table.
7457
7458         * tree-flow-inline.h (var_ann): Remove.
7459         * tree-flow.h (struct var_ann_d, var_ann_t): Remove.
7460
7461         * tree-inline.c (remapped_type): Remove.
7462         (can_be_nonlocal): Most variable will be considered live here,
7463         return false earlier.
7464         (remap_decls): Don't call var_ann, all variables will be considered
7465         referenced here.
7466         (copy_debug_stmt): Ditto, and use is_global_var.
7467
7468         * tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
7469         determine if a variable was referred to, not var_ann.
7470         * tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
7471         (remove_unused_locals): Ditto.
7472         * tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
7473         * tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
7474         * tree.c (copy_node_stat): Don't clear var ann pointer.
7475         * tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
7476         ann member.
7477         (DECL_VAR_ANN_PTR): Remove.
7478
7479 2012-08-01  Michael Matz  <matz@suse.de>
7480
7481         * tree-flow.h (struct var_ann_d): Rename used member.
7482         (set_is_used): Don't declare.
7483         * tree-flow-inline.h (clear_is_used): Remove.
7484         (set_is_used, is_used_p): Move to ...
7485         * tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
7486         on the side bitmap.
7487         (usedvars): New bitmap.
7488         (dump_scope_block): Don't dump unusedness.
7489         (remove_unused_locals): Allocate and free usedvars.
7490         * tree-nrv.c (tree_nrv): Don't clear used flags here.
7491
7492 2012-08-01  Michael Matz  <matz@suse.de>
7493
7494         * tree-flow.h (struct var_ann_d): Remove base_var_processed and
7495         base_index members.
7496         * tree-ssa-live.h (struct _var_map): Remove basevars member.
7497         (VAR_ANN_BASE_INDEX): Remove.
7498         * tree-ssa-live.c (var_map_base_init): Use a hash table instead
7499         of var annotation to compress index space.  Don't deal with above
7500         removed members.
7501         (var_map_base_fini): Don't free basevars.
7502         (init_var_map): Don't clear basevars.
7503
7504 2012-08-01  Bill Schmidt  <wschmidt@linux.ibm.com>
7505
7506         * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change
7507         base_name to base_expr.
7508         (struct cand_chain_d): Likewise.
7509         (base_cand_hash): Likewise.
7510         (base_cand_eq): Likewise.
7511         (record_potential_basis): Likewise.
7512         (alloc_cand_and_find_basis): Likewise.
7513         (create_mul_ssa_cand): Likewise.
7514         (create_mul_imm_cand): Likewise.
7515         (create_add_ssa_cand): Likewise.
7516         (create_add_imm_cand): Likewise.
7517         (slsr_process_cast): Likewise.
7518         (slsr_process_copy): Likewise.
7519         (dump_candidate): Likewise.
7520         (base_cand_dump_callback): Likewise.
7521         (unconditional_cands_with_known_stride_p): Likewise.
7522         (cand_increment): Likewise.
7523
7524 2012-08-01  Bill Schmidt  <wschmidt@linux.ibm.com>
7525
7526         PR tree-optimization/46556
7527         * gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
7528         (base_cand_map): Change to hash table.
7529         (base_cand_hash): New function.
7530         (base_cand_free): Likewise.
7531         (base_cand_eq): Likewise.
7532         (lookup_cand): Change base_cand_map to hash table.
7533         (find_basis_for_candidate): Likewise.
7534         (base_cand_from_table): Exclude CAND_REF.
7535         (restructure_reference): New function.
7536         (slsr_process_ref): Likewise.
7537         (find_candidates_in_block): Call slsr_process_ref.
7538         (dump_candidate): Handle CAND_REF.
7539         (base_cand_dump_callback): New function.
7540         (dump_cand_chains): Change base_cand_map to hash table.
7541         (replace_ref): New function.
7542         (replace_refs): Likewise.
7543         (analyze_candidates_and_replace): Call replace_refs.
7544         (execute_strength_reduction): Change base_cand_map to hash table.
7545
7546 2012-08-01  Uros Bizjak  <ubizjak@gmail.com>
7547
7548         * config/i386/i386.c (ix86_address_subreg_operand): Reject
7549         stack pointer.
7550         (ix86_print_operand_address): Assert that parts.base and parts.index
7551         are non-NULL after call to simplify_subreg.
7552
7553 2012-08-01  Richard Guenther  <rguenther@suse.de>
7554
7555         * doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming.
7556
7557 2012-08-01  Richard Guenther  <rguenther@suse.de>
7558
7559         * graphite-clast-to-gimple.c (translate_clast_user): Rename
7560         virtual operands.
7561         * sese.c (graphite_copy_stmts_from_block): Do not rename virtual
7562         operands here.
7563         * tree-call-cdce.c (tree_call_cdce): Use
7564         mark_virtual_operands_for_renaming.
7565         * tree-eh.c (sink_clobbers): Simplify.
7566         * tree-flow.h (mark_sym_for_renaming): Remove.
7567         (mark_virtual_operands_for_renaming): New function.
7568         * tree-if-conv.c (tree_if_conversion): Use
7569         mark_virtual_operands_for_renaming.
7570         * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
7571         * tree-into-ssa.c (mark_sym_for_renaming): Remove.
7572         (mark_virtual_operands_for_renaming): New function.
7573         * tree-loop-distribution.c (tree_loop_distribution): Use
7574         mark_virtual_operands_for_renaming.
7575         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
7576         update stmts, use mark_virtual_operands_for_renaming.
7577         * tree-ssa-tail-merge.c (release_last_vdef): Remove.
7578         (replace_block_by): Adjust.
7579         (tail_merge_optimize): Use mark_virtual_operands_for_renaming.
7580         * tree-tailcall.c (tree_optimize_tail_calls_1): Use
7581         mark_virtual_operands_for_renaming.
7582         * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
7583         * tree-vectorizer.c (vectorize_loops): Likewise.
7584
7585 2012-08-01  Richard Guenther  <rguenther@suse.de>
7586
7587         * tree-flow.h (struct gimple_df): Remove syms_to_rename member,
7588         add ssa_renaming_needed and rename_vops flags.
7589         (SYMS_TO_RENAME): Remove.
7590         (symbol_marked_for_renaming): Likewise.
7591         (mark_virtual_ops_for_renaming): Likewise.
7592         * tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
7593         New globals.
7594         (mark_for_renaming, marked_for_renaming): New functions.
7595         (symbol_marked_for_renaming): Remove.
7596         (dump_currdefs): Adjust.
7597         (maybe_replace_use): Likewise.
7598         (maybe_replace_use_in_debug_stmt): Likewise.
7599         (maybe_register_def): Likewise.
7600         (rewrite_update_phi_arguments): Likewise.
7601         (rewrite_update_enter_block): Likewise.
7602         (fini_ssa_renamer): Clear update SSA status here ...
7603         (delete_update_ssa): ... not here.  Free rename set.
7604         (prepare_block_for_update): Compute which decls need renaming.
7605         (dump_update_ssa): Adjust.
7606         (mark_sym_for_renaming): Adjust update SSA status for virtuals.
7607         (need_ssa_update_p): Adjust.
7608         (insert_updated_phi_nodes_for): Likewise.
7609         (update_ssa): Likewise.
7610         * tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
7611         for virtual and real operands.
7612         (finalize_ssa_uses): Likewise.
7613         * tree-ssanames.c (init_ssanames): Adjust.
7614         * tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
7615         execute_update_addresses_taken): Add bitmap to keep track of which
7616         candidates are suitable for rewriting and later renaming by SSA update.
7617         * matrix-reorg.c (transform_access_sites): Do not rename all defs.
7618         * tree-dfa.c (make_rename_temp): Do not mark real operands for
7619         renaming.
7620         * cgraphunit.c (assemble_thunk): Likewise.
7621         * gimplify.c (gimple_regimplify_operands): Likewise.
7622         (force_gimple_operand_1): Likewise.
7623         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
7624         * tree-inline.c (declare_return_variable): Likewise.
7625         * tree-parloops.c (separate_decls_in_region_stmt): Do not call
7626         mark_virtual_ops_for_renaming.
7627         (create_stores_for_reduction): Likewise.
7628         (create_loads_and_stores_for_name): Likewise.
7629         * tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
7630         (initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
7631         (execute_load_motion): Likewise.
7632         (remove_stmt): Likewise.
7633         (execute_pred_commoning_chain): Likewise.
7634         * tree-sra.c (create_access_replacement): Do not rename real operands.
7635         (get_unrenamed_access_replacement): Unify with ...
7636         (get_access_replacement): ... this.
7637         (get_repl_default_def_ssa_name): Adjust.
7638         * tree-ssa-loop-im.c (move_computations_stmt): Manually update
7639         virtual SSA form.
7640         (rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
7641         * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
7642
7643 2012-07-31  DJ Delorie  <dj@redhat.com>
7644
7645         * config/s390/s390.c (s390_option_override): Disable DWARF 3/4
7646         extensions for TPF, unless specifically selected.
7647
7648 2012-08-01  Alan Modra  <amodra@gmail.com>
7649
7650         PR target/54131
7651         * config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range
7652         of lo_sum offsets.  Comment.  Assert mode at least word size
7653         rather than bypassing powerpc64 word offset check.
7654
7655 2012-07-31  Bill Schmidt  <wschmidt@linux.ibm.com>
7656
7657         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
7658         costs for vec_perm and vec_promote_demote down to more natural values.
7659         (struct _rs6000_cost_data): New data structure.
7660         (rs6000_density_test): New function.
7661         (rs6000_init_cost): Change to use rs6000_cost_data.
7662         (rs6000_add_stmt_cost): Likewise.
7663         (rs6000_finish_cost): Perform density test when vectorizing a loop.
7664
7665 2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>
7666
7667         * sched-vis.c (print_exp): Handle FMA explicitly.  Simplify handling
7668         of RTX_UNARY function-like operations.  Print unknown expression
7669         RTX classes as pseudo-functions.
7670         (print_pattern): Simplify return pattern printing.
7671         (dump_insn_slim): Print the value of notes as a pattern for proper
7672         printing of CFA notes.
7673
7674 2012-07-31  Dehao Chen  <dehao@google.com>
7675
7676         * predict.c (tree_estimate_probability_driver): Normalize the
7677         loop when initializing the loop optimizer.
7678
7679 2012-07-31  Richard Guenther  <rguenther@suse.de>
7680
7681         * tree-flow.h (struct var_ann_d): Remove need_phi_state
7682         and current_def members.
7683         * tree-into-ssa.c (struct def_blocks_d): Remove var member.
7684         (def_blocks): Remove.
7685         (struct var_info_d): New.
7686         (var_infos): New hashtable.
7687         (struct ssa_name_info): Add def_blocks member.
7688         (get_ssa_name_ann): Adjust.
7689         (get_var_info): New function.
7690         (get_phi_state, set_phi_state, get_current_def,
7691         set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust.
7692         (insert_phi_nodes_compare_def_blocks): Rename to ...
7693         (insert_phi_nodes_compare_var_infos): ... this and adjust.
7694         (insert_phi_nodes): Adjust.
7695         (dump_tree_ssa, dump_tree_ssa_stats): Adjust.
7696         (def_blocks_hash, def_blocks_eq, def_blocks_free): Remove.
7697         (debug_def_blocks_r): Rename to ...
7698         (debug_var_infos_r): ... this and adjust.
7699         (var_info_hash): New function.
7700         (var_info_eq): Likewise.
7701         (rewrite_blocks): Adjust.
7702         (init_ssa_renamer): Likewise.
7703         (fini_ssa_renamer): Likewise.
7704         (delete_update_ssa): Likewise.
7705         (update_ssa): Likewise.
7706         * tree-ssanames.c (release_dead_ssa_names): Do not clear current defs.
7707
7708 2012-07-31  Bill Schmidt  <wschmidt@linux.ibm.com>
7709
7710         PR tree-optimization/53773
7711         * tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped.
7712         (LOOP_VINFO_OPERANDS_SWAPPED): New macro.
7713         * tree-vect-loop.c (new_loop_vec_info): Initialize
7714         LOOP_VINFO_OPERANDS_SWAPPED field.
7715         (destroy_loop_vec_info): Restore canonical form.
7716         (vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field.
7717         (vect_is_simple_reduction_1): Likewise.
7718
7719 2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>
7720
7721         * sched-vis.c (dump_insn_slim): Print print_rtx_head at the
7722         start of each new line.
7723         * final.c (final_scan_insn): If the final dump is requested as
7724         slim RTL, dump slim RTL to the assembly file also.
7725
7726 2012-07-31  Andrey Belevantsev  <abel@ispras.ru>
7727
7728         PR target/53975
7729
7730         * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
7731
7732         Revert
7733         2011-08-04  Sergey Grechanik  <mouseentity@ispras.ru>
7734
7735         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
7736         only if producer writes to the register given by regno.
7737
7738 2012-07-31  Nick Clifton  <nickc@redhat.com>
7739
7740         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Add
7741         support for reporting stack usage.
7742
7743         * config/frv/frv.c (QUAD): Fix typo.
7744         (frv_expand_prologue): Report stack usage.
7745
7746 2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>
7747
7748         PR pch/53880
7749         * gengtype.c (struct walk_type_data): Add have_this_obj field.
7750         (walk_type): For functions that take a this_obj argument and
7751         that process fields with a GTY((length)) argument, write the
7752         test that write_types_local_process_field will write also at the
7753         head of the loop, effectively unswitching the loop.
7754         (write_func_for_structure, write_local_func_for_structure): Clear
7755         have_this_obj before calling walk_type.
7756         (write_local_func_for_structure): Set have_this_obj before walk_type.
7757         (write_array): Set have_this_obj for output of local pointer walking
7758         functions but not for marker functions.
7759         (write_types_local_process_field): Assert have_this_obj is set.
7760
7761         * rtl.h (simplify_using_condition): Adjust prototype using bitmap
7762         from coretypes.h.
7763
7764 2012-07-30  Nathan Froyd  <froydnj@gcc.gnu.org>
7765
7766
7767         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7768         * targhooks.c (default_mode_dependent_address_p): Delete code
7769         for GO_IF_MODE_DEPENDENT_ADDRESS.
7770         * system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
7771         * doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
7772         * doc/tm.texi: Regenerate.
7773         * config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
7774         * config/alpha.c (alpha_mode_dependent_address_p): ...here.  New
7775         function.
7776         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7777         * config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7778         * config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7779         * config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
7780         * config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7781         * config/vax/vax.c (vax_mode_dependent_address_p): Make static.
7782         Take a const_rtx.
7783         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7784
7785 2012-07-30  Nathan Froyd  <froydnj@gcc.gnu.org>
7786
7787         * expmed.h (NUM_MODE_VECTOR_INT): Define.
7788         (struct expmed_op_cheap, struct expmed_op_costs): New structures.
7789         (struct target_expmed): Convert x_mul_highpart_cost and
7790         x_mul_widen_cost fields to be indexed by integer modes.
7791         Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be
7792         of type struct expmed_op_cheap.  Convert other cost fields to be
7793         of type struct_expmed_op_costs.
7794         (mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new
7795         indexing of respective fields.
7796         (expmed_op_cheap_ptr): New function.
7797         (sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it.
7798         (expmed_op_cost_ptr): New function.
7799         (add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr,
7800         shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr,
7801         sdiv_cost_ptr, udiv_cost_ptr): Call it.
7802
7803 2012-07-30  Sandra Loosemore  <sandra@codesourcery.com>
7804             Julian Brown  <julian@codesourcery.com>
7805
7806         * doc/invoke.texi (MIPS Options): Document -mno-float.
7807         * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know
7808         about -mno-float.
7809
7810 2012-07-30  Joseph Myers  <joseph@codesourcery.com>
7811
7812         * doc/sourcebuild.texi (Subdirectories): Document common subdirectory.
7813
7814 2012-07-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7815
7816         PR middle-end/53823
7817         * expmed.c (expand_mult): Skip synth_mult for constant double op1 except
7818         for special cases.  Don't initialize coeff and is_neg.
7819
7820 2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>
7821             Richard Earnshaw  <rearnsha@arm.com>
7822
7823         * target.def (vector_alignment): New target hook.
7824         * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
7825         * doc/tm.texi: Regenerate.
7826         * targhooks.c (default_vector_alignment): New function.
7827         * targhooks.h (default_vector_alignment): Add prototype.
7828         * stor-layout.c (layout_type): Use targetm.vector_alignment.
7829         * config/arm/arm.c (arm_vector_alignment): New function.
7830         (TARGET_VECTOR_ALIGNMENT): Define.
7831
7832         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
7833         vector type alignment instead of size.
7834         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
7835         element type size directly instead of computing it from alignment.
7836         Fix variable naming and comment.
7837
7838 2012-07-30  Kirill Yukhin  <kirill.yukhin@intel.com>
7839             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7840
7841         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
7842         (OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
7843         (ix86_handle_option): Handle mrdseed option.
7844         * config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
7845         (x86_64-*-*): Likewise.
7846         * config/i386/prfchwintrin.h: New header.
7847         * config/i386/cpuid.h (bit_RDSEED): New.
7848         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7849         RDSEED support.
7850         * config/i386/i386-c.c: Define __RDSEED__ if needed.
7851         * config/i386/i386.c (ix86_target_string): Define -mrdseed option.
7852         (PTA_RDSEED): New.
7853         (ix86_option_override_internal): Handle new option.
7854         (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
7855         (ix86_builtins): Add enum entries for RDSEED* builtins.
7856         (ix86_init_mmx_sse_builtins): Define new builtins.
7857         (ix86_expand_builtin): Expand RDSEED* builtins.
7858         * config/i386/i386.h (TARGET_RDSEED): New.
7859         * config/i386/i386.md (rdseed<mode>_1): New.
7860         * config/i386/i386.opt (mrdseed): New.
7861         * config/i386/x86intrin.h: Include rdseedintrin.h.
7862
7863 2012-07-30  Richard Guenther  <rguenther@suse.de>
7864
7865         * tree-into-ssa.c (mark_def_sites): Also process virtual operands.
7866         (rewrite_stmt): Likewise.
7867         (rewrite_enter_block): Likewise.
7868         (pass_build_ssa): Do not update virtual SSA form during TODO.
7869         (mark_symbol_for_renaming): Do nothing if we are not in SSA form.
7870         * lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier.
7871
7872 2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>
7873
7874         PR target/39423
7875         * config/gcc/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
7876         insns.
7877
7878 2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>
7879
7880         PR target/51244
7881         * config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section.
7882         Use t_reg_operand predicate.  Add split for negated case.
7883         (ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t.
7884         * config/sh/sh.c (expand_ashiftrt): Likewise.
7885
7886 2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>
7887
7888         PR target/54089
7889         * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
7890         of trying to emit ashlsi3_n.
7891
7892 2012-07-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7893             Steven Bosscher  <steven@gcc.gnu.org>
7894
7895         * gengtype.c (adjust_field_type): Diagnose duplicate "length"
7896         option applications and option being applied to arrays of atomic types.
7897         (walk_type): Allow "atomic" option on strings too.
7898         * dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
7899         for the array field.
7900         * vec.h: Describe the atomic object "A" type of the macros in
7901         the header comment.
7902         (VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
7903         * emit-rtl.c (locations_locators_vals): use the atomic object vector.
7904         * doc/gty.texi: Clarify that GTY option "length" is only for
7905         arrays of non-atomic objects.  Fix typo in the description of the
7906         "atomic" option.
7907
7908 2012-07-27  Uros Bizjak  <ubizjak@gmail.com>
7909
7910         * config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
7911         zero-extended addresses.  Return false if the address has less
7912         than two components.
7913         (ix86_split_lea_for_addr): Unconditionally convert target and
7914         all address operands to requested mode.
7915         * config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
7916         Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
7917         address.
7918         (zero-extended add splitter): New splitter to conditionally split
7919         non-destructive adds.
7920         (*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.
7921
7922 2012-07-28  Alan Modra  <amodra@gmail.com>
7923
7924         PR target/54093
7925         * config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit
7926         multi-gpr reload to cases where predicate passes.  Do the same for
7927         64-bit multi-gpr reload.
7928
7929 2012-07-27  Nathan Froyd  <froydnj@gcc.gnu.org>
7930
7931         * expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
7932         smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
7933         shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
7934         sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
7935         macro definitions and re-purpose as inline functions.
7936         (alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
7937         set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
7938         zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
7939         neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
7940         shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
7941         set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
7942         mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
7943         udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
7944         set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
7945         New functions.
7946         (convert_cost_ptr): New function, split out from...
7947         (set_convert_cost, convert_cost): ...here.
7948         * expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
7949         * gimple-ssa-strength-reduction.c: Likewise.
7950
7951 2012-07-20  Ryan Mansfield  <rmansfield@qnx.com>
7952
7953         * gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
7954         diagnostic_initialize.
7955
7956 2012-07-27  Oleg Endo  <olegendo@gcc.gnu.org>
7957
7958         PR target/54089
7959         * config/sh/sh.c (shiftcosts): Remove case where first operand
7960         is a const_int.  Move COSTS_N_INSNS usage into caller ...
7961         (sh_rtx_costs) ... here.  Return false when shiftcosts cannot be
7962         calculated instead of MAX_COST.
7963
7964 2012-07-27  Richard Guenther  <rguenther@suse.de>
7965
7966         * tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
7967         check whether SSA form is not up-to-date.
7968         * tree-flow.h (name_mappings_registered_p): Remove.
7969         * tree-into-ssa.c (struct repl_map_d): Remove.
7970         (repl_tbl): Likewise.
7971         (struct ssa_name_info): Add repl_set member.
7972         (update_ssa_obstack): New static global.
7973         (get_ssa_name_ann): Initialize repl_set.
7974         (clear_ssa_name_info): Assert age did not wrap.
7975         (repl_map_hash, repl_map_eq, repl_map_free): Remove.
7976         (names_replaced_by): Adjust.
7977         (add_to_repl_tbl): Likewise.
7978         (dump_tree_ssa_stats): Likewise.
7979         (init_update_ssa): Initialize update_ssa_obstack.
7980         (delete_update_ssa): Free update_ssa_obstack.
7981         (name_mappings_registered_p): Remove.
7982         (update_ssa): Adjust.
7983
7984 2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
7985
7986         * config/rs6000/constraints.md: Delete "q" constraint.
7987         * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
7988         Delete the "q" alternative.
7989         * config/rs6000/predicates.md (gpc_reg_operand): Adjust.
7990         * config/rs6000/rs6000.c (rs6000_debug_reg_global)
7991         (rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
7992         adjust to MQ_REGNO removal.
7993         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
7994         comment.
7995         (REG_ALLOC_ORDER): Adjust comment.  Remove MQ from alloc order.
7996         (enum reg_class): Adjust comment.  Delete MQ_REGS.
7997         (REG_CLASS_CONTENTS): Adjust.
7998         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
7999         * config/rs6000/rs6000.md: Delete MQ_REGNO.
8000         (movsi_internal1, movsi_internal1_single, movhi_internal,
8001         movqi_internal, movcc_internal1, movsf_hardfloat,
8002         movsf_softfloat): Delete the "q" alternative.
8003         (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
8004         ctr<mode>_internal6): Delete "q" constraint.
8005
8006 2012-07-27  Richard Guenther  <rguenther@suse.de>
8007
8008         * tree-into-ssa.c (def_blocks_p): New typedef.
8009         (insert_phi_nodes_compare_def_blocks): New function.
8010         (insert_phi_nodes): Do not walk over referenced vars, instead
8011         walk over recorded def_blocks, record relevant ones and sort
8012         them to avoid repeated hashtable lookups.
8013
8014 2012-07-27  Richard Guenther  <rguenther@suse.de>
8015
8016         * doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
8017         Remove param documentation.
8018         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
8019         PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
8020         * tree-flow.h (mark_set_for_renaming): Remove.
8021         * tree-into-ssa.c (struct update_ssa_stats_d): Remove.
8022         (add_new_name_mapping): Remove bookkeeping code.
8023         (dump_update_ssa): Remove stats dumping code.
8024         (init_update_ssa): Remove stats allocation code.
8025         (delete_update_ssa): Remove stats freeing code.
8026         (mark_set_for_renaming): Remove.
8027         (switch_virtuals_to_full_rewrite_p): Likewise.
8028         (switch_virtuals_to_full_rewrite): Likewise.
8029         (update_ssa): Do not call switch_virtuals_to_full_rewrite.
8030
8031 2012-07-27  Marek Polacek  <polacek@redhat.com>
8032
8033         * cgraphunit.c: Rename varpool_finalize_variable to
8034         varpool_finalize_decl in a comment.
8035
8036 2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
8037
8038         * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
8039         Delete code for -mno-power, -mpower, and -mpower2.
8040         * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
8041         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
8042         with -maix64.
8043         (ASM_CPU_SPEC): Delete support for POWER and POWER2.
8044         * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
8045         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
8046         with -maix64.
8047         (ASM_CPU_SPEC): Delete support for POWER and POWER2.
8048         * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
8049         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
8050         with -maix64.
8051         (TARGET_POWER): Delete.
8052         * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
8053         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
8054         with -maix64.
8055         (TARGET_POWER): Delete.
8056         * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
8057         (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
8058         with -maix64.
8059         (TARGET_POWER): Delete.
8060         * config/rs6000/darwin.h (TARGET_POWER): Delete.
8061         * config/rs6000/driver-rs6000.c (struct asm_names): Delete
8062         support for -mpower, -mpower2, and -mno-power.
8063         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
8064         Likewise.
8065         (rs6000_cpu_cpp_builtins): Likewise.
8066         * config/rs6000/rs6000-cpus.def: Likewise.
8067         * config/rs6000/rs6000-tables.opt: Regenerate.
8068         * config/rs6000/rs6000.c (POWER_MASKS): Delete.
8069         (rs6000_option_override_internal): Adjust.
8070         (rs6000_conditional_register_usage): Adjust.
8071         (rs6000_emit_move): Adjust.
8072         (rs6000_common_init_builtins): Adjust.
8073         (rs6000_init_libfuncs): Adjust.
8074         (rs6000_output_function_prologue): Adjust.
8075         (rs6000_adjust_cost): Adjust.
8076         (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
8077         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
8078         POWER and POWER2.
8079         (TARGET_DEFAULT): Adjust.
8080         (PROCESSOR_POWER): Delete.
8081         (SHIFT_COUNT_TRUNCATED): Adjust.
8082         * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
8083         (extendqisi2_power): Delete.
8084         (extendqisi2_no_power): Adjust.
8085         (extendqihi2, extendqihi2_power, extendqihi2_no_power):
8086         Likewise.
8087         (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
8088         (anonymous doz insn patterns): Delete.
8089         (abssi2): Adjust.
8090         (abssi2_power): Delete.
8091         (abssi2_nopower): Adjust.
8092         (nabs_power, nabs_nopower): Likewise.
8093         (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
8094         Likewise.  Delete anonymous post-reload splitter.
8095         (mulsi3_no_mq_internal1): rename to...
8096         (mulsi3_internal1): New define_insn.
8097         (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
8098         Likewise.
8099         (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
8100         udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
8101         udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
8102         (mulh_call, mull_call, divss_call, divus_call, quoss_call,
8103         quous_call): Likewise.
8104         (maskir_internal1, maskir_internal2, maskir_internal3,
8105         maskir_internal4, maskir_internal5, maskir_internal6,
8106         maskir_internal7, maskir_internal8): Delete.
8107         (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
8108         (anonymous sl insn patterns): Delete.
8109         (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
8110         (lshrsi3_64): Adjust.
8111         (anonymous sr insn patterns): Delete.
8112         (anonymous rrib insn patterns): Delete.
8113         (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
8114         (anonymous sra insn patterns): Delete.
8115         (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
8116         (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
8117         fctiwz_<mode>): Adjust.
8118         (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
8119         umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
8120         smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
8121         umulsi3_highpart_no_mq): Adjust.
8122         (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
8123         (ashrdi3_no_power, ashldi3, ashldi3_internal1,
8124         lshrdi3_internal1): Adjust.
8125         (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
8126         (movti_power): Delete.
8127         (movti_string): Adjust.
8128         (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
8129         (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
8130         stmsi4_power, stmsi3_power): Delete.
8131         (anonymous movmemsi insn patterns): Adjust.
8132         (lfq_power2, stfq_power2): Delete.
8133         (eq<mode>, eq<mode>_compare): Adjust.
8134         (eqsi_power): Delete.
8135         (ne0si): Adjust.
8136         (anonymous le, lt, ge, gt insn patterns): Delete.
8137         * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
8138         * config/rs6000/sysv4.h (TARGET_POWER): Delete.
8139         * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8140         MULTILIB_MATCHES): Adjust.
8141         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
8142         -mpower, -mno-power, -mpower2, -mno-power2 documentation.
8143         Delete -mcpu=power and -mcpu=power2 documentation.
8144
8145 2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
8146
8147         * config/rs6000/601.md: New file.
8148         * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
8149         RIOS CPUs.
8150         * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
8151         * config/rs6000/driver-rs6000.c (detect_processor_aix,
8152         struct asm_names): Likewise.
8153         * config/rs6000/rios1.md: Delete file.
8154         * config/rs6000/rios2.md: Delete file.
8155         * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
8156         CPUs.
8157         * config/rs6000/rs6000-opts.h (enum processor_type): Delete
8158         PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
8159         * config/rs6000/rs6000-tables.opt: Regenerated.
8160         * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
8161         Delete.
8162         (rs6000_option_override_internal): Delete support for RIOS CPUs.
8163         (rs6000_conditional_register_usage): Adjust comment.
8164         (rs6000_issue_rate):Delete support for RIOS CPUs.
8165         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
8166         RIOS CPUs.
8167         (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
8168         (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
8169         * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
8170         and rios2.
8171         (include "rios1.md", include "rios2.md"): Delete.
8172         (include "601.md"): New.
8173         * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
8174         PROCESSOR_PPC603.
8175         * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
8176         for RIOS CPUs.
8177         * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
8178         rios2.md .  Add 601.md .
8179
8180 2012-07-26  Richard Henderson  <rth@redhat.com>
8181
8182         * doc/extend.texi (attribute): Document hot/cold for labels.
8183         * predict.c (tree_estimate_probability_bb): Handle hot/cold
8184         attributes on user labels.
8185         * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.
8186
8187 2012-07-26  Andrew Jenner  <andrew@codesourcery.com>
8188             Sandra Loosemore  <sandra@codesourcery.com>
8189
8190         * cse.c (find_comparison_args): Check for cycles of any length.
8191
8192 2012-07-26  Nick Clifton  <nickc@redhat.com>
8193
8194         * config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
8195         (mn10300_get_live_callee_saved_regs): If requested return a count
8196         of the number of bytes in the mask.
8197         (mn10300_expand_prologue): Add argument to invocation of
8198         mn10300_get_live_callee_regs.
8199         (mn10300_expand_epilogue): Compute reg_save_bytes by calling
8200         mn10300_get_live_callee_saved_regs.
8201         (mn10300_initial_offset): Likewise.
8202         * config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
8203         Update prototype.
8204         * config/mn10300/mn10300.md (return_ret): Add argument to
8205         invocation of mn10300_get_live_callee_saved_regs.
8206
8207 2012-07-26  Steven Bosscher  <steven@gcc.gnu.org>
8208
8209         PR regression/54084
8210         * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
8211         pointer difference check.
8212
8213 2012-07-26  Bill Schmidt  <wschmidt@linux.ibm.com>
8214
8215         * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
8216         (mbc_entry_eq): Likewise.
8217         (mult_costs): Likewise.
8218         (cost_tables_exist): Likewise.
8219         (initialize_costs): Likewise.
8220         (finalize_costs): Likewise.
8221         (tree_ssa_iv_optimize_init): Remove call to initialize_costs.
8222         (add_regs_cost): Remove.
8223         (multiply_regs_cost): Likewise.
8224         (add_const_cost): Likewise.
8225         (extend_or_trunc_reg_cost): Likewise.
8226         (negate_reg_cost): Likewise.
8227         (struct mbc_entry): Likewise.
8228         (multiply_by_const_cost): Likewise.
8229         (get_address_cost): Change add_regs_cost calls to add_cost lookups;
8230         change multiply_by_const_cost to mult_by_coeff_cost.
8231         (force_expr_to_var_cost): Likewise.
8232         (difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
8233         (get_computation_cost_at): Change add_regs_cost calls to add_cost
8234         lookups; change multiply_by_const_cost to mult_by_coeff_cost.
8235         (determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
8236         (tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
8237         * tree-ssa-address.c (expmed.h): New #include.
8238         (most_expensive_mult_to_index): Change multiply_by_const_cost to
8239         mult_by_coeff_cost.
8240         * gimple-ssa-strength-reduction.c (expmed.h): New #include.
8241         (stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
8242         neg_cost, and convert_cost instead of IVOPTS interfaces.
8243         (execute_strength_reduction): Remove calls to initialize_costs and
8244         finalize_costs.
8245         * expmed.c (struct init_expmed_rtl): Add convert rtx_def.
8246         (init_expmed_one_mode): Initialize convert rtx_def; initialize
8247         x_convert_cost for related modes.
8248         (mult_by_coeff_cost): New function.
8249         * expmed.h (NUM_MODE_INT): New #define.
8250         (struct target_expmed): Add x_convert_cost matrix.
8251         (set_convert_cost): New inline function.
8252         (convert_cost): Likewise.
8253         (mult_by_coeff_cost): New extern decl.
8254         * tree-flow.h (initialize_costs): Remove decl.
8255         (finalize_costs): Likewise.
8256         (multiply_by_const_cost): Likewise.
8257         (add_regs_cost): Likewise.
8258         (multiply_regs_cost): Likewise.
8259         (add_const_cost): Likewise.
8260         (extend_or_trunc_reg_cost): Likewise.
8261         (negate_reg_cost): Likewise.
8262         * Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
8263         (tree-ssa-address.o): Update dependencies.
8264
8265 2012-07-26  Steven Bosscher  <steven@gcc.gnu.org>
8266
8267         * bitmap.h: Add explanation of sparse set as linked-list bitmap.
8268         * sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
8269         (TEST_BIT): Make a static inline function for stronger type checking.
8270         (SET_BIT): Don't handle sbitmaps with popcount.
8271         (RESET_BIT): Likewise.
8272         (SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
8273         (RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
8274         * ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
8275         RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
8276         (ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
8277         ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
8278         * sparseset.h: Add explanation of sparse set representation.
8279
8280 2012-07-26  Richard Guenther  <rguenther@suse.de>
8281
8282         PR tree-optimization/54098
8283         * tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
8284         original range was UNDEFINED.
8285
8286 2012-07-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8287
8288         * config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
8289         vld1Q_dupu64 tests.
8290
8291 2012-07-26  Oleg Endo  <olegendo@gcc.gnu.org>
8292
8293         PR target/51244
8294         * config/sh/sh.opt (mzdcbranch): New option.
8295         * doc/invoke.texi: Document it.
8296         * config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
8297         instead of TARGET_HARD_SH4.
8298         * config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
8299         for TARGET_HARD_SH4.
8300
8301 2012-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
8302
8303         PR target/54089
8304         * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
8305         case.
8306         (p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
8307         * config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
8308         from expander.  Do not emit shift insn for not-SHMEDIA case.
8309         (ashlsi3_std): Replace with ...
8310         (ashlsi3_k, ashlsi3_d): ... these new insns.
8311         * config/sh/sh.c (gen_ashift): Make static.  Add sanity checks.
8312         Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
8313         (gen_ashift_hi): Make static.
8314         * config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
8315         declaration.
8316
8317 2012-07-25  Bharathi Seshadri  <bseshadr@cisco.com>
8318             Jim Wilson  <jimwilso@cisco.com>
8319
8320         * config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
8321         TARGET_BIG_ENDIAN_DEFAULT.
8322
8323 2012-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8324
8325         * gimple-low.c (lower_try_catch): New function.
8326         (lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
8327         <GIMPLE_CATCH>: Delete.
8328         <GIMPLE_EH_FILTER>: Likewise.
8329
8330 2012-07-25  Eric Botcazou  <ebotcazou@adacore.com>
8331
8332         * expr.c (expand_expr_real_1): Do not expand operand #1 and #2
8333         of BIT_FIELD_REF for ignored results.
8334         * fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
8335         CONSTRUCTOR has vector type before using vector accessors on it.
8336         * gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
8337         #2 of BIT_FIELD_REF.
8338         (gimplify_expr) <BIT_FIELD_REF>: Likewise.
8339         * tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
8340         not process operand #1 and #2.
8341         (convert_local_reference_op): Likewise.
8342         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
8343         breaks throughout.
8344         <BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
8345         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
8346         operand #1 and #2.
8347         (UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
8348         (build6_stat): Delete.
8349         * tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
8350
8351 2012-07-25 Marc Glisse <marc.glisse@inria.fr>
8352
8353         PR tree-optimization/30318
8354         * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
8355         Handle __int128.
8356         [MINUS_EXPR]: Merge with PLUS_EXPR.
8357
8358 2012-07-25  Sandra Loosemore  <sandra@codesourcery.com>
8359             Paul Brook  <paul@codesourcery.com>
8360
8361         PR target/53633
8362         * target.def (warn_func_return): New hook.
8363         * doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
8364         * doc/tm.texi: Regenerate.
8365         * doc/sourcebuild.texi (Effective-Target Keywords): Document
8366         naked_functions.
8367         * ipa-pure-const.c (warn_function_noreturn): Check
8368         targetm.warn_func_return.
8369         * tree-cfg.c (execute_warn_function_return): Likewise.
8370         * config/spu/spu.c (spu_warn_func_return): New.
8371         (TARGET_WARN_FUNC_RETURN): Define.
8372         * config/rx/rx.c (rx_warn_func_return): New.
8373         (TARGET_WARN_FUNC_RETURN): Define.
8374         * config/avr/avr.c (avr_warn_func_return): New.
8375         (TARGET_WARN_FUNC_RETURN): Define.
8376         * config/arm/arm.c (arm_warn_func_return): New.
8377         (TARGET_WARN_FUNC_RETURN): Define.
8378         * config/mcore/mcore.c (mcore_warn_func_return): New.
8379         (TARGET_WARN_FUNC_RETURN): Define.
8380         (saved_warn_return_type, saved_warn_return_type_count): Remove.
8381         (mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.
8382
8383 2012-07-25  Siddhesh Poyarekar  <siddhesh@redhat.com>
8384
8385         * final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
8386         function to implement assembler dialects.
8387         (output_asm_insn): Use do_assembler_dialects.
8388         (asm_fprintf): Likewise.
8389
8390 2012-07-25  Richard Henderson  <rth@redhat.com>
8391
8392         PR bootstrap/54092
8393         * libfuncs.h: Don't include optabs.h.
8394         (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
8395         * optabs.c (hash_libfunc): Don't cast members to int.
8396         * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.
8397
8398 2012-07-25  Dodji Seketeli  <dodji@redhat.com>
8399
8400         * basic-block.c: Fix typo in comment.
8401
8402 2012-07-25  Kirill Yukhin  <kirill.yukhin@intel.com>
8403             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8404
8405         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
8406         (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
8407         (ix86_handle_option): Handle mprfchw option.
8408         * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
8409         (x86_64-*-*): Likewise.
8410         * config/i386/prfchwintrin.h: New header.
8411         * config/i386/cpuid.h (bit_PRFCHW): New.
8412         (bit_BMI): Formatting fix.
8413         (bit_HLE): Likewise.
8414         (bit_RTM): Likewise.
8415         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8416         PREFETCHW support.
8417         * config/i386/i386-c.c: Define __PRFCHW__ if needed.
8418         * config/i386/i386.c (ix86_target_string): Define
8419         -mprfchw option. Formatting fixes.
8420         (PTA_HLE): Formatting fix.
8421         (PTA_PRFCHW): New.
8422         (ix86_option_override_internal): Handle new option.
8423         (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
8424         * config/i386/i386.h (TARGET_PRFCHW): New.
8425         * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
8426         * config/i386/i386.opt (mprfchw): New.
8427         * config/i386/mm3dnow.h: Move _m_prefetchw from here to prfchwintrin.h.
8428         * config/i386/x86intrin.h: Include prfchwintrin.h.
8429
8430 2012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
8431
8432         * config/i386/i386.md (stack_protect_set): Disable the pattern
8433         for Android since Android libc (bionic) does not provide random
8434         value for stack protection guard at gs:0x14. Guard value
8435         will be provided from external symbol (default implementation).
8436         (stack_protect_set_<mode>): Likewise.
8437         (stack_protect_test): Likewise.
8438         (stack_protect_test_<mode>): Likewise.
8439         * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
8440         not have Bionic by default
8441         * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
8442         Macro OPTION_BIONIC is defined in this file and provides Bionic
8443         accessibility status
8444
8445 2012-07-25  Steven Bosscher  <steven@gcc.gnu.org>
8446
8447         * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
8448
8449 2012-07-25  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8450
8451         btver2 Enablement
8452         * config.gcc (i[34567]86-*-linux* | ...): Add btver2.
8453         (case ${target}): Add btver2.
8454         * config/i386/driver-i386.c (host_detect_local_cpu): Let
8455         -march=native recognize btver2 processors.
8456         * config/i386/i386-c.c (ix86_target_macros_internal): Add
8457         btver2 def_and_undef
8458         * config/i386/i386.c (struct processor_costs btver2_cost): New
8459         btver2 cost table.
8460         (m_BTVER2): New definition.
8461         (m_AMD_MULTIPLE): Includes m_BTVER2.
8462         (initial_ix86_tune_features): Add btver2 tune.
8463         (processor_target_table): Add btver2 entry.
8464         (static const char *const cpu_names): Add btver2 entry.
8465         (software_prefetching_beneficial_p): Add btver2.
8466         (ix86_option_override_internal): Add btver2 instruction sets.
8467         (ix86_issue_rate): Add btver2.
8468         (ix86_adjust_cost): Add btver2.
8469         * config/i386/i386.h (TARGET_BTVER2): New definition.
8470         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2.
8471         (enum processor_type): Add PROCESSOR_BTVER2.
8472         * config/i386/i386.md (define_attr "cpu"): Add btver2.
8473
8474 2012-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>
8475
8476         * doc/tm.texi: Regenerate.
8477         * targhooks.c (default_init_cost): Add prologue and epilogue costs.
8478         (default_add_stmt_cost): Likewise; also handle NULL stmt_info.
8479         (default_finish_cost): Add prologue and epilogue costs.
8480         * targhooks.h (default_add_stmt_cost): Change parameter list.
8481         (default_finish_cost): Likewise.
8482         * target.def (init_cost): Change documentation string.
8483         (add_stmt_cost): Change documentation string and parameter list.
8484         (finish_cost): Likewise.
8485         * target.h (vect_cost_model_location): New enum.
8486         * tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
8487         (struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
8488         to body_cost_vec.
8489         (SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
8490         (SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
8491         (SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
8492         (struct _vect_peel_extended_info): Rename stmt_cost_vec to
8493         body_cost_vec.
8494         (struct _stmt_vec_info): Remove cost substruct.
8495         (STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
8496         (stmt_vinfo_set_outside_of_loop_cost): Remove.
8497         (builtin_vectorization_cost): New function.
8498         (vect_get_stmt_cost): Change to use builtin_vectorization_cost.
8499         (add_stmt_cost): Change parameter list.
8500         (finish_cost): Likewise.
8501         (vect_model_simple_cost): Likewise.
8502         (vect_model_store_cost): Likewise.
8503         (vect_model_load_cost): Likewise.
8504         (record_stmt_cost): Likewise.
8505         (vect_get_load_cost): Likewise.
8506         (vect_get_known_peeling_cost): Likewise.
8507         * tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
8508         list; call record_stmt_cost for prologue and epilogue costs.
8509         (vect_estimate_min_profitable_iters): Call add_stmt_cost for
8510         prologue and epilogue costs; remove computation of vec_outside_cost;
8511         return vec_prologue_cost and vec_epilogue_cost from finish_cost.
8512         (vect_model_reduction_cost): Revise call to add_stmt_cost for body
8513         costs; call add_stmt_cost for prologue and epilogue costs.
8514         (vect_model_induction_cost): Revise call to add_stmt_cost for body
8515         costs; call add_stmt_cost for prologue costs.
8516         * tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
8517         list for function and arguments for calls to vect_get_load_cost and
8518         vect_get_store_cost.
8519         (vect_peeling_hash_get_lowest_cost): Change argument list for calls to
8520         vect_get_data_access_cost and vect_get_known_peeling_cost; use
8521         temporary vectors prologue_cost_vec and epilogue_cost_vec for the
8522         latter call and discard their results; rename stmt_cost_vec to
8523         body_cost_vec; correct possible storage leak for body_cost_vec.
8524         (vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
8525         body_cost_vec.
8526         (vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
8527         body_cost_vec; add extra dummy parameter on calls to
8528         vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
8529         argument list on call to add_stmt_cost.
8530         * tree-vect-stmts.c (record_stmt_cost): Change parameter list;
8531         rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
8532         builtin_vectorization_cost; add "where" parameter on call to
8533         add_stmt_cost.
8534         (vect_model_simple_cost): Change parameter list; call record_stmt_cost
8535         for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
8536         rename stmt_cost_vec to body_cost_vec.
8537         (vect_model_promotion_demotion_cost): Add vect_body argument to call
8538         to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
8539         to stmt_vinfo_set_outside_of_loop_cost.
8540         (vect_model_store_cost): Change parameter list; call record_stmt_cost
8541         for prologue costs; add vect_body argument to call to record_stmt_cost;
8542         rename stmt_cost_vec to body_cost_vec; remove call to
8543         stmt_vinfo_set_outside_of_loop_cost.
8544         (vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
8545         vect_body argument to calls to record_stmt_cost.
8546         (vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
8547         body_cost_vec; add vect_body argument to calls to record_stmt_cost;
8548         remove call to stmt_vinfo_set_outside_of_loop_cost.
8549         (vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
8550         body_cost_vec; add vect_body argument to calls to record_stmt_cost;
8551         call record_stmt_cost for prologue costs.
8552         (vectorizable_store): Change argument list for call to
8553         vect_model_store_cost.
8554         (vectorizable_load): Change argument list for call to
8555         vect_model_load_cost.
8556         (new_stmt_vec_info): Remove assignment to
8557         STMT_VINFO_OUTSIDE_OF_LOOP_COST.
8558         * config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
8559         (spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
8560         (spu_finish_cost): Add prologue and epilogue costs.
8561         * config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
8562         (i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
8563         (i386_finish_cost): Add prologue and epilogue costs.
8564         * config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
8565         costs.
8566         (rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
8567         (rs6000_finish_cost): Add prologue and epilogue costs.
8568         * tree-vect-slp.c (vect_free_slp_instance): Rename
8569         SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
8570         (vect_create_new_slp_node): Remove assignment to
8571         SLP_TREE_OUTSIDE_OF_LOOP_COST.
8572         (vect_get_and_check_slp_defs): Change parameter list; change argument
8573         lists to calls to vect_model_store_cost and vect_model_simple_cost.
8574         (vect_build_slp_tree): Change parameter list; change argument lists
8575         to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
8576         recursive self-calls; remove setting of outside_cost from
8577         SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
8578         record_stmt_cost.
8579         (vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
8580         rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
8581         remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
8582         prologue costs.
8583         (vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
8584         body_cost_vec; handle null ci->stmt; add vect_body argument to call
8585         to add_stmt_cost; simplify calls to targetm.vectorize.
8586         builtin_vectorization_cost; return vec_prologue_cost and
8587         vec_epilogue_cost from finish_cost.
8588         (vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
8589         body_cost_vec; add vect_body argument to call to add_stmt_cost.
8590
8591 2012-07-24  Richard Henderson  <rth@redhat.com>
8592
8593         * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
8594         * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
8595         * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
8596         * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
8597         * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
8598         comment reference.
8599         * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
8600         * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
8601         (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
8602         * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
8603         * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
8604         * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
8605         * doc/tm.texi: Rebuild.
8606
8607 2012-07-24  Richard Henderson  <rth@redhat.com>
8608
8609         * optabs.def: New file.
8610         * Makefile.in (OPTABS_H): Add insn-opinit.h.
8611         (MOSTLYCLEANFILES): Likewise.
8612         (insn-opinit.o): Remove reload.h
8613         (simple_rtl_generated_c): Remove insn-opinit.c.
8614         (s-opinit): New rule.
8615         (build/genopinit.o): Add optabs.def.
8616         * genopinit.c (rtx_upname): New.
8617         (optabs): Extract to optabs.def
8618         (enum optab_tag, struct optab_def_d, optabs): New.
8619         (struct pattern_d, patterns): New.
8620         (match_pattern): Split out from ...
8621         (gen_insn): ... here.  Push matches on patterns vec.
8622         (pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New.
8623         (header_file_name, source_file_name, handle_arg): New.
8624         (open_outfile): New.
8625         (main): Sort and emit new tables.  Generate lookup_handler,
8626         raw_optab_handler, swap_optab_enable.
8627         * libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op".
8628         * optabs.c (code_to_optab_): Remove.
8629         (hash_libfunc): Update for optab name change.
8630         (eq_libfunc): Likewise.
8631         (convert_optab_libfunc): Update computation of optab member;
8632         use the new convlib_def table.
8633         (optab_libfunc): Similarly.
8634         (set_optab_libfunc, set_conv_libfunc): Likewise.
8635         (sign_expand_binop): Use swap_optab_enable instead of fake optabs.
8636         (init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove.
8637         (init_optabs): Don't call them; export the data to optabs.def.
8638         (gen_int_libfunc, gen_fp_libfunc): Export non-static.
8639         (gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise.
8640         (gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise.
8641         (gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise.
8642         (gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise.
8643         (gen_int_signed_fixed_libfunc): Likewise.
8644         (gen_int_unsigned_fixed_libfunc): Likewise.
8645         (gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise.
8646         (gen_ufloat_conv_libfunc): Likewise.
8647         (gen_int_to_fp_nondecimal_conv_libfunc): Likewise.
8648         (gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8649         (gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise.
8650         (gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise.
8651         (gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise.
8652         (debug_optab_libfuncs): Update for optab representation change.
8653         * optabs.h: Include insn-opinit.h.
8654         (optab, convert_optab, direct_optab): New typedefs.
8655         (struct optab_handlers, struct widening_optab_handlers): Remove.
8656         (struct optab_libcall_d): Rename from optab_d; remove code_,
8657         handlers, widening members.
8658         (struct convert_optab_libcall_d): Rename from convert_optab_d;
8659         remove code_ and handlers members.
8660         (enum optab_index, enum convert_optab_index): Remove.
8661         (enum direct_optab_index): Remove.
8662         (code_to_optab_): Fix array range.
8663         (optab_to_code): Covert to inline function.
8664         (optab_to_code_, convlib_def, normlib_def): Declare.
8665         (raw_optab_handler, swap_optab_enable): Declare.
8666         (unknown_optab): Remove; export to optabs.def
8667         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
8668         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
8669         ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab,
8670         addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab,
8671         smul_widen_optab, umul_widen_optab, usmul_widen_optab,
8672         smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab,
8673         usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab,
8674         ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab,
8675         sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab,
8676         umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab,
8677         ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab,
8678         rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab,
8679         vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab,
8680         atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab,
8681         movstrict_optab, movmisalign_optab, storent_optab, neg_optab,
8682         negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab,
8683         ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab,
8684         parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab,
8685         cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab,
8686         ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab,
8687         log_optab, log10_optab, log2_optab, log1p_optab, floor_optab,
8688         ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab,
8689         tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab,
8690         cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab,
8691         lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab,
8692         cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab,
8693         reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
8694         reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab,
8695         usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab,
8696         vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab,
8697         vec_realign_load_optab, vec_widen_umult_hi_optab,
8698         vec_widen_umult_lo_optab, vec_widen_smult_hi_optab,
8699         vec_widen_smult_lo_optab, vec_widen_umult_even_optab,
8700         vec_widen_umult_odd_optab, vec_widen_smult_even_optab,
8701         vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab,
8702         vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab,
8703         vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab,
8704         vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab,
8705         vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab,
8706         vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab,
8707         vec_pack_usat_optab, vec_pack_sfix_trunc_optab,
8708         vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab,
8709         sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab,
8710         sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab,
8711         sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab,
8712         sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab,
8713         sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab,
8714         ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab,
8715         ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab,
8716         fract_optab, fractuns_optab, satfract_optab, satfractuns_optab,
8717         vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab,
8718         movcc_optab, reload_in_optab, reload_out_optab, movmem_optab,
8719         setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab,
8720         sync_lock_release_optab, sync_add_optab, sync_sub_optab,
8721         sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab,
8722         atomic_exchange_optab, atomic_compare_and_swap_optab,
8723         atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab,
8724         atomic_sub_fetch_optab, atomic_and_fetch_optab,
8725         atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab,
8726         atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab,
8727         atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab,
8728         atomic_add_optab, atomic_sub_optab, atomic_and_optab,
8729         atomic_nand_optab, atomic_xor_optab, atomic_or_optab,
8730         atomic_always_lock_free_optab, atomic_is_lock_free_optab,
8731         atomic_thread_fence_optab, atomic_signal_fence_optab,
8732         vec_perm_optab, vec_perm_const_optab): Likewise.
8733         (struct target_optabs): Remove x_optab_table, x_convert_optab_table,
8734         and x_direct_optab_table members; add pat_enable.
8735         (optab_table, convert_optab_table, direct_optab_table): Remove.
8736         (optab_handler): Use raw_optab_handler.
8737         (widening_optab_handler, convert_optab_handler): Likewise.
8738         (set_optab_handler, set_widening_optab_handler): Remove.
8739         (set_convert_optab_handler, set_direct_optab_handler): Remove.
8740         (direct_optab_handler): Defer to optab_handler.
8741         * rtl.h (NON_GENERATOR_NUM_RTX_CODE): New.
8742
8743 2012-07-24  Jason Merrill  <jason@redhat.com>
8744
8745         * bitmap.c (bitmap_descriptor): Adjust order of parameters to
8746         match MEM_STAT_DECL.
8747         * statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.
8748
8749 2012-07-24  Richard Henderson  <rth@redhat.com>
8750
8751         * optabs.h (struct optab_d): Rename code member to code_.
8752         (struct convert_optab_h): Likewise.
8753         (code_to_optab_): Rename from code_to_optab.
8754         (code_to_optab, optab_to_code): New.
8755         * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
8756         * ifcvt.c (noce_emit_move_insn): Likewise.
8757         * optabs.c (simplify_expand_binop): Use optab_to_code.
8758         (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
8759         (avoid_expensive_constant, expand_binop_directly): Likewise.
8760         (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
8761         (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
8762         (have_insn_for, debug_optab_libfuncs): Likewise.
8763         (init_optab, init_optabv, init_convert_optab): Update for optab
8764         member name change.
8765
8766         * libfuncs.h: Include optabs.h.
8767         * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
8768         * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
8769         (lto-streamer-in.o, dwarf2out.o): Update deps.
8770
8771         * optabs.h (unknown_optab): New.
8772         * builtins.c (interclass_mathfn_icode): Use it.
8773         * dojump.c (do_compare_rtx_and_jump): Likewise.
8774         * optabs.c (optab_for_tree_code, expand_binop): Likewise.
8775         * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
8776         (expand_vector_operations_1): Likewise.
8777         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
8778         * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
8779
8780 2012-07-24  Steven Bosscher  <steven@gcc.gnu.org>
8781
8782         * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
8783
8784 2012-07-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8785
8786         PR target/54051
8787         * config/arm/arm.c (arm_print_operand_address): Remove superfluous
8788         printing of 0.
8789         * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
8790         specifier.
8791         ("neon_vld3_lane<mode>":VMQ): Likewise.
8792         ("neon_vld3_dup<mode>":VDX): Likewise.
8793         ("neon_vst3_lane<mode>":VD): Likewise.
8794         ("neon_vst3_lane<mode>":VMQ): Likewise.
8795
8796 2012-07-24  Roland McGrath  <mcgrathr@google.com>
8797
8798         * arm.c (arm_get_frame_offsets): Don't use fixed regs for
8799         stack alignment padding.
8800
8801 2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
8802
8803         PR target/53961
8804         * config/i386/i386.c (ix86_legitimate_address_p): Move check for
8805         negative constant address for TARGET_X32 ...
8806         (ix86_decompose_address): ... here.  Reject constant addresses
8807         that don't satisfy x86_64_immediate_operand predicate.
8808
8809 2012-07-24  Julian Brown  <julian@codesourcery.com>
8810
8811         * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.
8812
8813 2012-07-24  Steven Bosscher  <steven@gcc.gnu.org>
8814
8815         * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
8816         Move test to check that there is a popcount function for the the number
8817         of bits in SBITMAP_ELT_BITS to sbitmap.c.
8818         * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
8819         MEM_STAT_INFO): Define in terms of their ALONE counterparts.
8820
8821         * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
8822         * configure: Regenerate.
8823         * statistics.h (GATHER_STATISTICS): Error out if it is not defined.
8824         (GCC_MEM_STAT_ARGUMENTS): New define.
8825         (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
8826         (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
8827         (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
8828         FINAL_PASS_MEM_STAT): Define.
8829         * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
8830         * ggc.h (ggc_record_overhead, ggc_free_overhead,
8831         ggc_prune_overhead_list): Remove internal prototypes, they are defined
8832         already in ggc-internal.h.
8833         * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
8834         wrappers.
8835         (add_statistics): Likewise.
8836         (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
8837         * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
8838         wrappers around "survived" and "stats" members.
8839         (alloc_large_page): Always initialize survived.
8840         (ggc_internal_alloc_zone_stat): Likewise.
8841         Remove #ifdef GATHER_STATISTICS wrappers.  Record overhead if
8842         GATHER_STATISTICS is non-0.
8843         (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
8844         (sweep_pages): Always increase survived.
8845         (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
8846         (calculate_average_page_survival): Always define.
8847         (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
8848         (ggc_print_statistics): Likewise.
8849         (ggc_pch_read): Likewise.
8850         * ggc-page.c (struct globals): Always define "stats" member.
8851         (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
8852         (ggc_free): Likewise.
8853         (ggc_collec): Likewise.
8854         (ggc_print_statistics): Likewise.
8855         * bitmap.h (struct bitmap_head_def): Always define "desc" member.
8856         (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
8857         * gimple.h (enum gimple_alloc_kind): Always define.
8858         (gimple_alloc_kind): Likewise.
8859         * tree-flow.h (phinodes_print_statistics): Always define.
8860         (ssanames_print_statistics): Likewise.
8861         * vec.h (vec_heap_free): Always define.
8862         (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
8863         * alloc-pool.c (alloc_pool_descriptor): Always define.
8864         (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
8865         (empty_alloc_pool): Likewise.
8866         (pool_alloc): Likewise.
8867         (pool_free): Likewise.
8868         (dump_alloc_pool_statistics): Likewise.
8869         (print_statistics): Always define.
8870         * bitmap.c (struct bitmap_descriptor): Always define.
8871         (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
8872         (register_overhead): Always define.
8873         (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
8874         (bitmap_element_allocate): Likewise.
8875         (bitmap_elt_clear_from): Likewise.
8876         (bitmap_obstack_alloc_stat): Likewise.
8877         (bitmap_gc_alloc_stat): Likewise.
8878         (bitmap_obstack_free): Likewise.
8879         (bitmap_find_bit): Likewise.
8880         (bitmap_ior_and_into):  Likewise.
8881         (bitmap_print): Likewise.
8882         (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
8883         * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
8884         (gimple_alloc_kind_names): Likewise.
8885         (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
8886         (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
8887         * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
8888         rtvec_alloc_sizes): Always define.
8889         (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
8890         (rtx_alloc_stat): Likewise.
8891         (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
8892         * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
8893         tree_node_sizes, tree_node_kind_names): Always define.
8894         (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
8895         to if-code.
8896         (type_hash_canon): Likewise.
8897         (dump_tree_statistics): Likewise.
8898         * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
8899         Always define.
8900         (ssanames_print_statistics): Likewise.
8901         (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
8902         * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
8903         (phinodes_print_statistics): Likewise.
8904         (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
8905         * vec.c (struct vec_descriptor): Always define.
8906         (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
8907         vec_descriptor, rester_overhead, free_overhead): Likewise.
8908         (cmp_statistic): Likewise.
8909         (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
8910         (vec_heap_o_reserve_1): Likewise.
8911         (dump_vec_loc_statistics): Likewise.
8912
8913 2012-07-24  Richard Guenther  <rguenther@suse.de>
8914
8915         PR tree-optimization/53616
8916         * tree-loop-distribution.c (ldist_gen): Do not change
8917         partition ordering when merging partitions.
8918
8919 2012-07-24  Alan Modra  <amodra@gmail.com>
8920
8921         PR target/53914
8922         PR target/54009
8923         * config/rs6000/constraints.md (Y): Use mem_operand_gpr.
8924         * config/rs6000/predicates.md (word_offset_memref_operand): Delete.
8925         Adjust all rs6000_legitimate_offset_address_p calls.
8926         * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
8927         (rs6000_secondary_reload_gpr): Declare.
8928         (rs6000_legitimate_offset_address_p): Update prototype.
8929         (rs6000_offsettable_memref_p): Delete.
8930         (rs6000_secondary_reload_ppc64): Delete.
8931         * config/rs6000/rs6000.c (address_offset): New function.
8932         (mem_operand_gpr): Likewise.
8933         (rs6000_legitimate_offset_address_p): Add worst_case param.  When
8934         not worst_case assume class of regs with least restrictive offsets.
8935         Adjust all calls.
8936         (legitimate_lo_sum_address_p): Simplify register mode tests.
8937         (rs6000_legitimize_address): Likewise.  Assume best case offset
8938         addressing.  Combine ELF and MACHO lo_sum code.
8939         (rs6000_mode_dependent_address): Correct offset addressing limits.
8940         (rs6000_offsettable_memref_p): Make static, add reg_mode param.
8941         Use reg_mode to help rs6000_legitimate_offset_address_p.
8942         (rs6000_secondary_reload): Use address_offset.  Handle 32-bit multi
8943         gpr load/store when offset too large.
8944         (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
8945         (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
8946         * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
8947         for gpr load/store.  Order alternatives as r->Y,Y->r,r->r and
8948         d->m,m->d,d->d.  Correct size of gpr load/store.
8949         (movdf_softfloat32): Use 'Y' constraint for gpr load/store.  Order
8950         alternatives.
8951         (movti_ppc64): Likewise.
8952         (movdi_internal32): Likewise.  Also disparage fprs.
8953         (movdi_mfpgpr, movdi_internal64): Likewise.
8954         (movtf_internal): Use 'm' for fpr load/store.  Order alternatives.
8955         (movtf_softfloat): Order alternatives.
8956         (extenddftf2_internal): Use 'm' and 'Y' for store.
8957         (movti_power, movti_string): Use 'Y' for gpr load/store.  Order.
8958         (stack_protect_setdi, stack_protect_testdi): Likewise.
8959         (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
8960         (movdf_softfloat64): Likewise.
8961         (reload_<mode>_store): Adjust reload_di_store to provide
8962         reload_si_store as well.
8963         (reload_<mode>_load): Likewise.
8964
8965 2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>
8966
8967         PR target/51244
8968         * config/sh/predicates.md (general_movsrc_operand,
8969         general_movdst_operand): Reject T_REG.
8970         * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
8971         movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
8972         Remove T_REG alternatives.
8973         (*negtstsi): New insn.
8974
8975 2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>
8976
8977         PR target/53511
8978         * config/sh/sh.md (mulsf3_ie): Delete.
8979         (mulsf3_i4): Rename to mulsf3_i.
8980         (mulsf3): Emit mulsf3_i insn.
8981
8982 2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>
8983
8984         * config/sh/sh.md (addc1, subc1): Delete.
8985         (adddi3_compact): Use addc instead of addc1.
8986         (subdi3_compact): Use subc instead of subc1.
8987
8988 2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
8989
8990         * config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype.
8991         * config/i386/i386.c (ix86_lea_outperforms): Make static.  Make
8992         split_cost argument signed.
8993         (ix86_avoid_lea_for_add): Cleanup.
8994         (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
8995         (ix86_avoid_lea_for_addr): Ditto.  Make split_cost signed.
8996         Use gen_lowpart instead of gen_rtx_SUBREG.  Cleanup.
8997
8998 2012-07-23  Ulrich Weigand  <ulrich.weigand@linaro.org>
8999
9000         * config/arm/arm.c (arm_reorg): Ensure all insns are split.
9001
9002 2012-07-23  Uros Bizjak  <ubizjak@gmail.com>
9003
9004         PR target/53961
9005         * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
9006         * config/i386/i386.c (ix86_print_operand_address): Ditto.
9007         (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
9008         addresses.  Prevent zero extensions of CONST_INT operands.
9009
9010 2012-07-23  Steven Bosscher  <steven@gcc.gnu.org>
9011
9012         * sbitmap.h (struct int_list): Remove.
9013         (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
9014         Remove prototypes of non-existing function.
9015         (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
9016         sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
9017         unused defines.
9018         (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
9019         sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
9020         * basic-block.h: ... here.
9021         * sbitmap.c: Do not include basic-block.h.
9022         (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
9023         sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
9024         * cfganal.c: ... here.
9025         * bt-load.c (compute_out, link_btr_uses): Update for above changes.
9026         * gcse.c (compute_code_hoist_vbeinout): Likewise.
9027         * lcm.c (compute_antinout_edge, compute_available): Likewise.
9028         * Makefile.in: Fix sbitmap.o dependencies.
9029
9030 2012-07-23  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9031             Nick Clifton  <nickc@redhat.com>
9032
9033         * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
9034         * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
9035         (unused) parameter to void *.
9036
9037 2012-07-23  Richard Guenther  <rguenther@suse.de>
9038
9039         * tree-ssa-alias.c (dump_alias_info): Walk over local decls
9040         instead of referenced vars.
9041
9042 2012-07-23  Steven Bosscher  <steven@gcc.gnu.org>
9043
9044         * coverage.c: Refer to "notes file" instead of "graph file"
9045         in all comments.  Explain history of bbg prefix.
9046         * gcov-io.h: Likewise.
9047         * gcov.c: Likewise.
9048         (find_source): Likewise in fnotice.
9049         (read_graph_file): Likewise.
9050         (read_count_file): Likewise.
9051         * doc/gcov.texi: Document -fprofile-dir flag.  Add "notes file"
9052         and "data file" explicitly in the explanation of the files.
9053
9054 2012-07-22  Steven Bosscher  <steven@gcc.gnu.org>
9055
9056         PR tree-optimization/53881
9057         * tree-cfg.c (group_case_labels_stmt): Look up the basic block
9058         for each label and compare them instead of labels.
9059
9060 2012-07-22  Steven Bosscher <steven@gcc.gnu.org>
9061
9062         * opts.c (common_handle_option): Do not set
9063         flag_value_profile_transformations for -fprofile-generate.
9064         * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
9065         (BB_TO_GCOV_INDEX): Remove.
9066         (output_location): Don't use it.
9067         (branch_prob): Likewise.  Don't fiddle with the index of
9068         ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.  Use clear_aux_for_blocks.
9069         (find_spanning_tree):
9070         * gcov.c (struct function_info): Document that blocks 0 and 1
9071         are the entry resp. exit blocks in gcov, too, like in GCC itself.
9072         (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
9073         blocks identification.
9074         (output_lines): Likewise.
9075         * value-prof.c (gimple_value_profile_transformations): Do not
9076         test flag_value_profile_transformations again.
9077         (gimple_ic_transform): Take a gimple_stmt_iterator like all other
9078         transformation functions.
9079         (gimple_values_to_profile):
9080         Don't test flag_value_profile_transformations
9081         * tree-profile.c (tree_profiling): Assert that the cgraph is in
9082         the CGRAPH_STATE_IPA_SSA state.
9083         Do not set, or look at, after_tree_profile.
9084         * function.h (struct function): Remove after_tree_profile bit.
9085         * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
9086         * tree-inline.c (initialize_cfun): Don't copy it.
9087         * lto-streamer-out.c (output_struct_function_base): Don't stream it.
9088         * lto-streamer-in.c (input_struct_function_base): Likewise.
9089
9090 2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>
9091
9092         * config/sh/sh.h (TARGET_DYNSHIFT): New macro.
9093         (SH_DYNAMIC_SHIFT_COST): Use it.
9094         * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
9095         (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
9096         Add sanity check for input value.  Add function description.
9097         * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
9098         lshrsi3_d): Use TARGET_DYNSHIFT.
9099
9100 2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>
9101
9102         * config/sh/sh.md (negc): Delete expander.
9103         (*negc): Rename insn to negc.
9104
9105 2012-07-22  Uros Bizjak  <ubizjak@gmail.com>
9106
9107         PR target/53961
9108         * config/i386/i386.md (*lea): New insn pattern.
9109         (*lea_1): Remove.
9110         (*lea<mode>_2): Ditto.
9111         (*lea_{3,4,5,6}_zext): Ditto.
9112         * config/i386/predicates.md (lea_address_operand): Do not reject
9113         zero-extended address operands.
9114         * config/i386/constraints.md (j): Remove address constraint.
9115         * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
9116         of an address.
9117         (ix86_print_operand_address): Handle SImode subreg of an address.
9118         (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
9119
9120 2012-07-22  Hans-Peter Nilsson  <hp@axis.com>
9121
9122         Emit executable-stack note correctly for CRIS targets.
9123         * config/cris/cris.c (cris_file_end): New function.
9124         (TARGET_ASM_FILE_END): Define.
9125
9126 2012-07-22  Chung-Lin Tang  <cltang@codesourcery.com>
9127             Maxim Kuvyrkov  <maxim@codesourcery.com>
9128             NetLogic Microsystems Inc.
9129
9130         * config/mips/mips.c (mips_issue_rate): Handle XLP.
9131         * config/mips/mips.md: Include xlp.md.
9132         * config/mips/xlp.md: New file.
9133
9134 2012-07-21  Steven Bosscher <steven@gcc.gnu.org>
9135
9136         PR gcov-profile/32543
9137         * profile.c (branch_prob): Update total_num_edges_instrumented and
9138         report the number of edges to instrument.
9139
9140 2012-07-21  Oleg Endo  <olegendo@gcc.gnu.org>
9141
9142         * config/sh/sh.md: Correct comment regarding clrt and sett insns.
9143
9144 2012-07-21  Andrew Pinski  <apinski@cavium.com>
9145
9146         * config/mips/mips.md (*popcountdi2_trunc): New pattern
9147         to handle popcount of a truncation.
9148
9149 2012-07-21  Andrew Pinski  <apinski@cavium.com>
9150
9151         * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
9152         Add a bool argument.
9153         * config/mips/mips.c (mips_block_move_straight): Update call to
9154         mips_expand_ext_as_unaligned_load.
9155         (mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
9156         Accept DImode dest when the width is that of SImode.
9157         * config/mips/mips.md (extv): Update call to
9158         mips_expand_ext_as_unaligned_load.
9159         (extzv): Likewise.
9160
9161 2012-07-21  Andrew Pinski  <apinski@cavium.com>
9162
9163         * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
9164         adjust_address.
9165
9166 2012-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
9167
9168         * config/mips/mips.md (define_attr sync_*): Move before "type".
9169         (define_attr "type"): New values "atomic" and "syncloop".
9170         * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
9171         Set "type" attribute.
9172         * config/mips/generic.md (generic_atomic, generic_syncloop):
9173         New reservations.
9174         * gcc/config/mips/10000.md, gcc/config/mips/20kc.md,
9175         * gcc/config/mips/24k.md, gcc/config/mips/4130.md,
9176         * gcc/config/mips/4k.md, gcc/config/mips/5400.md,
9177         * gcc/config/mips/5500.md, gcc/config/mips/5k.md,
9178         * gcc/config/mips/7000.md, gcc/config/mips/74k.md,
9179         * gcc/config/mips/9000.md, gcc/config/mips/loongson2ef.md,
9180         * gcc/config/mips/loongson3a.md, gcc/config/mips/octeon.md,
9181         * gcc/config/mips/sb1.md, gcc/config/mips/sr71k.md,
9182         * gcc/config/mips/xlr.md: Handle "atomic" and "syncloop" types.
9183
9184 2012-07-20  Oleg Endo  <olegendo@gcc.gnu.org>
9185
9186         * config/sh/sh.md: Group and sort shift related patterns.
9187         (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
9188
9189 2012-07-20  Hans-Peter Nilsson  <hp@axis.com>
9190
9191         * config/cris/cris.c (cris_asm_output_ident): Remove unused
9192         local variables section_asm_op, size, buf.
9193
9194 2012-07-20  Pat Haugen <pthaugen@us.ibm.com>
9195             Steven Bosscher  <steven@gcc.gnu.org>
9196
9197         * config/rs6000/power4.md (power4-store-update): Fix reservation.
9198         (power4-three): Likewise.
9199
9200 2012-07-20  Sameera Deshpande  <sameera.deshpande@arm.com>
9201             Greta Yorsh  <Greta.Yorsh@arm.com>
9202
9203         * config/arm/arm.c (arm_cortex_a15_tune): New tune.
9204         * config/arm/arm-cores.def (cortex-a15): Use it.
9205
9206 2012-07-20  Sameera Deshpande  <sameera.deshpande@arm.com>
9207             Greta Yorsh  <Greta.Yorsh@arm.com>
9208
9209         * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
9210         * config/arm/arm.c (arm_slowmul_tune): Initialize it.
9211         (arm_fastmul_tune, arm_strongarm_tune): Likewise.
9212         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
9213         (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
9214         (arm_fa726te_tune): Likewise.
9215
9216 2012-07-20  Richard Guenther  <rguenther@suse.de>
9217
9218         * tree-dfa.c (collect_dfa_stats): Simplify.
9219         * tree-ssa-structalias.c (compute_may_aliases): Do not dump
9220         referenced vars.
9221         * cfgexpand.c (estimated_stack_frame_size): Walk over local
9222         decls instead of referenced vars.
9223         * tree-ssa.c (delete_tree_ssa): Simplify.
9224         * tree-tailcall.c (find_tail_calls): Walk over local decls
9225         instead of referenced vars.
9226         (add_virtual_phis): Remove.
9227         (tree_optimize_tail_calls_1): Instead mark the virtual operand
9228         for renaming.
9229
9230 2012-07-20  Steven Bosscher  <steven@gcc.gnu.org>
9231
9232         * basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
9233         (brief_dump_cfg): Update prototype to take flags argument.
9234         (check_bb_profile): Remove prototype.
9235         * tracer.c (tracer): Update brief_dump_cfg calls.
9236         * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
9237         Call dump_bb_info before and after the cfghook dump_bb.  Terminate
9238         the dump with a newline.
9239         (dump_flow_info): Do not call check_bb_profile.
9240         * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
9241         (check_bb_profile): Make static.  Take indent and flags arguments.
9242         (dump_bb_info): Always dump loop depth.  With TDF_DETAILS, call
9243         check_bb_profile.  Print one edge per line.
9244         (brief_dump_cfg): Take a flags argument, and filter out
9245         TDF_COMMENT and TDF_DETAILS.
9246         * pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
9247         * gimple-pretty-print.c (dump_gimple_bb_header): Do not use
9248         dump_bb_info here, it is already called from dump_bb.  Idem for
9249         check_bb_profile.
9250         (dump_gimple_bb_footer): Likewise.
9251         (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
9252         avoid broken dumps for statement histograms.
9253         (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK.  Do
9254         not call pp_flush here, the buffer should be empty.
9255         * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
9256         * sched-vis.c (debug_bb_slim): Likewise.
9257         * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
9258         (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
9259         (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
9260         (dump_function_to_file): Do not call check_bb_profile on
9261         ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
9262         Use dump_bb instead of gimple_dump_bb.
9263         (print_loops_bb): Use dump_bb instead of gimple_dump_bb.
9264         * passes.c (execute_function_dump): Always call print_rtl_with_bb
9265         for RTL dumps.
9266         * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
9267         CFG.  With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
9268         bottom of each basic block.
9269
9270 2012-07-20  Richard Guenther  <rguenther@suse.de>
9271
9272         PR tree-optimization/54031
9273         * tree-ssa-ccp.c (get_value_from_alignment): Use
9274         get_pointer_alignment_1.
9275
9276 2012-07-20  Richard Guenther  <rguenther@suse.de>
9277
9278         * tree-inline.c (add_local_variables): Remove check_var_ann
9279         parameter and dead code.
9280         (expand_call_inline): Adjust.
9281         (tree_function_versioning): Likewise.
9282
9283 2012-07-20  Jakub Jelinek  <jakub@redhat.com>
9284
9285         PR c++/28656
9286         * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
9287         of just the first one.
9288
9289 2012-07-20  Richard Guenther  <rguenther@suse.de>
9290
9291         * builtins.c (get_object_alignment_2): Correct offset handling
9292         when using type alignment of a MEM_REF kind base.
9293
9294 2012-07-20  Kirill Yukhin  <kirill.yukhin@intel.com>
9295
9296         PR target/53877
9297         * config/i386/lzcntintrin.h (_lzcnt_u32): New.
9298         (_lzcnt_u64): Ditto.
9299
9300 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
9301
9302         * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
9303
9304 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
9305
9306         * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
9307         defining statement is a SSA name that occurs in abnormal PHIs.
9308
9309 2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>
9310
9311         * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
9312         conversions.
9313
9314 2012-07-19  Jakub Jelinek  <jakub@redhat.com>
9315
9316         PR rtl-optimization/53942
9317         * function.c (assign_parm_setup_reg): Avoid zero/sign extension
9318         directly from likely spilled non-fixed hard registers, move them
9319         to pseudo first.
9320
9321 2012-07-19  Steve Ellcey  <sellcey@mips.com>
9322
9323         * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
9324         MIPS16 mode.
9325
9326 2012-07-19  Jason Merrill  <jason@redhat.com>
9327
9328         PR debug/53235
9329         * dwarf2out.c (get_die_parent): New.
9330         (generate_type_signature): Use it.
9331
9332 2012-07-19  Richard Henderson  <rth@redhat.com>
9333
9334         * config/ia64/vect.md (smulv4hi3_highpart): New.
9335         (umulv4hi3_highpart): New.
9336         (vec_widen_smult_even_v4hi): Rename from pmpy2_even.
9337         (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
9338         (udot_prodv8qi, sdot_prodv8qi): Remove.
9339         (sdot_prodv4hi, udot_prodv4hi): Remove.
9340         * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
9341         * config/ia64/ia64-protos.h: Update.
9342
9343         * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
9344         vectors larger than UNITS_PER_WORD.
9345
9346         * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
9347         * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
9348         dummy != CODE_FOR_nothing value.
9349
9350 2012-07-19  Uros Bizjak  <ubizjak@gmail.com>
9351
9352         * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
9353         * doc/tm.texi: Regenerate.
9354         * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
9355         * config/sh/sh.h (MODE_AFTER): Update.
9356         * config/epiphany/epiphany.h (MODE_AFTER): Update.
9357
9358 2012-07-19  Jakub Jelinek  <jakub@redhat.com>
9359
9360         PR middle-end/54017
9361         * tree-cfgcleanup.c (cleanup_omp_return): Remove.
9362         (cleanup_tree_cfg_bb): Don't call it.
9363         * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
9364         handling.
9365
9366 2012-07-19  Christian Bruel  <christian.bruel@st.com>
9367
9368         PR target/54029
9369         * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
9370
9371 2012-07-19  Richard Guenther  <rguenther@suse.de>
9372             Eric Botcazou  <ebotcazou@adacore.com>
9373
9374         * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
9375         about transition from invariant to known bits.
9376         (likely_value): Addresses with UNDEFINED components are UNDEFINED.
9377
9378 2012-07-19  Richard Guenther  <rguenther@suse.de>
9379
9380         PR tree-optimization/53970
9381         * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.
9382
9383 2012-07-19  Tristan Gingold  <gingold@adacore.com>
9384             Richard Henderson  <rth@redhat.com>
9385
9386         * opts.c (finish_options): Handle UI_SEH.
9387         * expr.c (build_personality_function): Handle UI_SEH.
9388         * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
9389         * coretypes.h (unwind_info_type): Add UI_SEH.
9390         * config/i386/winnt.c (i386_pe_seh_emit_except_personality):
9391         New function.
9392         (i386_pe_seh_init_sections): Likewise.
9393         * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
9394         (TARGET_ASM_INIT_SECTIONS): Define.
9395         * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9396         (i386_except_unwind_info): New function.
9397
9398 2012-07-18  Maciej W. Rozycki  <macro@codesourcery.com>
9399             Chao-ying Fu  <fu@mips.com>
9400
9401         * config/mips/mips.opt (mmcu): New option.
9402         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
9403         _mips_mcu when TARGET_MCU.
9404         (ASM_SPEC): Pass mcu options to the assembler.
9405         * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.
9406
9407 2012-07-18  Ralf Corsépius  <ralf.corsepius@rtems.org>
9408
9409         * config.gcc (v850-*-rtems*): New target.
9410         * config/v850/rtems.h: New.
9411         * config/v850/t-rtems: New.
9412
9413 2012-07-18  Bill Schmidt  <wschmidt@linux.ibm.com>
9414
9415         * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
9416         of flags controlling optimization; add -ftree-slsr to list of flags
9417         enabled by default at -O; add -fhoist-adjacent-loads to list of flags
9418         enabled by default at -O2; add -fvect-cost-model to list of flags
9419         enabled by default at -O3; document -fhoist-adjacent-loads and
9420         -ftree-slsr.
9421         * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
9422         * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
9423         flag_tree_slsr.
9424         * common.opt: Add -ftree-slsr with flag_tree_slsr.
9425
9426 2012-07-18  Jie Zhang  <jzhang918@gmail.com>
9427             Julian Brown  <julian@codesourcery.com>
9428
9429         * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
9430         (arm_size_rtx_costs): Likewise.
9431         (neon_valid_immediate): Add a case for double 0.0.
9432
9433 2012-07-18  Andrew Stubbs  <ams@codesourcery.com>
9434             Mark Shinwell  <shinwell@codesourcery.com>
9435             Julian Brown  <julian@codesourcery.com>
9436
9437         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
9438         (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
9439         (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
9440         (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
9441         neon_type.
9442         * config/arm/arm.md (neon_type): Update comment.
9443
9444 2012-07-18  Richard Guenther  <rguenther@suse.de>
9445
9446         PR tree-optimization/53970
9447         * tree.h (contains_packed_reference): Remove.
9448         * expr.c (contains_packed_reference): Likewise.
9449         * tree-vect-data-refs.c (not_size_aligned): New function.
9450         (vector_alignment_reachable_p): Use it.
9451         (vect_supportable_dr_alignment): Likewise.
9452
9453 2012-07-18  Richard Guenther  <rguenther@suse.de>
9454
9455         * tree.h (get_object_or_type_alignment): Remove.
9456         * builtins.c (get_object_alignment_2): New function copied from
9457         get_object_alignment_1.  Take extra argument to indicate whether
9458         we take the address of EXP.  Rework to use type alignment information
9459         if not, and return whether the result is an approximation or not.
9460         (get_object_alignment_1): Wrap around get_object_alignment_2.
9461         (get_pointer_alignment_1): Call get_object_alignment_2 indicating
9462         we take the address.
9463         (get_object_or_type_alignment): Remove.
9464         * expr.c (expand_assignment): Call get_object_alignment.
9465         (expand_expr_real_1): Likewise.
9466
9467 2012-07-18  Nick Clifton  <nickc@redhat.com>
9468
9469         * doc/invoke.texi (ARM Options): Document -munaligned-access.
9470
9471 2012-07-18  Oleg Endo  <olegendo@gcc.gnu.org>
9472
9473         * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
9474         expander.  Use arith_reg_dest predicate.
9475         (rotldi3, rotrdi3): Remove constraints in expander.
9476         (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
9477         ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
9478         insn_and_split.
9479
9480 2012-07-18  Oleg Endo  <olegendo@gcc.gnu.org>
9481
9482         PR target/33135
9483         * config/sh/sh.opt (mieee): Use Var instead of Mask.  Correct
9484         description.
9485         * config/sh/sh.c (sh_option_override): Do not change
9486         flag_finite_math_only.  Set TARGET_IEEE to complement of
9487         flag_finite_math_only.
9488         * doc/invoke.texi (SH options): Add mno-ieee.  Correct description
9489         of mieee and mno-ieee behavior.
9490
9491 2012-07-18  Steven Bosscher  <steven@gcc.gnu.org>
9492
9493         * graphite-poly.c (print_pbb_body): Fixup dump_bb call.
9494
9495 2012-07-18  Steven Bosscher  <steven@gcc.gnu.org>
9496
9497         * dumpfile.h (TDF_COMMENT): New define.
9498         * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
9499         EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
9500         EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
9501         EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
9502         Move to new file cfg-flags.h.
9503         (enum cfg_edge_flags): New enum, using cfg-flags.h.
9504         (EDGE_ALL_FLAGS): Compute value automatically.
9505         (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
9506         BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
9507         BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
9508         BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
9509         BB_IN_TRANSACTION): Move to new file cfg-flags.h.
9510         (enum bb_flags): Rename to cfg_bb_flags.  Use cfg-flags.h.
9511         (BB_ALL_FLAGS): New, compute value automatically.
9512         (dump_bb_info): Update prototype.
9513         (dump_edge_info): Update prototype.
9514         * cfg-flags.h: New file.
9515         * cfg.c (dump_edge_info): Take flags argument.  Be verbose only if
9516         TDF_DETAILS and not TDF_SLIM.  Include cfg-flags.h for bitnames.
9517         Check that the edge flags are within the range of EDGE_ALL_FLAGS.
9518         (debug_bb): Update dump_bb call.
9519         (dump_cfg_bb_info): Remove.
9520         (dump_bb_info): New function.  Use cfg-flags.h for bitnames.
9521         Adjust verbosity using TDF_* flags.  Check that the basic block flags
9522         are within the range of BB_ALL_FLAGS.
9523         (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
9524         * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
9525         first for consistency with other dump functions.
9526         (dump_bb): Update prototype accordingly.
9527         * cfghooks.c: Include dumpfile.h.
9528         (verify_flow_info): Update dump_edge_info calls.
9529         (dump_bb): Take a flags argument and pass it around.
9530         Use dump_bb_info to dump common information about a basic block.
9531         (dump_flow_info): Moved here from cfgrtl.c.  Make IL agnostic.
9532         (debug_flow_info): Moved here from cfgrtl.c.
9533         * profile.c (is_edge_inconsistent): Update dump_bb calls.
9534         * loop-invariant.c (find_defs): Update print_rtl_with_bb call.
9535         * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
9536         print_rtl_slim_with_bb): Remove prototypes.
9537         (dump_insn_slim): Adjust prototype to take a const_rtx.
9538         (print_rtl_with_bb): Adjust prototype.
9539         * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
9540         * sched-vis.c (dump_insn_slim): Take a const_rtx.
9541         (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
9542         (print_rtl_slim_with_bb): Remove.
9543         (print_rtl_slim): Rename to debug_rtl_slim.  Print only insn info,
9544         not basic block info (print_rtl_with_bb with TDF_SLIM should be used
9545         for that.  Prototype here near DEBUG_FUNCTION marker.
9546         (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
9547         Use dump_bb.
9548         (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
9549         * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
9550         (remove_bb): Update dump_bb call.
9551         (gimple_debug_bb): Use dump_bb.
9552         (dump_function_to_file): Update gimple_dump_bb call.
9553         (print_loops_bb): Likewise.
9554         * tree-flow.h (gimple_dump_bb): Update prototype.
9555         * gimple-pretty-print.c (dump_bb_header): Rename to
9556         dump_gimple_bb_header.  Write to a stream instead of a pretty
9557         printer.  Use dump_bb_info to dump basic block info.
9558         (dump_bb_end): Rename to dump_gimple_bb_footer.  Write to a
9559         stream instead of a pretty printer.  Use dump_bb_info.
9560         (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
9561         (gimple_dump_bb): Do it here with dump_gimple_bb_header and
9562         dump_gimple_bb_footer.
9563         * cfgrtl.c (rtl_dump_bb): Update prototype.  Only dump DF if the
9564         dump flags have TDF_DETAILS.  Use dump_insn_slim if TDF_SLIM.
9565         (print_rtl_with_bb): Take a flags argument and pass it around.
9566         Use dump_insn_slim if TDF_SLIM.
9567         (dump_bb_info): Removed and re-incarnated in cfg.c.
9568         (dump_flow_info): Moved to cfghooks.c.
9569         (debug_flow_info): Moved to cfghooks.c.
9570         * passes.c (execute_function_dump): Unconditionally use
9571         print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
9572         * final.c (dump_basic_block_info): Update dump_edge_info calls.
9573         * tree-vrp.c (dump_asserts_for): Likewise.
9574         * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
9575         * tree-if-conv.c (if_convertible_bb_p): Don't look at
9576         EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
9577         * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
9578         for the same reason.
9579         * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
9580
9581 2012-07-17  Richard Guenther  <rguenther@suse.de>
9582
9583         * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
9584         vars here, use create_tmp_reg where appropriate.
9585         (vect_create_addr_base_for_vector_ref): Do not add referenced
9586         vars here, use create_tmp_reg where appropriate.
9587         (vect_create_data_ref_ptr): Likewise.
9588         (vect_create_destination_var): Likewise.
9589         (vect_permute_store_chain): Likewise.
9590         (vect_permute_load_chain): Likewise.
9591         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
9592         Likewise.
9593         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
9594         * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
9595         (vect_handle_widen_op_by_const): Likewise.
9596         * tree-vect-stmts.c (vect_init_vector): Likewise.
9597         (vectorizable_load): Likewise.
9598
9599 2012-07-17  Tom de Vries  <tom@codesourcery.com>
9600
9601         * hwint.c: Fix loop range.
9602
9603 2012-07-17  Tom de Vries  <tom@codesourcery.com>
9604
9605         * double-int.h (double_int_popcount): New inline function.
9606         * hwint.c (popcount_hwi): New function.
9607         * hwint.h (popcount_hwi): Declare function.  New inline function.
9608
9609 2012-07-17  Richard Henderson  <rth@redhat.com>
9610
9611         * tree-vect-stmts.c (supportable_widening_operation): Remove decl
9612         parameters.
9613         (vectorizable_conversion): Update supportable_widening_operation call.
9614         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
9615         (vect_recog_widen_shift_pattern): Likewise.
9616         * tree-vectorizer.h: Update decl.
9617
9618 2012-07-17  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9619             Ulrich Weigand  <ulrich.weigand@linaro.org>
9620
9621         * common/config/arm/arm-common.c (arm_option_optimization_table):
9622         Enable -fsched-pressure by default while optimizing.
9623         * config/arm/arm.c (arm_option_override): Use the alternate scheduler
9624         pressure algorithm by default.
9625
9626 2012-07-16  Oleg Endo  <olegendo@gcc.gnu.org>
9627
9628         * config/sh/sh.h (CONST_OK_FOR_I06): Delete.
9629         (CONST_OK_FOR_I10): Move macro to ...
9630         * config/sh/sh.c: ... here.
9631         (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
9632         CONST_OK_FOR_I06.
9633
9634 2012-07-16  Oleg Endo  <olegendo@gcc.gnu.org>
9635
9636         * config/sh/sh.md: Delete mov related define_peephole patterns.
9637
9638 2012-07-16  Jonathan Wakely  <jwakely.gcc@gmail.com>
9639
9640         PR c++/53919
9641         * doc/install.texi (Installing GCC): Refer to instructions for
9642         released versions. Fix hyphenation.
9643
9644 2012-07-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9645
9646         * config/spu/spu.c (targetm): Move to bottom of file.
9647         (spu_attribute_table): Likewise.
9648         (spu_option_override, spu_init_builtins, spu_builtin_decl,
9649         spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
9650         spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
9651         adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
9652         frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
9653         insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
9654         get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
9655         spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
9656         spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
9657         spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
9658         spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
9659         spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
9660         spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
9661         spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
9662         spu_encode_section_info, spu_legitimize_address,
9663         spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
9664         spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
9665         spu_addr_space_pointer_mode, spu_addr_space_address_mode,
9666         spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
9667         spu_section_type_flags, spu_select_section, spu_unique_section,
9668         spu_trampoline_init, spu_conditional_register_usage,
9669         spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
9670         spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
9671         spu_setup_incoming_varargs): Remove prototypes.
9672         (spu_legitimize_address): Add "static" to definition.
9673
9674 2012-07-16  Jakub Jelinek  <jakub@redhat.com>
9675
9676         * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.
9677
9678 2012-07-16  Ulrich Weigand  <ulrich.weigand@linaro.org>
9679
9680         * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
9681         before calling gsi_stmt.
9682
9683 2012-07-16  Kirill Yukhin  <kirill.yukhin@intel.com>
9684
9685         Revert
9686         2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
9687
9688         * config/i386/i386.md (stack_protect_set): Disable the pattern
9689         for Android since Android libc (bionic) does not provide random
9690         value for stack protection guard at gs:0x14. Guard value
9691         will be provided from external symbol (default implementation).
9692         (stack_protect_set_<mode>): Likewise.
9693         (stack_protect_test): Likewise.
9694         (stack_protect_test_<mode>): Likewise.
9695
9696 2012-07-16  H.J. Lu  <hongjiu.lu@intel.com>
9697
9698         PR middle-end/53959
9699         PR bootstrap/53963
9700         * gimple.c (gimple_types_compatible_p_1): Restore type attribute
9701         comparison.
9702
9703 2012-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>
9704
9705         * opts.c (default_option): Add -fvect-cost-model to default options
9706         at -O3 and above.
9707
9708 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
9709
9710         * graphite-clast-to-gimple.c, graphite-dependences.c,
9711         graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
9712         for pass TODO flags.
9713         * Makefile.in: Fix dependencies.
9714
9715 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
9716
9717         * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
9718         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
9719
9720         * function.c (stack_protect_epilogue): Use expand_call to expand
9721         targetm.stack_protect_fail.
9722         * stmt.c (expand_expr_stmt): Remove now-unused function.
9723         * tree.h (expand_expr_stmt): Remove prototype.
9724         * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
9725         hook must return a CALL_EXPR.
9726         * doc/tm.texi: Regenerate.
9727
9728         * emit-rtl.c (emit_label_before): Do not allow the same label
9729         to be emitted twice.
9730         (emit_label_after): Likewise.
9731         (emit_label): Likewise.
9732
9733         * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
9734         TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
9735         * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
9736         TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
9737
9738 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
9739
9740         * system.h (dump_file): Do not define.
9741         * tree-pass.h: Include dumpfile.h, which is a new file containing...
9742         (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
9743         dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
9744         dump_flag_name, dump_file, dump_flags, dump_file_name,
9745         get_dump_file_info, struct dump_file_info): all of this, moved to...
9746         * dumpfile.h: Here, new file.
9747         * tree-dump.h: Include dumpfile.h, but not tree-pass.h.
9748         (dump_stmt): Remove prototype for C++ specific function.
9749         (dump_enumerated_decls): Move prototype from here...
9750         * tree-flow.h (dump_enumerated_decls): ... to here.
9751         (get_ref_base_and_extent) Move prototype from here ...
9752         * tree.h (get_ref_base_and_extent) ... to here.
9753         * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
9754         gimple-pretty-print.h is enough.  Do not include tree-dump.h,
9755         include timevar.h and dumpfile.h instead.
9756         (struct numbered_tree_d, compare_decls_by_uid,
9757         dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
9758         * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
9759         dump_enumerated_decls_push, dump_enumerated_decls):... to here.
9760         Do not include timevar.h.
9761         * tree.c: Do not include timevar.h.
9762         * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
9763         timevar.h.
9764         (dump_cfg_stats): Use current_function_name.
9765         (gimple_cfg2vcg): Likewise.
9766         (dump_function_to_file): Likewise.
9767         * df-scan.c: Do not include tree-pass.h and timevar.h.
9768         Include dumpfile.h.
9769         (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
9770         use print_current_pass.
9771         * df-problems.c: Include dumpfile.h.
9772         Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
9773         leads to errors in the code not selected.
9774         (df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
9775         bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
9776         * lcm.c: Include dumpfile.h.
9777         Remove obsolete include of insn-attr.h.
9778         * dojump.c (do_compare_rtx_and_jump): Remove failure printing for
9779         missing probability notes.
9780         * stmt.c: Include dumpfile.h.
9781         (emit_case_decision_tree): Re-enable printing expand details only
9782         if TDF_DETAILS.
9783         * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
9784         cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
9785         cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
9786         coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
9787         dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
9788         function.c, fwprop.c, gcse.c, gimple-fold.c,
9789         gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
9790         gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
9791         graphite-dependences.c, graphite-interchange.c,
9792         graphite-optimize-isl.c, graphite-poly.c,
9793         graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
9794         ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
9795         ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
9796         ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
9797         jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
9798         loop-unroll.c, loop-unswitch.c, lower-subreg.c,
9799         lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
9800         mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
9801         plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
9802         print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
9803         regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
9804         sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
9805         store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
9806         tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
9807         tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
9808         tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
9809         tree-mudflap.c, tree-nrv.c, tree-object-size.c,
9810         tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
9811         tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
9812         tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
9813         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
9814         tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
9815         tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
9816         tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
9817         tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
9818         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
9819         tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
9820         tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
9821         tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
9822         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
9823         tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
9824         tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
9825         tree-ssa-uncprop.c, tree-ssa-uninit.c,
9826         tree-switch-conversion.c, tree-tailcall.c,
9827         tree-vect-data-refs.c, tree-vect-loop.c,
9828         tree-vect-loop-manip.c, tree-vectorizer.c,
9829         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
9830         tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
9831         only if needed.  If tree-pass.h is included, do not include timevar.h
9832         and dumpfile.h.  If tree-pass.h is not included but dump_file, or
9833         dump_flags, or the TDF_* flags are used, include dumpfile.h.
9834         If gimple-pretty-print.h is included, don't include
9835         tree-pretty-print.h.  Remove assorted unnecessary includes.
9836
9837         * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
9838         config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
9839         config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
9840         Include dumpfile.h.
9841         * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
9842         * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
9843         spu/t-spu-elf: Fix dependencies.
9844
9845 2012-07-16  Dehao Chen  <dehao@google.com>
9846
9847         Revert
9848         2012-07-10  Dehao Chen  <dehao@google.com>
9849
9850         * tree.h (phi_arg_d): New field.
9851         * tree-flow-inline.h (gimple_phi_arg_block): New function.
9852         (gimple_phi_arg_block_from_edge): New function.
9853         (gimple_phi_arg_set_block): New function.
9854         (gimple_phi_arg_has_block): New function.
9855         (redirect_edge_var_map_block): New function.
9856         * tree-flow.h (_edge_var_map): New field.
9857         * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
9858         * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
9859         redirect_edge_var_map_add.
9860         * tree-outof-ssa.c (_elim_graph): New field.
9861         (insert_partition_copy_on_edge): New parameter.
9862         (insert_value_copy_on_edge): New parameter.
9863         (insert_rtx_to_part_on_edge): New parameter.
9864         (insert_part_to_rtx_on_edge): New parameter.
9865         (elim_graph_add_edge): New parameter.
9866         (elim_graph_remove_succ_edge): New parameter.
9867         (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
9868         (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
9869         (new_elim_graph): Add block debug info.
9870         (clear_elim_graph): Likewise.
9871         (delete_elim_graph): Likewise.
9872         (elim_graph_add_node): Likewise.
9873         (elim_graph_add_edge): Likewise.
9874         (elim_graph_remove_succ_edge): Likewise.
9875         (eliminate_build): Likewise.
9876         (elim_forward): Likewise.
9877         (elim_unvisited_predecessor): Likewise.
9878         (elim_backward): Likewise.
9879         (elim_create): Likewise.
9880         (eliminate_phi): Likewise.
9881         (insert_backedge_copies): Likewise.
9882         * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
9883         add_phi_arg.
9884         (rewrite_add_phi_arguments): Likewise.
9885         * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
9886         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
9887         * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
9888         * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
9889         * tree-ssa-loop-manip.c (create_iv): Likewise.
9890         (add_exit_phis_edge): Likewise.
9891         (split_loop_exit_edge): Likewise.
9892         (copy_phi_node_args): Likewise.
9893         (tree_transform_and_unroll_loop): Likewise.
9894         * value-prof.c (gimple_ic): Likewise.
9895         (gimple_stringop_fixed_value): Likewise.
9896         * tree-tailcall.c (add_successor_phi_arg): Likewise.
9897         (eliminate_tail_call): Likewise.
9898         (create_tailcall_accumulator): Likewise.
9899         (tree_optimize_tail_calls_1): Likewise.
9900         * tree-phinodes.c (add_phi_arg): Likewise.
9901         (make_phi_node): Likewise.
9902         (resize_phi_node): Likewise.
9903         (remove_phi_arg_num): Likewise.
9904         * omp-low.c (expand_parallel_call): Likewise.
9905         (expand_omp_for_static_chunk): Likewise.
9906         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
9907         Likewise.
9908         (slpeel_update_phi_nodes_for_guard1): Likewise.
9909         (slpeel_update_phi_nodes_for_guard2): Likewise.
9910         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
9911         (set_prologue_iterations): Likewise.
9912         (slpeel_tree_peel_loop_to_edge): Likewise.
9913         (vect_loop_versioning): Likewise.
9914         * tree-parloops.c (create_phi_for_local_result): Likewise.
9915         (transform_to_exit_first_loop): Likewise.
9916         (create_parallel_loop): Likewise.
9917         * ipa-split.c (split_function): Likewise.
9918         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
9919         (vect_create_epilog_for_reduction): Likewise.
9920         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
9921         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
9922         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
9923         (cond_if_else_store_replacement_1): Likewise.
9924         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
9925         (remove_forwarder_block_with_phi): Likewise.
9926         * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
9927         * tree-predcom.c (initialize_root_vars): Likewise.
9928         (initialize_root_vars_lm): Likewise.
9929         * sese.c (sese_add_exit_phis_edge): Likewise.
9930         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
9931         * tree-ssa.c (flush_pending_stmts): Likewise.
9932         (redirect_edge_var_map_add): Likewise.
9933         (ssa_redirect_edge): Likewise.
9934         * gimple-streamer-in.c (input_phi): Likewise.
9935         * tree-vect-stmts.c (vectorizable_load): Likewise.
9936         * tree-inline.c (copy_phis_for_bb): Likewise.
9937         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
9938         * tree-switch-conversion.c (fix_phi_nodes): Likewise.
9939         * tree-cfg.c (reinstall_phi_args): Likewise.
9940         (gimple_make_forwarder_block): Likewise.
9941         (add_phi_args_after_copy_edge): Likewise.
9942         (gimple_duplicate_sese_tail): Likewise.
9943
9944 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
9945
9946         * config/i386/i386.md (stack_protect_set): Disable the pattern
9947         for Android since Android libc (bionic) does not provide random
9948         value for stack protection guard at gs:0x14. Guard value
9949         will be provided from external symbol (default implementation).
9950         (stack_protect_set_<mode>): Likewise.
9951         (stack_protect_test): Likewise.
9952         (stack_protect_test_<mode>): Likewise.
9953
9954 2012-07-16  Hans-Peter Nilsson  <hp@axis.com>
9955
9956         * config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
9957         * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
9958         CONSTANT_P and cris_legitimate_address_p.
9959         * config/cris/cris.c (cris_legitimate_address_p): Make non-static.
9960         (cris_preferred_reload_class): Don't return GENERAL_REGS as
9961         preferred to MOF_SRP_REGS.
9962
9963         * config/cris/cris.c (cris_init_libfuncs): Handle initialization
9964         of library functions for basic atomic compare-and-swap.
9965         * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
9966         * config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
9967         * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
9968         ("cris_atomic_fetch_<atomic_op_name><mode>_1")
9969         ("atomic_compare_and_swap<mode>")
9970         ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
9971         TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
9972         * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
9973         * config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
9974         (atomic_op_op_pred): Ditto.
9975         (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
9976         reflect the change to include %2 in expansion.  All callers changed.
9977         (qm3): New mode_attr.
9978         ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
9979         as predicate for operand 2.
9980         ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME.  Use
9981         "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
9982         constraint for operand 2.
9983         ("atomic_compare_and_swap<mode>"): Add FIXME.  Change predicate to
9984         nonmemory_operand for operand 3.
9985         ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
9986         exclude memory.  Improve emitted sync code for v10 and v32.  Use
9987         <qm3> instead of <m> for size designator for cmp.
9988         ("atomic_compare_and_swap<mode>"): Change predicate to
9989         nonmemory_operand for operand 3.  Add FIXME.
9990         ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
9991         constraints for operand 3 to exclude memory.
9992         ("atomic_fetch_<atomic_op_name><mode>")
9993         ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
9994         calls on result of call to need_atomic_barrier_p.
9995
9996 2012-07-15  Richard Sandiford  <rdsandiford@googlemail.com>
9997
9998         * config/mips/mips.md (move_type): Replace mfhilo and mthilo
9999         with mflo and mtlo.
10000         (type): Split mfhilo into mfhi and mflo.  Split mthilo into mthi
10001         and mtlo.  Adjust move_type->type mapping.
10002         (may_clobber_hilo): Split mthilo into mthi and mtlo.
10003         (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
10004         (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
10005         (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
10006         instead of mthilo and mfhilo.
10007         (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
10008         (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
10009         * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
10010         (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
10011         Use mflo instead of mfhilo.
10012         * config/mips/10000.md (r10k_arith): Split mthilo.
10013         (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
10014         * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
10015         (ir_sb1_mthilo): Split mthilo into mthi and mtlo.
10016         * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
10017         mthilo and mfhilo.
10018         * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
10019         * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
10020         Likewise.
10021         * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
10022         * config/mips/5400.md (ir_vr54_hilo): Likewise.
10023         * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
10024         * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
10025         * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
10026         * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
10027         * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
10028         * config/mips/generic.md (generic_hilo): Likewise.
10029         * config/mips/loongson2ef.md (ls2_alu): Likewise.
10030         * config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
10031         * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
10032         (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
10033         * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
10034         * config/mips/xlr.md (xlr_hilo): Likewise.
10035
10036 2012-07-14  Andrew Stubbs  <ams@codesourcery.com>
10037             Sandra Loosemore  <sandra@codesourcery.com>
10038
10039         * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.
10040
10041 2012-07-14  Uros Bizjak  <ubizjak@gmail.com>
10042
10043         * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
10044         for TARGET_SSE.
10045
10046 2012-07-14  Steven Bosscher  <steven@gcc.gnu.org>
10047
10048         * toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
10049
10050 2012-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
10051
10052         PR bootstrap/53955
10053         * config/spu/spu.c (spu_init_cost): Mark static.
10054         (spu_add_stmt_cost): Likewise.
10055         (spu_finish_cost): Likewise.
10056         (spu_destroy_cost_data): Likewise.
10057         * config/i386/i386.c (ix86_init_cost): Mark static.
10058         (ix86_add_stmt_cost): Likewise.
10059         (ix86_finish_cost): Likewise.
10060         (ix86_destroy_cost_data): Likewise.
10061         * config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
10062         (rs6000_add_stmt_cost): Likewise.
10063         (rs6000_finish_cost): Likewise.
10064         (rs6000_destroy_cost_data): Likewise.
10065
10066 2012-07-13  Steven Bosscher  <steven@gcc.gnu.org>
10067
10068         * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
10069         ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
10070         ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
10071         ATTRIBUTE_MALLOC.
10072         * alloc-pool.h (pool_alloc): Likewise.
10073
10074         * final.c (final): Do not loop to find max_uid.
10075
10076 2012-07-13  Steven Bosscher  <steven@gcc.gnu.org>
10077
10078         * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
10079         * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.
10080
10081 2012-07-13  Richard Guenther  <rguenther@suse.de>
10082
10083         PR tree-optimization/53907
10084         * tree-ssa-forwprop.c (associate_pointerplus): New function.
10085         (ssa_forward_propagate_and_combine): Call it.
10086
10087 2012-07-13  Richard Guenther  <rguenther@suse.de>
10088
10089         PR tree-optimization/53922
10090         * tree-vrp.c (value_inside_range): Change prototype to take
10091         min/max instead of value-range.
10092         (range_includes_zero_p): Likewise.  Return the result from
10093         value_inside_range.
10094         (extract_range_from_binary_expr_1): Adjust to handle dont-know
10095         return value from range_includes_zero_p.
10096         (extract_range_from_unary_expr_1): Likewise.
10097         (compare_range_with_value): Likewise.
10098         (vrp_meet_1): Likewise.
10099
10100 2012-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>
10101
10102         * doc/tm.texi: Regenerate.
10103         * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
10104         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
10105         (TARGET_VECTORIZE_FINISH_COST): Likewise.
10106         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
10107         * targhooks.c (default_init_cost): New function.
10108         (default_add_stmt_cost): Likewise.
10109         (default_finish_cost): Likewise.
10110         (default_destroy_cost_data): Likewise.
10111         * targhooks.h (default_init_cost): New decl.
10112         (default_add_stmt_cost): Likewise.
10113         (default_finish_cost): Likewise.
10114         (default_destroy_cost_data): Likewise.
10115         * target.def (init_cost): New DEFHOOK.
10116         (add_stmt_cost): Likewise.
10117         (finish_cost): Likewise.
10118         (destroy_cost_data): Likewise.
10119         * target.h (struct _stmt_vec_info): New extern decl.
10120         (stmt_vectype): Likewise.
10121         (stmt_in_inner_loop_p): Likewise.
10122         * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
10123         (stmt_vector_for_cost): New VEC/typedef.
10124         (add_stmt_info_to_vec): New function.
10125         (struct _slp_tree): Remove cost.inside_of_loop field.
10126         (struct _slp_instance): Remove cost.inside_of_loop field; add
10127         stmt_cost_vec field.
10128         (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
10129         (SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
10130         (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
10131         (struct _vect_peel_extended_info): Add stmt_cost_vec field.
10132         (struct _loop_vec_info): Add target_cost_data field.
10133         (LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
10134         (struct _bb_vec_info): Add target_cost_data field.
10135         (BB_VINFO_TARGET_COST_DATA): New accessor macro.
10136         (struct _stmt_vec_info): Remove cost.inside_of_loop field.
10137         (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
10138         (stmt_vinfo_set_inside_of_loop_cost): Remove function.
10139         (init_cost): New function.
10140         (add_stmt_cost): Likewise.
10141         (finish_cost): Likewise.
10142         (destroy_cost_data): Likewise.
10143         (vect_model_simple_cost): Change parameter list.
10144         (vect_model_store_cost): Likewise.
10145         (vect_model_load_cost): Likewise.
10146         (record_stmt_cost): New extern decl.
10147         (vect_get_load_cost): Change parameter list.
10148         (vect_get_store_cost): Likewise.
10149         * tree-vect-loop.c (new_loop_vec_info): Call init_cost.
10150         (destroy_loop_vec_info): Call destroy_cost_data.
10151         (vect_estimate_min_profitable_iters): Remove old calculation of
10152         inside costs; call finish_cost instead.
10153         (vect_model_reduction_cost): Call add_stmt_cost instead of old
10154         inside-costs calculation.
10155         (vect_model_induction_cost): Likewise.
10156         * tree-vect-data-refs.c (vect_get_data_access_cost): Change to
10157         return a stmt_vector_for_cost; modify calls to vect_get_load_cost
10158         and vect_get_store_cost to obtain the value to return.
10159         (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
10160         vect_get_data_access_cost and store it in the minimum peeling
10161         structure.
10162         (vect_peeling_hash_choose_best_peeling): Change the parameter list
10163         to add a (stmt_vector_for_cost *) output parameter, and set its value.
10164         (vect_enhance_data_refs_alignment): Ignore the new return value from
10165         calls to vect_get_data_access_cost; obtain stmt_cost_vec from
10166         vect_peeling_hash_choose_best_peeling and pass its contents to the
10167         target cost model.
10168         * tree-vect-stmts.c (stmt_vectype): New function.
10169         (stmt_in_inner_loop_p): Likewise.
10170         (record_stmt_cost): Likewise.
10171         (vect_model_simple_cost): Add stmt_cost_vec parameter; call
10172         record_stmt_cost instead of old calculation; don't call
10173         stmt_vinfo_set_inside_of_loop_cost.
10174         (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
10175         old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
10176         (vect_model_store_cost): Add stmt_cost_vec parameter; call
10177         record_stmt_cost instead of old calculation; add stmt_cost_vec
10178         parameter to vect_get_store_cost call; don't call
10179         stmt_vinfo_set_inside_of_loop_cost.
10180         (vect_get_store_cost): Add stmt_cost_vec parameter; call
10181         record_stmt_cost instead of old calculation.
10182         (vect_model_load_cost): Add stmt_cost_vec parameter; call
10183         record_stmt_cost instead of old calculation; add stmt_cost_vec
10184         parameter to vect_get_load_cost call; don't call
10185         stmt_vinfo_set_inside_of_loop_cost.
10186         (vect_get_load_cost): Add stmt_cost_vec parameter; call
10187         record_stmt_cost instead of old calculation.
10188         (vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
10189         (vectorizable_conversion): Likewise.
10190         (vectorizable_assignment): Likewise.
10191         (vectorizable_shift): Likewise.
10192         (vectorizable_operation): Likewise.
10193         (vectorizable_store): Add NULL parameter to vect_model_store_cost call.
10194         (vectorizable_load): Add NULL parameter to vect_model_load_cost call.
10195         (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
10196         * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
10197         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
10198         (TARGET_VECTORIZE_FINISH_COST): Likewise.
10199         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
10200         (spu_init_cost): New function.
10201         (spu_add_stmt_cost): Likewise.
10202         (spu_finish_cost): Likewise.
10203         (spu_destroy_cost_data): Likewise.
10204         * config/i386/i386.c (ix86_init_cost): New function.
10205         (ix86_add_stmt_cost): Likewise.
10206         (ix86_finish_cost): Likewise.
10207         (ix86_destroy_cost_data): Likewise.
10208         (TARGET_VECTORIZE_INIT_COST): New macro def.
10209         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
10210         (TARGET_VECTORIZE_FINISH_COST): Likewise.
10211         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
10212         * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
10213         (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
10214         (TARGET_VECTORIZE_FINISH_COST): Likewise.
10215         (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
10216         (rs6000_init_cost): New function.
10217         (rs6000_add_stmt_cost): Likewise.
10218         (rs6000_finish_cost): Likewise.
10219         (rs6000_destroy_cost_data): Likewise.
10220         * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
10221         (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
10222         (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
10223         stmt_cost_vec parameter to vect_model_store_cost and
10224         vect_model_simple_cost calls.
10225         (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
10226         parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
10227         vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
10228         calculating cost more than once for loads; remove inside_cost
10229         parameter from recursive vect_build_slp_tree calls; call
10230         record_stmt_cost instead of old calculation.
10231         (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
10232         the instance; free it on premature exit; remove inside_cost parameter
10233         from vect_build_slp_tree call; add stmt_cost_vec parameter to
10234         vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
10235         (new_bb_vec_info): Call init_cost.
10236         (destroy_bb_vec_info): Call destroy_cost_data.
10237         (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
10238         statement recorded with an SLP instance; call finish_cost instead of
10239         the old calculation.
10240         (vect_update_slp_costs_according_to_vf): Record statement costs from
10241         SLP instances, multiplying by the appropriate number of copies; don't
10242         update SLP_INSTANCE_INSIDE_OF_LOOP_COST.
10243
10244 2012-07-13  Richard Guenther  <rguenther@suse.de>
10245
10246         PR middle-end/53937
10247         * builtins.c (get_pointer_alignment_1): Handle constant
10248         pointers.
10249
10250 2012-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
10251             Steven Bosscher  <steven@gcc.gnu.org>
10252             Bernd Schmidt  <bernds@codesourcery.com>
10253
10254         PR rtl-optimization/53908
10255         * df-problems.c (can_move_insns_across): When doing
10256         memory-reference book-keeping, handle call insns.
10257
10258 2012-07-13  Richard Guenther  <rguenther@suse.de>
10259
10260         * gimple.c (gimple_types_compatible_p_1): Remove redundant
10261         type attribute comparisons.
10262         (gimple_canonical_types_compatible_p): Likewise.
10263
10264 2012-07-12  Hans-Peter Nilsson  <hp@axis.com>
10265
10266         PR rtl-optimization/53176
10267         * rtlanal.c (rtx_cost): Adjust default cost for X with a
10268         UNITS_PER_WORD factor for all X according to the size of
10269         its mode, not just for SUBREGs with untieable modes.
10270         Handle SET.  Use factor * factor for MULT, DIV, UDIV,
10271         MOD, UMOD.
10272
10273 2012-07-12  Uros Bizjak  <ubizjak@gmail.com>
10274
10275         * config/i386/i386.md (QImode and HImode cmove splitters): Merge
10276         QImode and HImode splitters.  Use ix86_comparison_operator.
10277         Explicitly match FLAGS_REG.
10278         (DFmode cmove splitter): Explicitly match FLAGS_REG.
10279
10280 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
10281
10282         * expr.h (can_move_by_pieces): Move prototype from here ...
10283         * tree.h (can_move_by_pieces): ... to here.
10284         * optabs.h (set_widening_optab_handler): Use XCNEW.
10285         * gimplify.c: Do not include expr.h.
10286
10287         * toplev.c: Do not include dwarf2out.h.
10288         * config/ia64/ia64.c: Likewise.
10289         * config/sparc/sparc.c: Likewise.
10290         * config/sparc/t-sparc (sparc.o): Fix dependencies.
10291
10292         * Makefile.in (toplev.o): Fix dependencies
10293         (c-family/c-gimplify.o): Likewise.
10294         (c-family/c-common.o): Likewise.
10295
10296 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
10297
10298         * basic-block.h (struct edge_def): Use basic_block instead of
10299         basic_block_def *.
10300         * cfgloop.h (struct loop_exit, struct loop): Likewise.
10301         * gengenrtl.c (type_from_format): Likewise.  Also for 'tree'
10302         instead of union tree_node *.
10303         * rtl.h (union rtunion_def, emit_insn_before_noloc,
10304         emit_insn_after_noloc, add_insn_before, add_insn_after,
10305         debug_bb_slim): Likewise.
10306         * tree-inline.h (struct copy_body_data): Likewise.
10307         * sched-rgn.c (dump_region_dot): Likewise.
10308         * gimple.h (struct gimple_statement_base, gimple_set_bb,
10309         gsi_move_to_bb_end): Likewise.
10310         * sched-vis.c (debug_bb_slim): Likewise.
10311         (debug_bb_n_slim): Likewise.
10312         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
10313         (mn10300_block_contains_call):
10314
10315 2012-07-11  Greta Yorsh  <Greta.Yorsh@arm.com>
10316
10317         PR target/53859
10318         * config/arm/arm.c (arm_early_load_addr_dep): Handle new
10319         epilogue patterns.
10320
10321 2012-07-11  Jonathan Wakely  <jwakely.gcc@gmail.com>
10322
10323         * doc/extend.texi (Namespace Association): Alter cautionary text.
10324
10325 2012-07-10  Oleg Endo  <olegendo@gcc.gnu.org>
10326
10327         PR target/53911
10328         * config/sh/sh.md: Remove displacement addresssing related splits.
10329
10330 2012-07-10  Xinliang David Li  <davidxl@google.com>
10331
10332         * doc/invoke.texi: New option documented.
10333         * flag-types.h: New enum type.
10334         * gimplify.c (gimplify_bind_expr): Control
10335         clobber generation with new option.
10336         (gimplify_target_expr): Ditto.
10337         * common.opt: New option.
10338
10339 2012-07-10  Julian Brown  <julian@codesourcery.com>
10340
10341         * config/arm/arm.md (movsi): Don't split symbol refs here.
10342         (define_split): New.
10343
10344 2012-07-10  Andreas Schwab  <schwab@linux-m68k.org>
10345
10346         PR bootstrap/53913
10347         * config/m68k/m68k.c (m68k_epilogue_uses): New.
10348         * config/m68k/m68k.h (EPILOGUE_USES): Use it.
10349         * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.
10350
10351 2012-07-10  Richard Henderson  <rth@redhat.com>
10352
10353         * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
10354         * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
10355         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
10356         * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
10357         (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
10358         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
10359         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
10360         (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
10361         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
10362         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
10363         (bdesc_args): Remove entries to match.
10364         (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
10365         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
10366         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
10367         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
10368         (rs6000_builtin_mul_widen_odd): Remove.
10369         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
10370         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
10371         * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
10372         (spu_builtin_mul_widen_odd): Remove.
10373         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
10374         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
10375         * doc/tm.texi.in: Don't document the removed hooks.
10376
10377         * tree-vect-stmts.c (supportable_widening_operation): Expand
10378         WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.
10379
10380         * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
10381         (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
10382         * optabs.c (can_mult_highpart_p): New.
10383         (expand_mult_highpart): New.
10384         * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
10385         * tree-vect-generic.c (expand_vector_operations_1): Don't expand
10386         by pieces if can_mult_highpart_p.
10387         (expand_vector_divmod): Use can_mult_highpart_p and always
10388         generate MULT_HIGHPART_EXPR.
10389         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
10390         * tree-vect-stmts.c (vectorizable_operation): Likewise.
10391
10392         * config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
10393         (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
10394         * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
10395         (vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
10396         (vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
10397         (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
10398         * config/spu/spu-builtins.def: Update pattern names to match.
10399
10400         * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
10401         from altivec_vmuleub.
10402         (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
10403         (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
10404         (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
10405         (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
10406         (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
10407         (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
10408         (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
10409         * config/rs6000/rs6000-builtin.def: Update pattern names to match.
10410
10411         * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
10412         avx2_umulv4siv4di3.
10413         (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
10414         (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
10415         (mulv4si3): Remove XOP test shadowed by SSE4 test.
10416         * config/i386/i386.c (bdesc_args): Update pattern names.
10417         (ix86_expand_sse2_mulvxdi3): Likewise.
10418         (ix86_expand_mul_widen_evenodd): Likewise.  Remove XOP test
10419         shadowed by SSE4 test.
10420
10421         * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
10422         * cfgexpand.c (expand_debug_expr): Handle them.
10423         * expr.c (expand_expr_real_2): Likewise.
10424         * fold-const.c (fold_binary_loc): Likewise.
10425         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
10426         * optabs.c (optab_for_tree_code): Likewise.
10427         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
10428         * tree-inline.c (estimate_operator_cost): Likewise.
10429         * tree-pretty-print.c (dump_generic_node): Likewise.
10430         * tree.c (commutative_tree_code): Likewise.
10431         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
10432         Handle type change before looking up optab.
10433         * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
10434         (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
10435         (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
10436         (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
10437         * genopinit.c (optabs): Initialize them.
10438         * doc/md.texi: Document them.
10439
10440 2012-07-10  Dehao Chen  <dehao@google.com>
10441
10442         * tree.h (phi_arg_d): New field.
10443         * tree-flow-inline.h (gimple_phi_arg_block): New function.
10444         (gimple_phi_arg_block_from_edge): New function.
10445         (gimple_phi_arg_set_block): New function.
10446         (gimple_phi_arg_has_block): New function.
10447         (redirect_edge_var_map_block): New function.
10448         * tree-flow.h (_edge_var_map): New field.
10449         * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
10450         * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
10451         redirect_edge_var_map_add.
10452         * tree-outof-ssa.c (_elim_graph): New field.
10453         (insert_partition_copy_on_edge): New parameter.
10454         (insert_value_copy_on_edge): New parameter.
10455         (insert_rtx_to_part_on_edge): New parameter.
10456         (insert_part_to_rtx_on_edge): New parameter.
10457         (elim_graph_add_edge): New parameter.
10458         (elim_graph_remove_succ_edge): New parameter.
10459         (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
10460         (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
10461         (new_elim_graph): Add block debug info.
10462         (clear_elim_graph): Likewise.
10463         (delete_elim_graph): Likewise.
10464         (elim_graph_add_node): Likewise.
10465         (elim_graph_add_edge): Likewise.
10466         (elim_graph_remove_succ_edge): Likewise.
10467         (eliminate_build): Likewise.
10468         (elim_forward): Likewise.
10469         (elim_unvisited_predecessor): Likewise.
10470         (elim_backward): Likewise.
10471         (elim_create): Likewise.
10472         (eliminate_phi): Likewise.
10473         (insert_backedge_copies): Likewise.
10474         * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
10475         add_phi_arg.
10476         (rewrite_add_phi_arguments): Likewise.
10477         * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
10478         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
10479         * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
10480         * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
10481         * tree-ssa-loop-manip.c (create_iv): Likewise.
10482         (add_exit_phis_edge): Likewise.
10483         (split_loop_exit_edge): Likewise.
10484         (copy_phi_node_args): Likewise.
10485         (tree_transform_and_unroll_loop): Likewise.
10486         * value-prof.c (gimple_ic): Likewise.
10487         (gimple_stringop_fixed_value): Likewise.
10488         * tree-tailcall.c (add_successor_phi_arg): Likewise.
10489         (eliminate_tail_call): Likewise.
10490         (create_tailcall_accumulator): Likewise.
10491         (tree_optimize_tail_calls_1): Likewise.
10492         * tree-phinodes.c (add_phi_arg): Likewise.
10493         (make_phi_node): Likewise.
10494         (resize_phi_node): Likewise.
10495         (remove_phi_arg_num): Likewise.
10496         * omp-low.c (expand_parallel_call): Likewise.
10497         (expand_omp_for_static_chunk): Likewise.
10498         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
10499         Likewise.
10500         (slpeel_update_phi_nodes_for_guard1): Likewise.
10501         (slpeel_update_phi_nodes_for_guard2): Likewise.
10502         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
10503         (set_prologue_iterations): Likewise.
10504         (slpeel_tree_peel_loop_to_edge): Likewise.
10505         (vect_loop_versioning): Likewise.
10506         * tree-parloops.c (create_phi_for_local_result): Likewise.
10507         (transform_to_exit_first_loop): Likewise.
10508         (create_parallel_loop): Likewise.
10509         * ipa-split.c (split_function): Likewise.
10510         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
10511         (vect_create_epilog_for_reduction): Likewise.
10512         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
10513         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
10514         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
10515         (cond_if_else_store_replacement_1): Likewise.
10516         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
10517         (remove_forwarder_block_with_phi): Likewise.
10518         * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
10519         * tree-predcom.c (initialize_root_vars): Likewise.
10520         (initialize_root_vars_lm): Likewise.
10521         * sese.c (sese_add_exit_phis_edge): Likewise.
10522         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10523         * tree-ssa.c (flush_pending_stmts): Likewise.
10524         (redirect_edge_var_map_add): Likewise.
10525         (ssa_redirect_edge): Likewise.
10526         * gimple-streamer-in.c (input_phi): Likewise.
10527         * tree-vect-stmts.c (vectorizable_load): Likewise.
10528         * tree-inline.c (copy_phis_for_bb): Likewise.
10529         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
10530         * tree-switch-conversion.c (fix_phi_nodes): Likewise.
10531         * tree-cfg.c (reinstall_phi_args): Likewise.
10532         (gimple_make_forwarder_block): Likewise.
10533         (add_phi_args_after_copy_edge): Likewise.
10534         (gimple_duplicate_sese_tail): Likewise.
10535
10536 2012-07-09  Oleg Endo  <olegendo@gcc.gnu.org>
10537
10538         PR target/53886
10539         * config/sh/sh.c (sequence_insn_p): New function.
10540         (find_barrier, sh_insn_length_adjustment): Use it.
10541
10542 2012-07-09  Iain Sandoe  <iain@codesourcery.com>
10543
10544         PR target/53283
10545         * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
10546         if defined.
10547         * config/darwin.h: Rename TARGET_FOLD_BUILTIN to
10548         SUBTARGET_FOLD_BUILTIN.
10549         * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
10550         SUBTARGET_FOLD_BUILTIN.
10551
10552 2012-07-09  Iain Sandoe  <iain@codesourcery.com>
10553
10554         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
10555         runtime exceptions model setting from here ...
10556         * config/darwin.c (darwin_override_options): ... to here.
10557
10558 2012-07-09  Steven Bosscher  <steven@gcc.gnu.org>
10559
10560         PR tree-optimization/53887
10561         * tree-cfg.c (group_case_labels_stmt): Make non-static.
10562         * tree-flow.h (group_case_labels_stmt): Add prototype.
10563         * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
10564         to pre-process every switch.
10565
10566 2012-07-09  Jason Merrill  <jason@redhat.com>
10567
10568         PR c++/53882
10569         * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
10570         (type_hash_eq): Likewise.
10571
10572 2012-07-09  Tom de Vries  <tom@codesourcery.com>
10573             Richard Guenther  <rguenther@suse.de>
10574
10575         * tree-ssa-ccp.c (optimize_unreachable): New function.
10576         (execute_fold_all_builtins): Use optimize_unreachable to optimize
10577         BUILT_IN_UNREACHABLE.  Don't optimize after BUILT_IN_UNREACHABLE.
10578
10579 2012-07-09  Richard Guenther  <rguenther@suse.de>
10580
10581         PR bootstrap/53898
10582         * graphite-optimize-isl.c: Make sure CU is not empty.
10583
10584 2012-07-09  Steven Bosscher  <steven@gcc.gnu.org>
10585
10586         * gensupport.c (init_rtx_reader_args_cb): Start counting code
10587         generating patterns from 1 to free up 0 for CODE_FOR_nothing.
10588         * gencodes.c (main): Give CODE_FOR_nothing the value 0.  Add
10589         the LAST_INSN_CODE marker at the end.
10590         * genoutput.c (nothing): New static struct data.
10591         (idata): Initialize to &nothing.
10592         (idata_end): Initialize to &nothing.next.
10593         (init_insn_for_nothing): New function to create dummy 'nothing' insn.
10594         (main): Use it.
10595         * genpeep.c (insn_code_number): Remove global variable.
10596         (gen_peephole): Take it as an argument instead.
10597         (main): Take insn_code_number from read_md_rtx.
10598         * optabs.h: Revert r161809:
10599         (optab_handlers): Change type of insn_code back to insn_code.
10600         (optab_handler, widening_optab_handler, set_optab_handler,
10601         set_widening_optab_handler, convert_optab_handler,
10602         set_convert_optab_handler, direct_optab_handler,
10603         set_direct_optab_handler): Remove int casts.
10604         Revert to treating the insn_code field as "insn_code".
10605
10606 2012-07-08  Oleg Endo  <olegendo@gcc.gnu.org>
10607
10608         * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
10609         * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
10610         * config/sh/sh-protos.h: Declare it.
10611
10612 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
10613
10614         * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
10615         (dump_fixup_graph): Use current_function_name.
10616         (adjust_cfg_counts): Likewise.
10617         * ira-conflicts.c: Do not include tree.h.
10618         (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
10619
10620 2012-07-08  Oleg Endo  <olegendo@gcc.gnu.org>
10621
10622         PR target/51244
10623         * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
10624
10625 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
10626
10627         * basic-block.h: Re-group most prototypes per file.
10628         (struct edge_list): Remove num_blocks field.
10629         (dump_bb_info): Adjust prototypes.
10630         (dump_reg_info): Move prototype to regs.h.
10631         * function.h: Do not include tree.h.
10632         Include vec.h, vecir.h, input.h and machmode.h to compensate.
10633         (function_name): New prototype.
10634         * gimple.h: Include tree.h to compensate for basic-block.h change.
10635         * langhooks.h: Note that tree.h is only necessary for enum tree_code.
10636         * regs.h (dump_reg_info): Prototype here.
10637         * regset.h: Adjust file reference in comment.
10638         (debug_regset): Remove prototype.
10639         * rtl.h: Include flags.h for flag_var_tracking_assignments.
10640         (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
10641         instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
10642         (dump_reg_info, dump_flow_info): Remove prototypes.
10643         * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
10644         to here, the only user.  Make static.
10645         (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
10646         * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
10647         flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
10648         tree-pass.h, cfgloop.h, and tree-flow.h.
10649         Include basic-block.h, the first header I'd expect to be included.
10650         (reg_obstack): Move to df-core.c.
10651         (free_edge): Remove bogus ATTRIBUTE_UNUSED.
10652         (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
10653         (redirect_edge_succ_nodup): Move to cfghooks.c.
10654         (dump_regset, debug_regset): Move to df-core.c.
10655         (dump_bb_info): Move to cfgrtl.c.
10656         (dump_reg_info): Move to regstat.c.
10657         (dump_flow_info): Move to cfgrtl.c.
10658         (debug_flow_info): Likewise.
10659         (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
10660         * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
10661         insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
10662         (flow_active_insn_p, forwarder_block_p, can_fallthru,
10663         could_fall_through): Move to cfgrtl.c.
10664         (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
10665         (create_edge_list): Do not set edge_list's removed num_blocks.
10666         (print_edge_list): Look at n_basic_blocks instead of num_blocks.
10667         (flow_nodes_print): Remove.
10668         (flow_edge_list_print): Remove.
10669         (inverted_post_order_compute): Use FOR_ALL_BB.
10670         * cfgrtl.c (dump_flow_info): Moved from cfg.c.
10671         Do not call dump_reg_info.
10672         (debug_flow_info): Moved from cfg.c
10673         (dump_bb_info): Moved from cfg.c.  Take 'verbose' argument
10674         to avoid looking at TDF_* flags from tree-pass.h.
10675         (flow_active_insn_p, forwarder_block_p, can_fallthru,
10676         could_fall_through): Moved from cfganal.c.
10677         (print_rtl_with_bb): Adjust dump_bb_info calls.
10678         * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
10679         (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
10680         (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
10681         * cselib.c: Include tree.h with a FIXME.
10682         * df-core.c (reg_obstack): Moved from cfg.c.
10683         (dump_regset): Likewise.
10684         (debug_regset): Likewise.  Make a DEBUG_FUNCTION.
10685         * final.c (compute_alignments): Call dump_reg_info before
10686         dump_flow_info.
10687         * function.c (function_name): New function.
10688         (current_function_name): Use it.
10689         * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
10690         dump_flow_info.
10691         * ira-conflicts.c: Include tree.h with a note.
10692         * regstat.c (dump_reg_info): Moved here from cfg.c.
10693         * loop-init.c: Include regs.h instead of hard-reg-set.h.
10694         (rtl_loop_init): Call dump_reg_info before dump_flow_info.
10695         (rtl_loop_done): Likewise.
10696         * mcf.c: Include tree.h before langhooks.h.
10697         * predict.c (maybe_hot_count_p): Assert we have cfun.
10698         (probably_never_executed_bb_p): Likewise.
10699         * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
10700         instead of dump_flow_info.
10701         * sched-deps.c: Include tree.h with a FIXME.
10702         (call_may_noreturn_p): Add FIXME note why this function has to
10703         look at function decls instead of function decl flags.
10704         * sched-vis.c: Include tree.h with a FIXME.
10705         (print_rtl_slim): Adjust dump_bb_info uses.
10706         * statistics.c (statistics_fini_pass_2): Use current_function_name
10707         to avoid including tree.h.
10708         (statistics_counter_event): Use function_name for the same reason.
10709         (statistics_histogram_event): Likewise.
10710         * tracer.c (tracer): Remove bogus gcc_assert.  Use brief_dump_cfg
10711         instead of dump_flow_info.
10712         * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
10713         before dump_flow_info.
10714         * doc/cfg.texi: Update CFG documentation.
10715         * Makefile.in (RTL_H): Depend on FLAGS_H.
10716         (GIMPLE_H): Depend on TREE_H.
10717         (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
10718         but no longer on TREE_H.
10719         (C_COMMON_H): Depend on TREE_H.
10720         (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
10721         sched-deps.o, sched-vis.o): Fixup dependencies.
10722
10723 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
10724
10725         * alias.h: Do not include coretypes.h in header files.
10726         * cppbuiltin.h: Likewise.
10727         * double-int.h: Likewise.
10728         * gimple-fold.h: Likewise.
10729         * flags.h: Likewise.
10730         * tree-ssa-alias.h: Likewise.
10731         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
10732         OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
10733         * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
10734         (TREE_H): Likewise.
10735         (ALIAS_H): Do not depend on coretypes.h.
10736         (FLAGS_H): Likewise.
10737         (realmpfr.o): Depend on coretypes.h.
10738
10739 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
10740
10741         * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
10742         gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
10743
10744 2012-07-07  Richard Earnshaw  <rearnsha@arm.com>
10745
10746         * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
10747         (TARGET_FPA): Delete definition.
10748         (TARGET_MAVERICK): Likewise.
10749         (TARGET_FPA_EMU2): Likewise.
10750         (arm_fp_model): Remove FPA and Maverick models.
10751         (arm_arch_cirrus): Delete declaration.
10752         (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
10753         (FIXED_REGISTERS): Remove FPA and Maverick support.  Reorganize.
10754         (CALL_USED_REGISTERS): Likewise.
10755         (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
10756         (FIRST_VFP_REGNUM): Renumbered.
10757         (D7_VFP_REGNUM): Chain definition.
10758         (LAST_LO_VFP_REGNUM): Likewise.
10759         (FIRST_HI_VFP_REGNUM): Likewise.
10760         (LAST_HI_VFP_REGNUM): Likewise.
10761         (FIRST_IWMMXT_GR_REGNUM): Likewise.
10762         (LAST_IWMMXT_GR_REGNUM): Likewise.
10763         (FIRST_IWMMXT_REGNUM): Likewise.
10764         (LAST_IWMMXT_REGNUM): Likewise.
10765         (FRAME_POINTER_REGNUM): Renumbered.
10766         (ARG_POINTER_REGNUM): Renumbered.
10767         (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
10768         (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
10769         (HARD_REGNO_REGNUM): Remove FPA support.
10770         (REG_ALLOC_ORDER): Remove FPA and Maverick registers.  Reorganize.
10771         (reg_class): Likewise.
10772         (REG_CLASS_NAMES): Likewise.
10773         (REG_CLASS_CONTENTS): Likewise.
10774         (CANNOT_CHANGE_MODE_CLASS): Never true.  Update comment.
10775         (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
10776         (CLASS_MAX_NREGS): Remove FPA and Maverick support.
10777         * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
10778         Reorganize.  Use AAPCS preferred names.
10779         (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick.  Update
10780         comments.
10781         (OVERLAPPING_REGISTER_NAMES): Update register numbering.
10782         * arm.c (FL_CIRRUS): Delete definition.
10783         (arm_arch_cirrus): Delete variable.
10784         (arm_float_words_big_endian): Delete function.
10785         (cirrus_memory_offset): Delete function.
10786         (output_mov_long_double_fpa_from_arm): Delete function.
10787         (output_mov_long_double_arm_from_fpa): Delete function.
10788         (output_mov_double_fpa_from_arm): Delete function.
10789         (output_mov_double_arm_from_fpa): Delete function.
10790         (emit_sfm): Delete function.
10791         (maybe_get_arm_condition_code): Update comment.
10792         (arm_file_start): Always use softvfp for softfloat systems.
10793         (thumb_core_reg_alloc_order): Adjust for updated register allocation.
10794         (arm_option_override): Remove FPA and Maverick support.  Always
10795         default to vfp as the fallback FPU format.
10796         (use_return_insn): Remove FPA support.
10797         (arm_get_frame_offsets): Likewise.
10798         (arm_save_coproc_regs): Likewise.
10799         (arm_canonicalize_comparison): Remove Maverick support.
10800         (arm_select_cc_mode): Likewise.
10801         (arm_gen_compare_reg): Likewise.
10802         (arm_print_operand): Likewise.
10803         (arm_libcall_value_1): Remove FPA and Maverick support.
10804         (arm_function_value_regno_p): Likewise.
10805         (arm_apply_result_size): Likewise.
10806         (arm_legitimate_index_p): Likewise.
10807         (thumb2_legitimate_index_p): Likewise.
10808         (legitimize_reload_address): Likewise.
10809         (arm_register_move_cost): Likewise.
10810         (arm_hard_regno_mode_ok): Likewise.
10811         (arm_regno_class): Likewise.
10812         (arm_dbx_register_number): Likewise.
10813         (arm_emit_unwind_sequence): Likewise.
10814         (arm_conditional_register_usage): Likewise.
10815         * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
10816         (cirrus_memory_offset): Likewise.
10817         (output_move_long_double_fpa_from_arm): Likewise.
10818         (output_move_long_double_arm_from_fpa): Likewise.
10819         (output_move_double_fpa_from_arm): Likewise.
10820         (output_move_double_arm_from_fpa): Likewise.
10821         (arm_float_words_big_endian): Likewise.
10822         * arm.md (CC_REGNUM): Renumbered.
10823         (VFPCC_REGNUM): Moved here.  Renumbered.
10824         (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
10825         (attr fpu): Remove FPA and Maverick support.
10826         * vfp.md (VFPCC_REGNUM): Delete.  Moved to arm.md.
10827         * arm-cores.def (ep9312): Remove Maverick support.
10828         * arm-arches.def (ep9312): Delete architecture.
10829         * arm-tables.opt: Regenerated.
10830
10831         * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
10832
10833 2012-07-07  Steven Bosscher  <steven@gcc.gnu.org>
10834
10835         PR tree-optimization/53881
10836         * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
10837         comparing labels to establish uniqueness of a switch case target,
10838         use the CFG instead.
10839
10840 2012-07-07  Ulrich Weigand  <ulrich.weigand@linaro.org>
10841
10842         * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
10843         due to negative shift amount.
10844
10845 2012-07-07  Hans-Peter Nilsson  <hp@axis.com>
10846
10847         Fix configure test for "stack protector support in target C library".
10848         * configure.ac (test_prefix, test_exec_prefix): Move setting from
10849         inside sysroot handling to before and outside it.
10850         * configure: Regenerate.
10851
10852 2012-07-06  Kai Tietz  <ktietz@redhat.com>
10853
10854         PR bootstrap/52947
10855         * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
10856         as "/mingw/include".
10857
10858 2012-07-06  Alexandre Oliva  <aoliva@redhat.com>
10859
10860         PR debug/53820
10861         * var-tracking.c (vt_add_function_parameter): Convert
10862         internal_arg_pointer into arg_pointer-based address even
10863         without DRAP.
10864
10865 2012-07-06  Alexandre Oilva  <aoliva@redhat.com>
10866
10867         PR rtl-optimization/53827
10868         PR debug/53671
10869         PR debug/49888
10870         * alias.c (memrefs_conflict_p): Adjust offset and size by the
10871         same amount for alignment ANDs.
10872
10873 2012-07-06  Tom de Vries  <tom@codesourcery.com>
10874
10875         PR tree-optimization/51879
10876         * tree-ssa-sccvn.c (copy_reference_ops_from_call)
10877         (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
10878         (visit_use): Also call visit_reference_op_call for calls with a vdef.
10879
10880 2012-07-06  Tom de Vries  <tom@codesourcery.com>
10881
10882         PR tree-optimization/52009
10883         * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
10884         value numbers of gimple_vdef.
10885         * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
10886         prototype.
10887         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
10888         (vn_reference_insert): Add and handle vdef parameter.
10889         (visit_reference_op_load): Add argument to vn_reference_insert call.
10890         (visit_reference_op_store): Find value number of vdef of store.  Insert
10891         value number of vdef of store.
10892
10893 2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
10894
10895         * config/i386/i386.md (simple lea to add peephole): Also transform
10896         RTXes where second PLUS operand matches output.
10897
10898 2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
10899
10900         * config/i386/i386.c (construct_plt_address): Make static.
10901         * config/i386/i386-protos.h (construct_plt_address): Remove.
10902
10903 2012-07-06  Nick Clifton  <nickc@redhat.com>
10904
10905         * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
10906         default_encode_section_info.
10907
10908 2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
10909
10910         PR target/53853
10911         * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
10912         emit PIC sequence for fnaddr symbol reference in advance.
10913
10914 2012-07-06  Eric Botcazou  <ebotcazou@adacore.com>
10915
10916         Revert
10917         2012-06-14  Eric Botcazou  <ebotcazou@adacore.com>
10918
10919         * dwarf2out.c (function_possibly_abstracted_p): New static function.
10920         (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
10921         cgraph_function_possibly_inlined_p.
10922         (gen_inlined_subroutine_die): Return if the origin is to be ignored.
10923         (process_scope_var): Do not emit concrete instances of abstracted
10924         nested functions from here.
10925         (gen_decl_die): Emit the abstract instance if the function is possibly
10926         abstracted and not only possibly inlined.
10927         (dwarf2out_finish): Find the first non-abstract parent instance and
10928         attach concrete instances on the limbo list to it.
10929
10930 2012-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10931             Julian Brown  <julian@codesourcery.com>
10932
10933         PR target/48941
10934         PR target/51980
10935         * config/arm/neon-gen.ml (return_by_ptr): Delete.
10936         (print_function): Handle empty strings.
10937         (return): Delete use of return_by_ptr.
10938         (mask_shape_for_shuffle): New function.
10939         (mask_elems): Likewise.
10940         (shuffle_fn): Likewise.
10941         (params): Simplify and remove use of return_by_ptr.
10942         (get_shuffle): New function.
10943         (print_variant): Update.
10944         * config/arm/neon.ml (rev_elems): New function.
10945         (permute_range): Likewise.
10946         (zip_range): Likewise.
10947         (uzip_range): Likewise.
10948         (trn_range): Likewise.
10949         (zip_elems): Likewise.
10950         (uzip_elems): Likewise.
10951         (trn_elems): Likewise.
10952         (features): New enumeration Use_shuffle. Delete ReturnPtr.
10953         (pf_su_8_16): New.
10954         (suf_32): New.
10955         (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
10956         * config/arm/arm_neon.h: Regenerate.
10957
10958 2012-07-05  Richard Guenther  <rguenther@suse.de>
10959
10960         * tree-pretty-print.c (dump_generic_node): Properly test
10961         the result of exact_log2.
10962
10963 2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10964
10965         * config/s390/s390-protos.h (s390_expand_movmem)
10966         (s390_expand_cmpmem): Add return value.
10967         * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
10968         Return FALSE to use the library function in some cases.
10969         * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
10970         helper functions.
10971
10972 2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10973
10974         * config.gcc: Enable ifunc attribute by default on s390 and s390x.
10975
10976 2012-07-05  Steven Bosscher  <steven@gcc.gnu.org>
10977
10978         * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
10979         * stmt.c (dump_case_nodes): New.
10980         (expand_case): Split out code generation parts into new functions.
10981         (expand_switch_as_decision_tree_p): Split out from expand_case.
10982         (emit_case_decision_tree): Likewise.
10983         (emit_case_dispatch_table): Likewise.
10984
10985 2012-07-05  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
10986
10987         * config/arm/iterators.md (SDF): New mode iterator.
10988         (V_if_elem): Add support for SF and DF modes.
10989         (V_reg): Likewise.
10990         (F_constraint): New mode iterator attribute.
10991         (F_fma_type): Likewise.
10992         config/arm/vfp.md (fma<SDF:mode>4): New pattern.
10993         (*fmsub<SDF:mode>4): Likewise.
10994         (*fmnsub<SDF:mode>4): Likewise.
10995         (*fmnadd<SDF:mode>4): Likewise.
10996
10997 2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
10998
10999         * expmed.c (expand_mult): Initialize coeff and is_neg.
11000
11001 2012-07-04  Oleg Endo  <olegendo@gcc.gnu.org>
11002
11003         * config/sh/predicates.md (zero_extend_operand): New predicate.
11004         * config/sh/sh.md (zero_extendhisi2): Simplify by using new
11005         zero_extend_operand predicate.
11006         (zero_extendqisi2): Likewise.
11007
11008 2012-07-04  Uros Bizjak  <ubizjak@gmail.com>
11009
11010         PR middle-end/53321
11011         * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
11012         to not call cgraph_propagate_frequency if something was changed.
11013
11014 2012-07-04  Richard Guenther  <rguenther@suse.de>
11015
11016         PR middle-end/53433
11017         * gimple-fold.c (get_base_constructor): Do not return an
11018         error_mark_node DECL_INITIAL.
11019
11020 2012-07-04  Richard Guenther  <rguenther@suse.de>
11021
11022         PR tree-optimization/53844
11023         * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
11024         the loop virtual PHI.
11025
11026 2012-07-04  Richard Guenther  <rguenther@suse.de>
11027
11028         PR tree-optimization/53849
11029         * tree-cfg.c (move_stmt_op): Only call add_referenced_var
11030         for duplicated locals.  Use add_referenced_var_1 to avoid
11031         pushing/popping cfun.
11032
11033 2012-07-04  Kai Tietz  <ktietz@redhat.com>
11034
11035         * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
11036         * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
11037         prototype.
11038         * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
11039         as i386_pe_reloc_rw_mask.
11040
11041 2012-07-04  Richard Guenther  <rguenther@suse.de>
11042
11043         * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
11044         as in free_lang_data_in_type.
11045
11046 2012-07-04  Tobias Grosser <tobias@grosser.es>
11047             Michael Matz  <matz@suse.de>
11048
11049         * Makefile.in (OBJS): Add graphite-optimize-isl.o.
11050         (graphite-optimize-isl.o): Add dependencies.
11051         * common.opt (floop-nest-optimize): New flag.
11052         * doc/invoke.texi (floop-nest-optimize): Document.
11053         * graphite-dependences.c (compute_deps): Export.
11054         * graphite-poly.h (compute_deps): Declare.
11055         * graphite-optimize-isl.c: New file.
11056         * graphite-poly.c (apply_poly_transforms): Run the loop
11057         nest optimizer.
11058         * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
11059         if -floop-nest-optimize is enabled.
11060
11061 2012-07-03  Oleg Endo  <olegendo@gcc.gnu.org>
11062
11063         * config/sh/predicates.md (logical_and_operand): New predicate.
11064         * config/sh/constraints.md (Jmb, Jmw): New constraints.
11065         * config/sh/sh.md (andsi3): Move expander above insns.  Add handling
11066         of 0xFFFF constant.  Use logical_and_operand predicate and
11067         satisfies_constraint_Jmb, satisfies_constraint_Jmw.
11068         (*andsi3_compact): Make it an insn_and_split.  Use
11069         logical_and_operand predicate.  Add Jmb,Jmw alternatives.
11070
11071 2012-07-03  Jason Merrill  <jason@redhat.com>
11072
11073         PR c++/53826
11074         * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
11075
11076 2012-07-03  Nick Clifton  <nickc@redhat.com>
11077
11078         * config/mep/mep.c (mep_reorg_regmove): Use
11079         next_nonnote_non_debug_insn to advance to the next insn.  Do not
11080         expect delete_insn to return an rtx.
11081
11082 2012-07-03  Richard Guenther  <rguenther@suse.de>
11083
11084         * doc/install.texi (CLooG): Clarify how CLooG needs to be
11085         configured and that it needs to be built against ISL 0.10.
11086
11087 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
11088
11089         * config/i386/i386.c (ix86_option_override_internal): Fix wrong
11090         code model string in the error message.
11091
11092 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
11093
11094         PR target/53811
11095         * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
11096         sibcall_insn_operand.  Move it to a temporary register if not.
11097
11098 2012-07-03  Andreas Schwab  <schwab@linux-m68k.org>
11099
11100         PR target/28896
11101         * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
11102         if !TARGET_68020.
11103
11104 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
11105
11106         * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
11107
11108 2012-07-03  Roland McGrath  <mcgrathr@google.com>
11109
11110         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
11111         assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
11112         * configure: Regenerated.
11113         * config/i386/i386.md (simple_return_internal_long): Use %;
11114         (ctz<mode>2): Likewise.
11115         (*pause): Likewise.
11116
11117 2012-07-02  Oleg Endo  <olegendo@gcc.gnu.org>
11118
11119         PR target/51244
11120         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
11121         predicates.
11122         * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
11123         * config/sh/sh.c (get_t_reg_rtx): New function.  Use it when invoking
11124         gen_branch_true and gen_branch_false.
11125         * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
11126         gen_branch_false.
11127         (branch_true, branch_false): Use t_reg_operand predicate.
11128         (*branch_true, *branch_false): Delete.
11129         (movt): Use t_reg_operand predicate.
11130         (*negnegt): Use negt_reg_operand predicate and fold little and big
11131         endian variants.
11132         (*movtt): Use t_reg_operand and fold little and big endian variants.
11133         (*movt_qi): Delete.
11134
11135 2012-07-02  Steven Bosscher  <steven@gcc.gnu.org>
11136
11137         * stmt.c (emit_case_bit_tests): Remove.
11138         (expand_case): Remove expand_switch_using_bit_tests_p code.
11139         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
11140         (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
11141         (lshift_cheap_p): Likewise.
11142         (expand_switch_using_bit_tests_p): Likewise.
11143         (struct case_bit_test): Likewise.
11144         (case_bit_test_cmp): Likewise.
11145         (emit_case_bit_tests): New implementation for GIMPLE.
11146         (gen_inbound_check): Do not release post-dominator info here.
11147         (process_switch): Reorder code.  Expand as bit tests if it
11148         looks like a win.
11149         (do_switchconv): Release post-dominator info here if something changed.
11150         (struct gimple_opt_pass): Verify more.
11151         * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
11152
11153 2012-07-02  Martin Jambor  <mjambor@suse.cz>
11154
11155         PR middle-end/38474
11156         * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
11157         dynamic type change check.
11158
11159 2012-07-02  Richard Guenther  <rguenther@suse.de>
11160             Michael Matz  <matz@suse.de>
11161             Tobias Grosser <tobias@grosser.es>
11162             Sebastian Pop <sebpop@gmail.com>
11163
11164         * Makefile.in: Remove PPL flags in favor of ISL ones.
11165         (BACKENDLIBS): Remove PPL libs.
11166         (INCLUDES): Remove PPL includes in favor of ISL ones.
11167         (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
11168         graphite-cloog-compat.h dependencies.
11169         (graphite-dependences.o): Likewise.
11170         (graphite-poly.o): Likewise.
11171         * configure.ac: Declare ISL vars instead of PPL ones.
11172         * configure: Regenerated.
11173         * doc/install.texi: Replace PPL requirement documentation with ISL one.
11174         * graphite-blocking.c: Remove PPL code, add ISL equivalent.
11175         * graphite-clast-to-gimple.c: Likewise.
11176         * graphite-dependences.c: Likewise.
11177         * graphite-interchange.c: Likewise.
11178         * graphite-poly.h: Likewise.
11179         * graphite-poly.c: Likewise.
11180         * graphite-sese-to-poly.c: Likewise.
11181         * graphite.c: Likewise.
11182         * graphite-scop-detection.c: Re-arrange includes.
11183         * graphite-cloog-util.c: Remove.
11184         * graphite-cloog-util.h: Likewise.
11185         * graphite-ppl.h: Likewise.
11186         * graphite-ppl.c: Likewise.
11187         * graphite-dependences.h: Likewise.
11188
11189 2012-07-02  Richard Guenther  <rguenther@suse.de>
11190
11191         Merge from graphite branch
11192         2011-07-21  Tobias Grosser  <tobias@grosser.es>
11193
11194         * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
11195         Remove graphite-cloog-util.h.
11196         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
11197         build_iv_mapping, translate_clast_user, translate_clast,
11198         free_scattering, initialize_cloog_names, build_cloog_prog,
11199         create_params_index): Do not use old compatibility functions.
11200         (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
11201         * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
11202         compatibility functions.
11203         (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
11204         cloog.
11205         * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
11206         * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
11207         cloog_finalize().
11208         * graphite-cloog-compat.h: Remove.
11209
11210         2011-08-09  Tobias Grosser <tobias@grosser.es>
11211
11212         * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
11213         of the string, no just a reference.
11214         (clast_name_index): Add a new field, that specifies if we need to free
11215         the name.
11216         (free_clast_name_index): If necessary, free the name string.
11217         (clast_name_index_elt_info): Calculate the hash based on the string
11218         content, not the memory location it is stored in.
11219         (clast_name_to_level): Specify that we do not need to free the name.
11220         (clast_name_to_index): Dito.
11221         (clast_name_to_lb_ub): Dito.
11222         (eq_clast_name_indexes): Compare the strings, not their base pointers.
11223         (free_scattering): Removed.
11224         (initialize_cloog_names): Renamed to add_names_to_union_domain().
11225         (add_names_to_union_domain): Changed to work on a union_domain,
11226         instead of a CloogNames structure.
11227         (build_cloog_prog): Removed.
11228         (build_cloog_union_domain): New.
11229         (generate_cloog_input): New.
11230         (scop_to_clast): Use CloogInput instead of CloogProgram.
11231         (print_generated_program): Adapt to new scop_to_clast() and do not
11232         print the CloogProgram any more.
11233         (create_params_index): Removed, functionality integrated in
11234         add_names_to_union_domain().
11235         (gloog): Adapt to new scop_to_clast().
11236         * graphite-clast-to-gimple.h (scop_to_clast): Remove.
11237
11238         2012-01-11  Tobias Grosser <tobias@grosser.es>
11239
11240         * graphite-clast-to-gimple.c (clast_name_to_index,
11241         clast_name_to_lb_ub, clast_name_to_gcc): Change types.
11242         (clast_to_gcc_expression): Add clast_expr_name as a new
11243         case. Do not assume a clast_expr_term points always to a
11244         clast_expr_name.
11245         (type_for_clast_term): Do not assume a clast_expr_term points always to
11246         a clast_expr_name.
11247         (type_for_clast_name): New.
11248         (type_for_clast_expr): Add clast_expr_name as a new case.
11249
11250         2011-08-03  Sebastian Pop <sebpop@gmail.com>
11251
11252         * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
11253         new_Cloog_Scattering_from_ppl_Polyhedron,
11254         new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
11255
11256 2012-07-02  Jakub Jelinek  <jakub@redhat.com>
11257
11258         PR tree-optimization/53645
11259         * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
11260         instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
11261
11262 2012-07-01  Wei Guozhi  <carrot@google.com>
11263
11264         PR target/53447
11265         * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
11266         * config/arm/arm.c (const_ok_for_dimode_op): New function.
11267         * config/arm/constraints.md (Dd): New constraint.
11268         * config/arm/predicates.md (arm_adddi_operand): New predicate.
11269         * config/arm/arm.md (adddi3): Extend it to handle constants.
11270         (arm_adddi3): Likewise.
11271         (addsi3_carryin_<optab>): Extend it to handle sbc case.
11272         (addsi3_carryin_alt2_<optab>): Likewise.
11273         * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
11274
11275 2012-06-30  Nathan Sidwell  <nathan@acm.org>
11276
11277         * coverage.c (bbg_file_stamp): New.
11278         (read_counts_file): Merge incoming stamp with bbg_file_stamp.
11279         (build_info): Write bbg_file_stamp.
11280         (coverage_init): Initialize bbg_file_stamp.  Read counts file
11281         before writing graph header.
11282         (coverage_finish): Don't unlink the data file if we can generate a
11283         unique file stamp.
11284         * tree.h (crc32_unsigned): Declare.
11285         * tree.c (crc32_unsigned_bits): New, broken out of ...
11286         (crc32_byte): ... here.  Use it.
11287         (crc32_unsigned): New.
11288
11289 2012-06-29  Cary Coutant  <ccoutant@google.com>
11290
11291         * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
11292         (gen_subprogram_die): Don't add pubname if want_pubnames is false.
11293         (gen_variable_die): Likewise.
11294         (gen_namespace_die): Likewise.
11295
11296 2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>
11297
11298         * tree-eh.c (lower_try_finally_switch): Really put the location of the
11299         last statement of the finally block onto the switch.
11300
11301 2012-06-29  H.J. Lu  <hongjiu.lu@intel.com>
11302
11303         PR target/53539
11304         * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
11305         TARGET_LP64.
11306
11307 2012-06-29  Sterling Augustine  <saugustine@google.com>
11308
11309         * dwarf2out.c (add_pubname): Add comment.
11310         (add_pubtype): Fix indentation.
11311         (gen_enumeration_type_die): Likewise.
11312
11313 2012-06-29  Jakub Jelinek  <jakub@redhat.com>
11314
11315         * tree-vect-generic.c (expand_vector_divmod): For even/odd
11316         widening multiply, put even always as first argument to VEC_PERM_EXPR.
11317
11318 2012-06-29  Richard Henderson  <rth@redhat.com>
11319
11320         * tree-vect-generic.c: Include target.h.
11321         (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
11322         * Makefile.in (tree-vect-generic.o): Update.
11323
11324 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
11325
11326         * configure.ac: Remove special gtfiles case for C.
11327         * configure: Regenerate.
11328         * Makefile.in: Remove C front-end hooks and build hooks that
11329         will be picked up from c/Make-lang.in now.
11330         Add tree-mudflap to C_COMMON_OBJS.
11331         * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
11332         * config/vms/vms.c: Look for c-tree.h in c/.
11333         * doc/gty.texi: Remove reference to c-config-lang.in.
11334         * doc/sourcebuild.texi: Document the c/ subdirectory.
11335
11336 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
11337
11338         * system.h (CASE_USE_BIT_TESTS): Poison.
11339         * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
11340         (expand_switch_using_bit_tests_p): ...here.
11341         * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
11342         * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
11343
11344 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
11345
11346         * system.h (IFCVT_EXTRA_FIELDS): Poison.
11347         (IFCVT_INIT_EXTRA_FIELDS): Poison.
11348         * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
11349         * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
11350         IFCVT_INIT_EXTRA_FIELDS.
11351         * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
11352         * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
11353         IFCVT_MACHDEP_INIT.
11354         * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
11355         frv_ifcvt_machdep_init.
11356         * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
11357         Remove documentation.
11358         (IFCVT_MACHDEP_INIT): Document.
11359         * doc/tm.texi: Regenerate.
11360
11361 2012-06-29  Nick Clifton  <nickc@redhat.com>
11362
11363         * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
11364
11365 2012-06-29  Jakub Jelinek  <jakub@redhat.com>
11366
11367         * tree-vect-stmts.c (vectorizable_operation): Check both
11368         VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
11369         Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
11370
11371 2012-06-28  Richard Henderson  <rth@redhat.com>
11372
11373         * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
11374
11375 2012-06-28  Jakub Jelinek  <jakub@redhat.com>
11376
11377         PR tree-optimization/51581
11378         * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
11379         (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
11380         also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
11381         VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
11382         * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
11383         MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
11384
11385         PR tree-optimization/53645
11386         * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
11387         instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
11388         if possible.
11389
11390 2012-06-28  Georg-Johann Lay  <avr@gjlay.de>
11391
11392         PR 53595
11393         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
11394         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
11395         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
11396         avr_hard_regno_call_part_clobbered.
11397
11398 2012-06-28  Richard Guenther  <rguenther@suse.de>
11399
11400         PR middle-end/53790
11401         * expr.c (expand_expr_real_1): Verify if the type is complete
11402         before inspecting its size.
11403
11404 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
11405
11406         * doc/include/gpl.texi: Remove.
11407         * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
11408
11409 2012-06-28  Jakub Jelinek  <jakub@redhat.com>
11410
11411         PR tree-optimization/53645
11412         * tree-vect-generic.c (add_rshift): New function.
11413         (expand_vector_divmod): New function.
11414         (expand_vector_operation): Use it for vector integer
11415         TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
11416         * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
11417         unused lguup variable with dummy_int.
11418
11419 2012-06-28  OLivier Hainque  <hainque@adacore.com>
11420
11421         * expr.c (convert_move): Latch mem integer inputs into a
11422         register before expanding a multi-instructions sequence.
11423
11424 2012-06-28  Alexandre Oliva  <aoliva@redhat.com>
11425             Uros Bizjak  <ubizjak@gmail.com>
11426             Jakub Jelinek  <jakub@redhat.com>
11427
11428         PR debug/53706
11429         PR debug/47624
11430         * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
11431         (vt_finalize): ... here instead, if needed.
11432
11433 2012-06-28  Alexandre Oliva  <aoliva@redhat.com>
11434
11435         PR debug/53740
11436         PR debug/52983
11437         PR debug/48866
11438         * dce.c (word_dce_process_block): Check whether inserting debug
11439         temps are needed even for needed insns.
11440         (dce_process_block): Likewise.
11441         * df-problems.c (dead_debug_add): Add comment about multi-regs.
11442         (dead_debug_insert_temp): Likewise.  Don't subreg when we're
11443         setting fewer regs than a multi-reg requires.
11444
11445 2012-06-27  Richard Henderson  <rth@redhat.com>
11446
11447         * config/alpha/alpha.c (alpha_dimode_u): New.
11448         (alpha_init_builtins): Initialize it, and use it.
11449         (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
11450         (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
11451         (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
11452         (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
11453         (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
11454         (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
11455         (alpha_fold_builtin_ctpop): Likewise.
11456         (alpha_fold_builtin_umulh): Remove.
11457         (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
11458         typo in MAX_ARGS check.
11459
11460 2012-06-27  Richard Henderson  <rth@redhat.com>
11461
11462         * tree.def (MULT_HIGHPART_EXPR): New.
11463         * cfgexpand.c (expand_debug_expr): Ignore it.
11464         * expr.c (expand_expr_real_2): Handle it.
11465         * fold-const.c (int_const_binop_1): Likewise.
11466         * optabs.c (optab_for_tree_code): Likewise.
11467         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
11468         * tree-inline.c (estimate_operator_cost): Likewise.
11469         * tree-pretty-print.c (dump_generic_node): Likewise.
11470         (op_code_prio, op_symbol_code): Likewise.
11471         * tree.c (commutative_tree_code): Likewise.  Also handle
11472         WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
11473
11474 2012-06-27  Richard Henderson  <rth@redhat.com>
11475
11476         PR target/53749
11477         * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
11478         in 2012-06-23 change.  Adjust two other DImode tests as well.
11479
11480 2012-06-27  Nick Clifton  <nickc@redhat.com>
11481
11482         * config/rx/rx.md (comparesi3_extend): Remove = modifier from
11483         input operand.
11484
11485 2012-06-27  Richard Guenther  <rguenther@suse.de>
11486
11487         PR middle-end/53676
11488         * tree-chrec.c (chrec_convert_1): Represent truncation to
11489         a type with undefined overflow as truncation to an unsigned
11490         type converted to the type with undefined overflow.
11491         * tree-scalar-evolution.c (interpret_rhs_expr): For computing
11492         the scalar evolution of a truncated widened operation avoid
11493         looking at the non-existing evolution of the widened operation
11494         result.
11495
11496 2012-06-27  Richard Guenther  <rguenther@suse.de>
11497
11498         PR tree-optimization/53774
11499         * tree-ssa-reassoc.c (get_rank): All default defs have
11500         precomputed rank.
11501         (init_reassoc): Precompute rank for all SSA default defs.
11502
11503 2012-06-27  Nick Clifton  <nickc@redhat.com>
11504
11505         * config/rx/rx.md (simple_return): Use the simple_return rtx.
11506
11507 2012-06-26  Richard Henderson  <rth@redhat.com>
11508
11509         * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
11510         and don't fall thru from standard_80387_constant_p to the memory
11511         fallback.
11512
11513 2012-06-26  Richard Henderson  <rth@redhat.com>
11514
11515         * config/i386/i386.c (bdesc_args): Update.  Change
11516         IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
11517         (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
11518         (ix86_builtin_mul_widen_even): Use it.
11519         (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
11520         (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
11521         * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
11522         for all SSE2.
11523         (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
11524         (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise.  Relax from V124_AVX2.
11525         (vec_widen_smult_even_v4si): New.
11526
11527 2012-06-26  Richard Henderson  <rth@redhat.com>
11528
11529         * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
11530         to expander; move guts to ...
11531         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here.  Add
11532         highparts before shifting up.
11533         * config/i386/i386-protos.h: Update.
11534
11535 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
11536
11537         * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
11538         * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
11539         * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
11540
11541 2012-06-26  Alexandre Oliva  <aoliva@redhat.com>
11542
11543         * var-tracking.c (vt_add_function_parameter): Use a preserved
11544         VALUE for the MEM address of an incoming parameter.
11545
11546 2012-06-26  Sterling Augustine <saugustine@google.com>
11547
11548         * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
11549         (prune_unused_types): Likewise.
11550
11551 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
11552
11553         * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
11554         UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
11555         * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
11556         UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
11557         VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
11558         VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
11559         * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
11560         UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
11561         * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
11562         documentation.
11563         * doc/tm.texi: Regenerate.
11564         * doc/cpp.texi: Make example for #error generic.
11565         * config/frv/frv.h: Fix example text to match tm.texi.
11566
11567 2012-06-26  Bill Schmidt  <wschmidt@linux.ibm.com>
11568
11569         * tree-pass.h (pass_strength_reduction): New decl.
11570         * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
11571         (finalize_costs): Likewise.
11572         * timevar.def (TV_TREE_SLSR): New timevar.
11573         * gimple-ssa-strength-reduction.c: New.
11574         * tree-flow.h (initialize_costs): New decl.
11575         (finalize_costs): Likewise.
11576         * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
11577         * passes.c (init_optimization_passes): Add pass_strength_reduction.
11578
11579 2012-06-26  Matt Turner  <mattst88@gmail.com>
11580
11581         * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
11582         (__builtin_arm_tinsrh): Likewise.
11583         (__builtin_arm_tinsrw): Likewise.
11584         (__builtin_arm_wsadb): Add missing v2si parameter.
11585         (__builtin_arm_wsadh): Likewise.
11586         (__builtin_arm_getwcx): Delete.
11587         (__builtin_arm_setwcx): Delete.
11588         (__builtin_arm_getwcgr0): Add.
11589         (__builtin_arm_getwcgr1): Add.
11590         (__builtin_arm_getwcgr2): Add.
11591         (__builtin_arm_getwcgr3): Add.
11592         (__builtin_arm_setwcgr0): Add.
11593         (__builtin_arm_setwcgr1): Add.
11594         (__builtin_arm_setwcgr2): Add.
11595         (__builtin_arm_setwcgr3): Add.
11596
11597 2012-06-26  Richard Guenther  <rguenther@suse.de>
11598
11599         Revert
11600         2012-06-21  Richard Guenther  <rguenther@suse.de>
11601
11602         * tree-inline.c (estimate_num_insns): Estimate call cost for
11603         tailcalls properly.
11604
11605 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
11606
11607         PR other/33190
11608         * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
11609         * doc/tm.texi: Regenerate.
11610
11611 2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>
11612
11613         PR other/33190
11614         * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
11615         * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
11616         * doc/tm.texi.in: Remove documentation for unused target macros
11617         ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
11618         DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
11619         REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
11620         TARGET_NARROW_VOLATILE_BITFIELDS.
11621         Document that MD_HANDLE_UNWABI is a macro in libgcc.
11622         * doc/tm.texi: Regenerate.
11623         * system.h: Poison target macros
11624         ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
11625         DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
11626         REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
11627         TARGET_NARROW_VOLATILE_BITFIELDS
11628
11629 2012-06-26  Jan Hubicka  <jh@suse.cz>
11630
11631         PR lto/53572
11632         * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
11633         used symbols.
11634
11635 2012-06-26  Dehao Chen  <dehao@google.com>
11636
11637         * tree-inline.c: (expand_call_inline): Ensure that lexical block's
11638         source location is consistant with the call stmt.
11639
11640 2012-06-26  Ulrich Weigand  <ulrich.weigand@linaro.org>
11641
11642         PR tree-optimization/53729
11643         PR tree-optimization/53636
11644         * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
11645         vect_verify_datarefs_alignment until after statements have
11646         been marked as relevant/irrelevant.
11647         * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
11648         Skip irrelevant statements.
11649         (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
11650         instead of STMT_VINFO_RELEVANT.
11651         (vect_get_data_access_cost): Do not check for supportable
11652         alignment before calling vect_get_load_cost/vect_get_store_cost.
11653         * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
11654         handling unsupported alignment.
11655         (vect_get_load_cost): Likewise.
11656
11657 2012-06-25  Steven Bosscher  <steven@gcc.gnu.org>
11658
11659         * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
11660         Do not define JMP_BUF_SIZE.
11661
11662 2012-06-26  Jakub Jelinek  <jakub@redhat.com>
11663
11664         PR tree-optimization/53748
11665         * tree-ssa-phiopt.c (conditional_replacement): Only optimize
11666         if arg0/arg1 have integral or pointer types.
11667
11668 2012-06-25  Richard Henderson  <rth@redhat.com>
11669
11670         * config/i386/sse.md (sse2_sse4_1): Remove code attr.
11671         (<s>dot_prodv4si, <s>dot_prodv8si): Remove
11672         (sdot_prodv4si): New; handle only XOP.
11673
11674 2012-06-25  Richard Henderson  <rth@redhat.com>
11675
11676         * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
11677         (V2UDI_FUNC_V4USI_V4USI): New.
11678         (V4UDI_FUNC_V8USI_V8USI): New.
11679         * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
11680         (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
11681         (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
11682         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
11683         (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
11684         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
11685         (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
11686         (bdesc_args): Add them.
11687         (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
11688         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
11689         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
11690         (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
11691         * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
11692
11693 2012-06-25  Richard Henderson  <rth@redhat.com>
11694
11695         * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
11696
11697 2012-06-25  Richard Henderson  <rth@redhat.com>
11698
11699         * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
11700         to V16QImode.
11701         (ix86_expand_vec_interleave): New.
11702         (ix86_expand_mul_widen_evenodd): New.
11703         (ix86_expand_mul_widen_hilo): New.
11704         (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
11705         * config/i386/i386.md (u_bool) New code attr.
11706         * config/i386/predicates.md
11707         (nonimmediate_or_const_vector_operand): Remove.
11708         * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
11709         both AVX and SSE4_1.
11710         (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
11711         (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
11712         (vec_widen<s>mult_hi_v8si): Remove.
11713         (vec_widen<s>mult_lo_v8si): Remove.
11714         (vec_widen_smult_hi_v4si): Remove.
11715         (vec_widen_smult_lo_v4si): Remove.
11716         (vec_widen_umult_hi_v4si): Remove.
11717         (vec_widen_umult_lo_v4si): Remove.
11718         (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
11719         (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
11720         * config/i386/i386-protos.h: Update.
11721
11722 2012-06-25  Christophe Lyon  <christophe.lyon@st.com>
11723
11724         * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
11725         (neon_vld1_dup): Restrict to VQ operands.
11726         (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
11727
11728 2012-06-25  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
11729             James Greenhalgh  <james.greenhalgh@arm.com>
11730
11731         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
11732         (TARGET_FMA): New macro.
11733         (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
11734         (TARGET_ARM_ARCH): Likewise.
11735         (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
11736         (TARGET_V6M, TARGET_V7M): Likewise.
11737         (TARGET_ARM_ARCH_PROFILE): Likewise.
11738         (TARGET_ARM_FEATURE_LDREX): Likewise.
11739         (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
11740         (ARM_MIN_ENUM_SIZE): Likewise.
11741         * config/arm/arm.c (arm_file_start): Refactor appropriately.
11742         (base_architecture): New enumeration.
11743         (arm_base_arch): New global variable.
11744         (processors): Add field base_arch.
11745         (ARM_ARCH, ARM_CORE): Adjust accordingly.
11746         (arm_option_override): Add initialization of arm_base_arch.
11747         * doc/cpp.texi (system-specific predefined macros.): Change.
11748
11749 2012-06-25  Jakub Jelinek  <jakub@redhat.com>
11750
11751         PR target/53759
11752         * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
11753         of x x x in the vmovlps load alternative.
11754
11755 2012-06-25  Richard Sandiford  <rdsandiford@googlemail.com>
11756
11757         PR debug/53740
11758         * df.h (dead_debug_add): Remove third argument.
11759         * df-problems.c (dead_debug_add): Likewise.  Use the REGNO of the
11760         REG that we want to replace instead.
11761         (dead_debug_insert_temp): Use the REGNO of the reg that we want
11762         to replace instead of DF_REF_REGNO.  Require there to always be
11763         at least one such use.  Check for cases where the same location
11764         has more than df_ref associated with it.
11765         (df_note_bb_compute): Remove third dead_debug_add argument.
11766         * dce.c (word_dce_process_block): Likewise.
11767
11768 2012-06-25  Steven Bosscher  <steven@gcc.gnu.org>
11769
11770         * config/v850/v850.c: Remove redundant extern declarations for
11771         last_assemble_variable_decl and size_directive_output.
11772
11773         * doc/tm.texi.in: Document JMP_BUF_SIZE.
11774         * doc/tm.texi: Regenerate.
11775         * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
11776         * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
11777         * config/stormy16/stormy16.h: Likewise.
11778
11779         * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
11780
11781         * doc/sourcebuild.texi: Add missing subdirectories.
11782
11783 2012-06-25  Tristan Gingold  <gingold@adacore.com>
11784
11785         * config/i386/i386.h: Fix typo.
11786
11787 2012-06-25  Tristan Gingold  <gingold@adacore.com>
11788
11789         * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
11790         (seh_cfa_adjust_cfa): ... that function.
11791         (seh_emit_stackalloc): Do not emit out of range values.
11792         * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
11793         UNSPEC_DEF_CFA constants.
11794         * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
11795         * config/i386/i386.c (ix86_frame_pointer_required): Required
11796         for very large frames on SEH target.
11797         (ix86_compute_frame_layout): Save area is before frame pointer
11798         on SEH target.  Handle very large frames.
11799         (ix86_expand_prologue): Likewise.
11800
11801 2012-06-24  Steven Bosscher  <steven@gcc.gnu.org>
11802
11803         * output.h: (current_function_is_leaf,
11804         current_function_sp_is_unchanging,
11805         current_function_uses_only_leaf_regs): Remove.
11806         * function.c (current_function_is_leaf,
11807         current_function_sp_is_unchanging,
11808         current_function_uses_only_leaf_regs): Remove.
11809         (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
11810         instead of current_function_uses_only_leaf_regs.
11811         * function.h (struct rtl_data): New fields sp_is_unchanging,
11812         is_leaf, uses_only_leaf_regs.
11813         * resource.c (init_resource_info): Replace current_function_is_leaf,
11814         current_function_sp_is_unchanging, and
11815         current_function_uses_only_leaf_regs with new crtl fields.
11816         * sdbout.c (sdbout_symbol): Likewise.
11817         * df-core.c (rest_of_handle_df_initialize): Likewise.
11818         * ira.c (ira): Likewise.
11819         * final.c (final_start_function): Likewise.
11820         * reorg.c (fill_simple_delay_slots): Likewise.
11821         * regrename.c (check_new_reg_p): Likewise.
11822         * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
11823         (notice_stack_pointer_modification): Likewise.
11824         * dbxout.c (dbxout_symbol): Likewise.
11825         (dbxout_parms): Likewise.
11826         * sel-sched.c (init_regs_for_mode): Likewise.
11827         * dwarf2out.c (dbx_reg_number): Likewise.
11828         (multiple_reg_loc_descriptor): Likewise.
11829         * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
11830         (gen_pop): Likewise.
11831         (ix86_select_alt_pic_regnum): Likewise.
11832         (ix86_compute_frame_layout): Likewise.
11833         (ix86_finalize_stack_realign_flags): Likewise.
11834         (ix86_expand_epilogue): Likewise.
11835         * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
11836         * config/h8300/h8300.c (byte_reg): Likewise.
11837         * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
11838         (c6x_save_reg): Likewise.
11839         (c6x_compute_frame_layout): Likewise.
11840         * config/pa/pa.c (pa_compute_frame_size): Likewise.
11841         (pa_output_function_prologue): Likewise.
11842         * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
11843         * config/sparc/sparc.md (attr "leaf_function"): Likewise.
11844         * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
11845         (sparc_expand_prologue): Likewise.
11846         (sparc_flat_expand_prologue): Likewise.
11847         (sparc_asm_function_prologue): Likewise.
11848         (sparc_output_mi_thunk): Likewise.
11849         (sparc_frame_pointer_required): Likewise.
11850         * config/epiphany/epiphany.c (epiphany_compute_function_type):
11851         Likewise.
11852         (epiphany_compute_frame_size): Likewise.
11853         * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
11854         * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
11855         (cris_frame_pointer_required): Likewise.
11856         * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
11857         (tilepro_current_function_is_leaf): Likewise.
11858         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
11859         * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
11860         * config/ia64/ia64.c (find_gr_spill): Likewise.
11861         (ia64_compute_frame_size): Likewise.
11862         (ia64_can_eliminate): Likewise.
11863         (ia64_initial_elimination_offset): Likewise.
11864         * config/m68k/m68k.c (m68k_save_reg): Likewise.
11865         (m68k_expand_epilogue): Likewise.
11866         * config/rx/rx.c (rx_get_stack_layout): Likewise.
11867         * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
11868         * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
11869         Likewise.
11870         (picochip_output_frame_debug): Likewise.
11871         * config/sh/sh.c (sh_media_register_for_return): Likewise.
11872         (sh_allocate_initial_value): Likewise.
11873         (sh_output_mi_thunk): Likewise.
11874         * config/microblaze/microblaze.c (microblaze_must_save_register):
11875         Likewise.
11876         (compute_frame_size): Likewise.
11877         (microblaze_initial_elimination_offset): Likewise.
11878         (microblaze_expand_prologue): Likewise.
11879         (microblaze_expand_epilogue): Likewise.
11880         * config/frv/frv.c (frv_expand_epilogue): Likewise.
11881         (frv_frame_pointer_required): Likewise.
11882         * config/spu/spu.c (get_pic_reg): Likewise.
11883         (direct_return): Likewise.
11884         (spu_expand_prologue): Likewise.
11885         (spu_expand_epilogue): Likewise.
11886         (spu_initial_elimination_offset): Likewise.
11887         * config/mips/mips.c (mips_global_pointer): Likewise.
11888         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11889         (mips_compute_frame_info): Likewise.
11890         * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
11891         (mep_reload_pointer): Likewise.
11892         * config/rl78/rl78.c (need_to_save): Likewise.
11893         * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
11894         * config/score/score.c (score_compute_frame_size): Likewise.
11895         (score_function_prologue): Likewise.
11896         * config/bfin/bfin.c (must_save_p): Likewise.
11897         (expand_prologue_reg_save): Likewise.
11898         (expand_epilogue_reg_restore): Likewise.
11899         (bfin_frame_pointer_required): Likewise.
11900         (n_regs_saved_by_prologue): Likewise.
11901         (add_to_reg): Likewise.
11902         (expand_interrupt_handler_prologue): Likewise.
11903         (expand_interrupt_handler_epilogue): Likewise.
11904         (bfin_expand_prologue): Likewise.
11905         * config/avr/avr.c (avr_regs_to_save): Likewise.
11906         (avr_prologue_setup_frame): Likewise.
11907         (expand_epilogue): Likewise.
11908         * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
11909         (s390_register_info): Likewise.
11910         (s390_frame_info): Likewise.
11911         (s390_init_frame_layout): Likewise.
11912         (s390_emit_prologue): Likewise.
11913
11914
11915 2012-06-24  Steven Bosscher  <steven@gcc.gnu.org>
11916
11917         * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
11918         * vmsdbgout: Do not undefine it if defined.
11919         Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
11920         * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
11921         * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
11922
11923 2012-06-24  Richard Sandiford  <rdsandiford@googlemail.com>
11924
11925         * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
11926
11927 2012-06-23  Richard Henderson  <rth@redhat.com>
11928
11929         PR target/53749
11930         * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
11931         V*QImode shifts and multiply.
11932         (ix86_expand_vecop_qihi): Support shifts.
11933         * config/i386/i386.md (any_shift): New code iterator.
11934         * config/i386/sse.md (ashlv16qi3): Merge ...
11935         (<any_shiftrt>v16qi3): ... into ...
11936         (<any_shift><VI1_AVX2>3): ... here.  Use ix86_expand_vecop_qihi
11937         to support SSE and AVX.
11938
11939         * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
11940         parameter into src and dest.
11941         * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
11942         (vec_unpacks_hi_<V124_AVX2>): Likewise.
11943         (vec_unpacku_lo_<V124_AVX2>): Likewise.
11944         (vec_unpacks_lo_<V124_AVX2>): Likewise.
11945         * config/i386/i386-protos.h: Update.
11946
11947         * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
11948         pure expander; move expansion code ...
11949         * config/i386/i386.c (ix86_expand_vecop_qihi): ... here.  New function.
11950         * config/i386/i386-protos.h: Update.
11951
11952 2012-06-22  Edmar Wienskoski  <edmar@freescale.com>
11953
11954         * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
11955         (popcntb<mode>2): Add attribute type popcnt.
11956         (popcntd<mode>2): Ditto.
11957         * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
11958         * config/rs6000/power5.md (define_insn_reservation): Ditto.
11959         * config/rs6000/power7.md (define_insn_reservation): Ditto.
11960         * config/rs6000/476.md (define_insn_reservation): Ditto.
11961         * config/rs6000/power6.md (define_insn_reservation): New
11962         reservation for popcnt instructions.
11963
11964 2012-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11965
11966         * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
11967
11968 2012-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11969
11970         PR target/53383
11971         * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
11972
11973         * config/i386/i386.c (ix86_option_override_internal): Allow
11974         -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
11975
11976         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
11977         if SSE is disabled.
11978
11979 2012-06-22  Bill Schmidt  <wschmidt@linux.ibm.com>
11980
11981         * double-int.c (double_int_multiple_of): New function.
11982         * double-int.h (double_int_multiple_of): New decl.
11983         * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
11984         (mbc_entry_hash): New forward decl.
11985         (mbc_entry_eq): Likewise.
11986         (zero_cost): Change to no_cost.
11987         (mult_costs): New static var.
11988         (cost_tables_exist): Likewise.
11989         (initialize_costs): New function.
11990         (finalize_costs): Likewise.
11991         (tree_ssa_iv_optimize_init): Call initialize_costs.
11992         (add_cost): Change to add_regs_cost; distinguish costs by speed.
11993         (multiply_regs_cost): New function.
11994         (add_const_cost): Likewise.
11995         (extend_or_trunc_reg_cost): Likewise.
11996         (negate_reg_cost): Likewise.
11997         (multiply_by_cost): Change to multiply_by_const_cost; distinguish
11998         costs by speed.
11999         (get_address_cost): Change add_cost to add_regs_cost; change
12000         multiply_by_cost to multiply_by_const_cost.
12001         (force_expr_to_var_cost): Change zero_cost to no_cost; change
12002         add_cost to add_regs_cost; change multiply_by_cost to
12003         multiply_by_const_cost.
12004         (split_cost): Change zero_cost to no_cost.
12005         (ptr_difference_cost): Likewise.
12006         (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
12007         to multiply_by_const_cost.
12008         (get_computation_cost_at): Change add_cost to add_regs_cost; change
12009         multiply_by_cost to multiply_by_const_cost.
12010         (determine_use_iv_cost_generic): Change zero_cost to no_cost.
12011         (determine_iv_cost): Change add_cost to add_regs_cost.
12012         (iv_ca_new): Change zero_cost to no_cost.
12013         (tree_ssa_iv_optimize_finalize): Call finalize_costs.
12014         * tree-ssa-address.c (most_expensive_mult_to_index): Change
12015         multiply_by_cost to multiply_by_const_cost.
12016         * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
12017         (add_regs_cost): New decl.
12018         (multiply_regs_cost): Likewise.
12019         (add_const_cost): Likewise.
12020         (extend_or_trunc_reg_cost): Likewise.
12021         (negate_reg_cost): Likewise.
12022
12023 2012-06-22  Richard Guenther  <rguenther@suse.de>
12024
12025         Merge from graphite branch
12026         2011-08-10  Sebastian Pop <sebpop@gmail.com>
12027
12028         * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
12029
12030         2012-01-13  Tobias Grosser  <tobias@grosser.es>
12031
12032         * tree-flow.h (parallelized_function_p): Declare.
12033         * tree-parloops.c (parallelized_function_p): Export.
12034         * graphite.c (graphite_transform_loops): Do not run graphite on
12035         already parallel functions.
12036
12037 2012-06-22  Alan Modra  <amodra@gmail.com>
12038
12039         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
12040         return mem.  Convert to indirect addressing if not indirect or
12041         indexed.  Adjust all callers.
12042
12043 2012-06-22  Richard Guenther  <rguenther@suse.de>
12044
12045         * gcov-iov.c: Include bconfig.h and system.h.
12046
12047 2012-06-22  Andreas Schwab  <schwab@linux-m68k.org>
12048
12049         * doc/include/texinfo.tex: Update to version 2012-06-05.14.
12050
12051 2012-06-22  Richard Guenther  <rguenther@suse.de>
12052
12053         PR gcov-profile/53744
12054         * gcov-iov.c (main): Treat "" and "prerelease" the same.
12055
12056 2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>
12057
12058         PR debug/53704
12059         * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
12060         for GNU Fortran if in strict DWARF2 mode.
12061
12062 2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>
12063
12064         * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
12065         DECL_IGNORED_P non-reg vars even if they are used.
12066
12067 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
12068
12069         PR debug/53671
12070         PR debug/49888
12071         * var-tracking.c (vt_get_canonicalize_base): New.
12072         (vt_canonicalize_addr, vt_stack_offset_p): New.
12073         (vt_canon_true_dep): New.
12074         (drop_overlapping_mem_locs): Use vt_canon_true_dep.
12075         (clobber_overlaping_mems): Use vt_canonicalize_addr.
12076
12077 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
12078
12079         PR debug/53671
12080         PR debug/49888
12081         * var-tracking.c (vt_initialize): Record initial offset between
12082         arg pointer and stack pointer.
12083
12084 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
12085
12086         PR debug/53671
12087         PR debug/49888
12088         * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
12089         CFA base.
12090
12091 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
12092
12093         PR debug/53671
12094         PR debug/49888
12095         * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
12096
12097 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
12098
12099         * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
12100
12101 2012-06-21  Alexandre Oliva  <aoliva@redhat.com>
12102
12103         PR debug/53682
12104         * cselib.c (promote_debug_loc): Don't crash on NULL argument.
12105
12106 2012-06-21  Meador Inge  <meadori@codesourcery.com>
12107
12108         PR c/53702
12109         * c-decl.c (c_push_function_context): Restore the behavior to reuse
12110         the language function allocated for -Wunused-local-typedefs.
12111         (c_pop_function_context): If necessary, clear the language function
12112         created in c_push_function_context.  Always clear out the
12113         x_cur_stmt_list field of the restored language function.
12114
12115 2012-06-21  Sterling Augustine  <saugustine@google.com>
12116             Cary Coutant  <ccoutant@google.com>
12117
12118         * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
12119         add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
12120         (comdat_type_struct): New field 'skeleton_die'.
12121         (breakout_comdat_types): Update it.
12122         (add_pubname): Rework logic.  Call is_class_die, is_cu_die and
12123         is_namespace_die.  Fix minor style violation.  Call want_pubnames.
12124         (add_pubname_string): Call want_pubnames.
12125         (add_pubtype): Rework logic for calculating type name.  Call
12126         is_namespace_die.  Call want_pubnames.
12127         (output_pubnames): Move conditional logic deciding when to produce the
12128         section from dwarf2out_finish.  Use new skeleton_die field.
12129         (base_type_die): Call add_pubtype.
12130         (gen_enumeration_type_die): Unconditionally call add_pubtype.
12131         (gen_subprogram_die): Adjust calls to add_pubname.
12132         (gen_namespace_die): Call add_pubname_string.
12133         (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
12134         produce pubnames and pubtypes sections to output_pubnames.
12135         * common.opt (-gpubnames): New option.
12136         * doc/invoke.texi: Document it.
12137
12138 2012-06-21  Steven Bosscher  <steven@gcc.gnu.org>
12139
12140         * config/m32c/m32c-pragma.c: Remove unnecessary includes.
12141
12142 2012-06-21  Michael Matz  <matz@suse.de>
12143
12144         PR middle-end/53688
12145         * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
12146         with correct size.
12147
12148 2012-06-21  Richard Guenther  <rguenther@suse.de>
12149
12150         * tree-inline.c (estimate_num_insns): Estimate call cost for
12151         tailcalls properly.
12152
12153 2012-06-20  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
12154
12155         * tree.h (DECL_SOURCE_COLUMN): New accessor.
12156
12157 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
12158
12159         * config/i386/i386.md (SINCOS): New int iterator.
12160         (sincos): New int attribute.
12161         (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
12162         SINCOS int iterator.
12163         (*<sincos>_extend<mode>xf2_i387): Macroize insn from
12164         *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
12165
12166 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
12167
12168         * config/i386/i386.md (RDFSGSBASE): New int iterator.
12169         (WRFSGSBASE): Ditto.
12170         (fsgs): New int attribute.
12171         (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
12172         RDFSGSBASE int iterator.
12173         (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
12174         WRFSGSBASE int iterator.
12175
12176 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
12177
12178         * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
12179         from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
12180         (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
12181         from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
12182         int iterator.
12183
12184 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
12185
12186         * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
12187
12188 2012-06-20  Richard Guenther  <rguenther@suse.de>
12189
12190         PR tree-optimization/30318
12191         * tree-vrp.c (range_int_cst_p): Do not reject overflowed
12192         constants here.
12193         (range_int_cst_singleton_p): But explicitely here.
12194         (zero_nonzero_bits_from_vr): And here.
12195         (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
12196         to cover all cases we can perform arbitrary precision
12197         arithmetic with double-ints.
12198         (intersect_ranges): Handle adjacent anti-ranges.
12199
12200 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
12201
12202         * config/i386/i386.md (rounding_insn): New int attribute.
12203         (<rounding_insn>xf2): Macroize insn from
12204         {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
12205         (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
12206
12207 2012-06-20  Uros Bizjak  <ubizjak@gmail.com>
12208
12209         * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
12210         (ieee_maxmin): New int attribute.
12211         (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
12212         *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
12213
12214 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
12215
12216         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
12217         * config/arm/arm.c: Do not include c-pragma.h.
12218         (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
12219         (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
12220         to arm_emit_eabi_attribute.
12221         * arm-c.c: Do not include output.h.
12222         (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
12223         call to arm_emit_eabi_attribute.
12224         * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
12225
12226 2012-06-20  Richard Guenther  <rguenther@suse.de>
12227
12228         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
12229         Allow adjusting alignment of user-aligned decls again.
12230
12231 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
12232
12233         * config/rl78/rl78-c.c: Remove unnecessary includes.
12234
12235 2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>
12236
12237         * config/cris/cris.c: Include cgraph.h.
12238         (cris_option_override): Do not set non-existing flag_no_gcc_ident.
12239
12240 2012-06-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
12241
12242         * emit-rtl.c (need_atomic_barrier_p): New function.
12243         * emit-rtl.h (need_atomic_barrier_p): Declare it.
12244         * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
12245         * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
12246         * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
12247         * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
12248         (mips_process_sync_loop): Use generic version instead.
12249
12250 2012-06-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
12251
12252         * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
12253         it is used.
12254
12255 2012-06-19  Tom de Vries  <vries@codesourcery.com>
12256             Maxim Kuvyrkov  <maxim@codesourcery.com>
12257
12258         * config/mips/constraints.md (ZR): New constraint.
12259         * config/mips/predicates.md (mem_noofs_operand): New predicate.
12260         * config/mips/mips.c (mips_print_operand): Handle new print modifier.
12261         * config/mips/mips.h (TARGET_XLP): Define.
12262         (TARGET_SYNC_AFTER_SC): Update.
12263         (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
12264         * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
12265         XLP-specific swap and ldadd patterns.
12266         (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
12267
12268 2012-06-19  Tom de Vries  <vries@codesourcery.com>
12269             Maxim Kuvyrkov  <maxim@codesourcery.com>
12270
12271         * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
12272         (mips_emit_post_atomic_barrier_p): New static functions.
12273         (mips_process_sync_loop): Use them.  Emit sync memory barriers in
12274         accordance with memory model semantics.  Add return of CMP result for
12275         compare_and_swap.
12276         * config/mips/mips.md: Update comment.
12277         (sync_cmp): New attribute.
12278         (sync_memmodel): New attribute replacing sync_release_barrier.
12279         * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
12280         (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
12281         (sync_lock_test_and_set, test_and_set_12): Update.
12282         (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
12283         (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
12284
12285 2012-06-19  Joseph Myers  <joseph@codesourcery.com>
12286
12287         * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
12288         mov_si<mode>_e500_subreg0.
12289         (*mov_si<mode>_e500_subreg0_elf_low)
12290         (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
12291
12292 2012-06-19  Richard Henderson  <rth@redhat.com>
12293
12294         * config/alpha/alpha.c: Include params.h.
12295         (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
12296         PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
12297
12298 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
12299
12300         * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
12301         TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
12302         (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
12303         Remove.
12304         * doc/tm.texi: Regenerate.
12305         * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
12306         .objc_class_name_*.
12307         * config/darwin-c.c: Include target.h.
12308         (darwin_objc_declare_unresolved_class_reference): New function.
12309         (darwin_objc_declare_class_definition): New function.
12310         (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
12311         (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
12312
12313 2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>
12314
12315         * target.def (output_ident): New hook.
12316         * targhooks.h (default_asm_output_ident_directive): Add prototype.
12317         * varasm.c (assemble_asm): Only prefix a tab if the string does not
12318         already start with one.
12319         (default_asm_output_ident_directive): New function to emit
12320         .ident as a top-level asm node while parsing, or directly to
12321         asm_out_file after parsing.
12322         * toplev.c (compile_file): Print a GCC .ident with
12323         targetm.asm_out.output_ident.
12324         * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
12325         (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
12326         * doc/tm.texi: Update.
12327
12328         * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
12329         (TARGET_ASM_OUTPUT_IDENT): Define.
12330         * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
12331         * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
12332         * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
12333         * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
12334         (TARGET_ASM_OUTPUT_IDENT): Define.
12335         * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
12336         (TARGET_ASM_OUTPUT_IDENT): Define.
12337
12338         * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
12339         * config/cris/cris.c (cris_asm_output_ident): New function.
12340         * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
12341
12342         * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
12343         Add prototype.
12344         * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
12345         (microblaze_asm_output_ident): Rewrite to work similar to
12346         default_asm_output_ident_directive for front-end .idents.
12347         * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
12348         (TARGET_ASM_OUTPUT_IDENT): Define.
12349
12350         * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
12351         * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
12352
12353         * config/rx/rx.c: Include cgraph.h for add_asm_node.
12354         (rx_asm_output_ident): New function, similar to
12355         default_asm_output_ident_directive, but handle AS100 syntax also, so
12356         that #ident also works for rx in AS100 syntax.
12357         (TARGET_ASM_OUTPUT_IDENT): Define.
12358         * config/rx/rx.h (IDENT_ASM_OP): Remove.
12359
12360         * Makefile.in: Fix dependencies for c-family/c-lex.o.
12361
12362 2012-06-19  Uros Bizjak  <ubizjak@gmail.com>
12363
12364         * config/i386/i386.md (FIST_ROUNDING): New int iterator.
12365         (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
12366         (ROUNDING): Ditto.
12367         (*fist<mode>2_<rounding>_1): Macroize insn from
12368         *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
12369         (fistdi2_<rounding>): Macroize insn from
12370         fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
12371         (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
12372         corresponding splitters from fistdi2_{floor,ceil} and corresponding
12373         splitters using FIST_ROUNDING int iterator.
12374         (fist<mode>2_<rounding>): Macroize insn from
12375         fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
12376         (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
12377         corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
12378         splitters using FIST_ROUNDING int iterator.
12379         (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
12380         using FIST_ROUNDING int iterator.
12381
12382 2012-06-19  Richard Henderson  <rth@redhat.com>
12383
12384         * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
12385         * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
12386         * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
12387         * config/i386/sse.md (sse2_mulv4si3): Delete.
12388         (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
12389         nonimmediate_or_const_vector_operand.
12390
12391 2012-06-19  Richard Henderson  <rth@redhat.com>
12392
12393         * expmed.c (struct init_expmed_rtl): Split ...
12394         (init_expmed_one_mode): ... out of ...
12395         (init_expmed): ... here.  Initialize integer vector modes also.
12396         (synth_mult): Handle integer vector modes.
12397         (choose_mult_variant): Likewise.
12398         (expand_mult_const): Likewise.
12399         (expand_mult): Likewise.
12400         * machmode.h (GET_MODE_UNIT_BITSIZE): New.
12401
12402 2012-06-19  Richard Henderson  <rth@redhat.com>
12403
12404         * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
12405         integral vector modes.
12406
12407 2012-06-19  Uros Bizjak  <ubizjak@gmail.com>
12408
12409         * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
12410         (rounding): New int attribute.
12411         (ROUNDING): Ditto.
12412         (frndintxf2_<rounding>): Macroize insn from
12413         frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
12414         (frndintxf2_<rounding>_i387): Macroize insn from
12415         frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
12416
12417 2012-06-19  Richard Guenther  <rguenther@suse.de>
12418
12419         * tree-vrp.c (union_ranges): New function.
12420         (vrp_meet_1): Use union_ranges.
12421         (vrp_meet): Dump what we union and call vrp_meet_1.
12422
12423 2012-06-19  Richard Earnshaw  <rearnsha@arm.com>
12424
12425         * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
12426         (attr type): Remove fmul, ffmul, farith, ffarith, float_em
12427         f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
12428         (attr write_conflict, attr core_cycles): Update.
12429         * arm-generic.md (r_mem_f_wbuf): Delete reservation.
12430
12431 2012-06-19  Richard Guenther  <rguenther@suse.de>
12432
12433         * tree-vrp.c (intersect_ranges): Handle more cases.
12434         (vrp_intersect_ranges): Dump what we intersect and call ...
12435         (vrp_intersect_ranges_1): ... this.
12436
12437 2012-06-19  Richard Guenther  <rguenther@suse.de>
12438
12439         PR tree-optimization/53708
12440         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
12441         user-supplied alignment and alignment of decls with the used
12442         attribute.
12443
12444 2012-06-18  Lawrence Crowl  <crowl@google.com>
12445
12446         * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
12447         (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
12448         (TV_PHASE_STREAM_IN): New.
12449         (TV_PHASE_STREAM_OUT): New.
12450         * timevar.c (validate_phases): New.
12451         (timevar_print): Call validate_phases.
12452         * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
12453         to TV_PHASE_OPT_GEN.
12454         * langhooks.c (write_global_declarations): Rename use of
12455         TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN.  Use TV_PHASE_DBGINFO instead of
12456         TV_PHASE_CHECK_DBGINFO.
12457         * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
12458         TV_PHASE_LATE_ASM.  Move start of TV_PHASE_LATE_ASM to after call to
12459         lang_hooks.decls.final_write_globals.
12460
12461 2012-06-18  David Edelshn  <dje.gcc@gmail.com>
12462
12463         * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
12464
12465 2012-06-18  Uros Bizjak  <ubizjak@gmail.com>
12466
12467         PR target/53712
12468         * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
12469         (*sse4_2_pcmpistr_unaligned): New.
12470
12471 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
12472             Sameera Deshpande  <sameera.deshpande@arm.com>
12473             Greta Yorsh  <greta.yorsh@arm.com>
12474
12475         * config/arm/arm-protos.h (arm_output_epilogue): Remove.
12476         * config/arm/arm.c (print_multi_reg): Remove.
12477         (vfp_output_fldmd): Likewise.
12478         (arm_output_epilogue): Likewise.
12479         * config/arm/arm.md (epilogue_insns): Update condition and code.
12480
12481 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
12482             Sameera Deshpande  <sameera.deshpande@arm.com>
12483             Greta Yorsh  <greta.yorsh@arm.com>
12484
12485         * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
12486         * config/arm/arm.c (thumb2_expand_return): New function.
12487         * config/arm/arm.md (return): Update condition and code.
12488
12489 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
12490             Sameera Deshpande  <sameera.deshpande@arm.com>
12491             Greta Yorsh  <greta.yorsh@arm.com>
12492
12493         * config/arm/arm-protos.h (output_return_instruction): New parameter
12494         and int to bool change of parameter types.
12495         * config/arm/arm.c (output_return_instruction): Likewise.
12496         * config/arm/arm.md (arm_simple_return): New pattern.
12497         (arm_return, cond_return, cond_return_inverted): Add new arguments.
12498         * config/arm/thumb2.md (thumb2_return): Update condition and code.
12499
12500 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
12501             Sameera Deshpande  <sameera.deshpande@arm.com>
12502             Greta Yorsh  <greta.yorsh@arm.com>
12503
12504         * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
12505         * config/arm/arm.c (arm_expand_epilogue): New function.
12506         * config/arm/arm.md (epilogue): Update condition and code.
12507         (sibcall_epilogue): Likewise.
12508
12509 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
12510             Sameera Deshpande  <sameera.deshpande@arm.com>
12511             Greta Yorsh  <greta.yorsh@arm.com>
12512
12513         * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
12514         * config/arm/arm.md (arm_addsi3) Add an alternative.
12515
12516 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
12517             Sameera Deshpande  <sameera.deshpande@arm.com>
12518             Greta Yorsh  <greta.yorsh@arm.com>
12519
12520         * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
12521         * config/arm/predicates.md (pop_multiple_fp) New special predicate.
12522         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
12523
12524 2012-06-18  Ian Bolton  <ian.bolton@arm.com>
12525             Sameera Deshpande  <sameera.deshpande@arm.com>
12526             Greta Yorsh  <greta.yorsh@arm.com>
12527
12528         * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
12529         (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
12530         (pop_multiple_with_return, ldr_with_return) Likewise.
12531         * config/arm/predicates.md (pop_multiple_return) New special predicate.
12532         * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
12533         * config/arm/arm.c (arm_output_multireg_pop) New function.
12534         (arm_emit_multi_reg_pop): New function.
12535
12536 2012-06-18  Greta Yorsh  <Greta.Yorsh@arm.com>
12537
12538         * config/arm/arm.c (ldm_stm_operation_p): Require SP
12539         as base register for loads if SP is in the register list.
12540
12541 2012-06-18  Richard Guenther  <rguenther@suse.de>
12542
12543         PR tree-optimization/53693
12544         * tree-vect-patterns.c (vect_operation_fits_smaller_type):
12545         Reject operands with more than one use.
12546
12547 2012-06-18  Bill Schmidt  <wschmidt@linux.ibm.com>
12548
12549         PR tree-optimization/53703
12550         * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
12551         correctly set bb_for_def[12].
12552
12553 2012-06-18  Steven Bosscher  <steven@gcc.gnu.org>
12554
12555         * config/vax/vax.h (VMS_TARGET): Remove.
12556
12557 2012-06-18  Richard Guenther  <rguenther@suse.de>
12558
12559         * tree-vrp.c (extract_range_from_assert): Split out range
12560         intersecting code.
12561         (intersect_ranges): New function.
12562         (vrp_intersect_ranges): Likewise.
12563
12564 2012-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12565
12566         * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
12567         r187965.
12568
12569 2012-06-18  Tejas Belagod  <tejas.belagod@arm.com>
12570
12571         * doc/md.texi: Document int iterators.
12572         * read-rtl.c (ints): New iterator group.
12573         (find_int): Int iterator group callback.
12574         (apply_int_iterator): Likewise.
12575         (apply_iterators): Traverse int iterator table and add all the used
12576         iterators to list.
12577         (initialize_iterators): Initialize data structures and callbacks for
12578         int iterators.
12579         (read_rtx): Parse and read mappings for int iterators.
12580         (read_rtx_code): Record int iterator usage.
12581
12582 2012-06-18  Richard Sandiford  <rdsandiford@googlemail.com>
12583
12584         PR middle-end/53698
12585         * expr.c (expand_expr_addr_expr_1): Convert to tmode before
12586         performing an addition.
12587
12588 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
12589
12590         * output.h (split_double): Move prototype to rtl.h.
12591         (constructor_static_from_elts_p): Move prototype to tree.c.
12592         * rtl.h (split_double): Moved here from output.h.
12593         * tree.h (constructor_static_from_elts_p): Moved here from output.h.
12594         * final.c (split_double): Move from here ...
12595         * rtlanal.c (split_double): ... to here.
12596         * expr.c: Do not include output.h.
12597
12598 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
12599
12600         * cfglayout.h: Remove.
12601         * cfglayout.c: Remove.
12602         * function.h (struct function): Remove x_last_location field.
12603         * function.c: Do not include cfglayout.h.
12604         (expand_function_start): Do not call no-op force_next_line_note.
12605         (expand_function_end): Likewise.
12606         * cfgrtl.c: Do not include cfglayout.h.  Include gt-cfgrtl.h.
12607         (unlink_insn_chain): Moved here from cfglayout.c.
12608         (skip_insns_after_block, label_for_bb, record_effective_endpoints,
12609         into_cfg_layout_mode, outof_cfg_layout_mode,
12610         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
12611         relink_block_chain, fixup_reorder_chain, verify_insn_chain,
12612         fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
12613         cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
12614         cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
12615         cfg_layout_finalize): Likewise.
12616         (rtl_can_remove_branch_p): Likewise.
12617         * rtl.h (insn_scope): Move prototype from cfglayout.h here.
12618         (duplicate_insn_chain): Likewise.
12619         (force_next_line_note): Remove prototype.
12620         * emit-rtl.c: Do not include tree-flow.h, egad.  Include vecprim.h.
12621         (last_location): Remove #define to emit.x_last_location.
12622         (force_next_line_note): Remove no-op function.
12623         (init_emit): Don't set x_last_location.
12624         (block_locators_locs, block_locators_blocks, locations_locators_locs,
12625         locations_locators_vals, prologue_locator, epilogue_locator,
12626         curr_location, last_location, curr_block, last_block, curr_rtl_loc):
12627         Move POD to here from cfglayout.c.
12628         (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
12629         set_curr_insn_source_location, get_curr_insn_source_location,
12630         set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
12631         locator_scope, insn_scope, locator_location, locator_line, insn_line,
12632         locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
12633         * cfghooks.h: Remove double-include protection.
12634         (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
12635         * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
12636         * final.c: Do not include cfglayout.h.
12637         (choose_inner_scope, change_scope): Move to here from cfglayout.c.
12638         (reemit_insn_block_notes): Likewise.  Make static.
12639         * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
12640         operation_could_trap_p, tree_could_throw_p): Move from here...
12641         * tree.h: ... to here.
12642         * gengtype.c (open_base_files): Remove cfglayout.h from the list.
12643         * profile.c: Do not include cfghooks.h.
12644         * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
12645         * modulo-sched.c: Likewise.
12646         * loop-unswitch.c: Do not include cfglayout.h.
12647         * sched-ebb.c: Likewise.
12648         * tracer.c: Likewise.
12649         * ddg.c: Likewise.
12650         * tree-vect-loop-manip.c: Likewise.
12651         * loop-init.c: Likewise.
12652         * dwarf2out.c: Likewise.
12653         * hw-doloop.c: Likewise.
12654         * loop-unroll.c: Likewise.
12655         * cfgcleanup.c: Likewise.
12656         * bb-reorder.c: Likewise.
12657         * sched-rgn.c: Likewise.
12658         * tree-cfg.c: Likewise.
12659         * config/alpha/alpha.c: Likewise.
12660         * config/spu/spu.c: Likewise.
12661         * config/sparc/sparc.c: Likewise.
12662         * config/sh/sh.c: Likewise.
12663         * config/c6x/c6x.c: Likewise.
12664         * config/ia64/ia64.c: Likewise.
12665         * config/rs6000/rs6000.c: Likewise.
12666         * config/score/score.c: Likewise.
12667         * config/mips/mips.c: Likewise.
12668         * config/bfin/bfin.c: Likewise.
12669         * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
12670         * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
12671         * config/spu/t-spu-elf (spu.o: $): Likewise.
12672         * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
12673
12674 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
12675
12676         * cfgloop.h: Do not include rtl.h.
12677         (enum iv_extend_code): New.
12678         (struct rtx_iv): Use iv_extend_code instead of rtx_code.
12679         * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
12680         * loop-iv.c (iv_extend_to_rtx_code): New function to translate
12681         an IV_EXTEND_CODE to an RTX_CODE.
12682         (dump_iv_info): Update for rtx_iv field type change.
12683         (iv_constant): Likewise.
12684         (iv_subreg): Likewise.
12685         (iv_extend): Likewise.
12686         (iv_neg): Likewise.
12687         (iv_add): Likewise.
12688         (iv_mult): Likewise.
12689         (iv_shift): Likewise.
12690         (get_biv_step_1): Likewise.
12691         (get_biv_step): Likewise.
12692         (iv_analyze_biv): Likewise.
12693         (get_iv_value): Likewise.
12694         (shorten_into_mode): Likewise.
12695         (canonicalize_iv_subregs): Likewise.
12696         * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
12697         of MAY_HAVE_DEBUG_INSNS.
12698         * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
12699         * tree-ssa-loop-prefetch.c: Likewise.
12700
12701 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
12702
12703         * expmed.c (ceil_log2): Move from here...
12704         * hwint.c: ... to here for older GCCs...
12705         * hwint.h: ... and here for newer GCCs.
12706         * rtl.h (ceil_log2): Remove prototype.
12707
12708         * tree-phinodes.c: Do not include rtl.h.
12709         * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
12710
12711 2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>
12712
12713         * config/cris/cris.h (TARGET_ELF): Remove.
12714         (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
12715         (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
12716         (LOCAL_LABEL_PREFIX): Likewise.
12717         * config/cris/cris.c (cris_target_asm_named_section): Remove.
12718         (cris_option_override): Simpify using TARGET_ELF==1.
12719         (cris_file_start): Likewise.
12720         * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
12721
12722 2012-06-17  Uros Bizjak  <ubizjak@gmail.com>
12723
12724         * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
12725
12726 2012-06-16  Eric Botcazou  <ebotcazou@adacore.com>
12727
12728         PR middle-end/53590
12729         * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
12730
12731 2012-06-15  Easwaran Raman  <eraman@google.com>
12732
12733         * passes.c (init_optimization_passes): Remove pass_call_cdce
12734         from its current position and insert after pass_dce.
12735
12736 2012-06-15  Walter Lee  <walt@tilera.com>
12737
12738         * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
12739
12740 2012-06-15  Richard Earnshaw  <rearnsha@arm.com>
12741
12742         * arm.c (note_invalid_constants): Don't return a result.
12743         (arm_memory_load_p): Delete function.
12744         (arm_const_double_rtx): Delete iterator variable i;
12745         (fp_immediate_constant): Likewise.
12746         (fp_const_from_val): Likewise.
12747
12748         * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
12749
12750 2012-06-15  Marc Glisse  <marc.glisse@inria.fr>
12751
12752         PR c++/51033
12753         * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
12754         * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
12755
12756 2012-06-15  Georg-Johann Lay  <avr@gjlay.de>
12757
12758         * config/avr/avr.c (avr_default_expand_builtin): New function.
12759         (avr_expand_builtin): Use it.
12760         (avr_expand_unop_builtin): Remove.
12761         (avr_expand_binop_builtin): Remove.
12762         (avr_expand_triop_builtin): Remove.
12763
12764 2012-06-15  Michael Matz  <matz@suse.de>
12765
12766         PR middle-end/38474
12767         * cfgexpand.c (add_alias_set_conflicts): Remove.
12768         (expand_used_vars): Don't call it.
12769         (aggregate_contains_union_type): Remove.
12770         * function.c (n_temp_slots_in_use): New static data.
12771         (make_slot_available, assign_stack_temp_for_type): Update it.
12772         (init_temp_slots): Zero it.
12773         (remove_unused_temp_slot_addresses): Use it for quicker removal.
12774         (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
12775
12776 2012-06-15  Michael Matz  <matz@suse.de>
12777
12778         * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
12779         argument, don't emit assign statement if value is directly usable.
12780         (gimplify_expr): Adjust.
12781
12782 2012-06-15  Michael Matz  <matz@suse.de>
12783
12784         * gimplify.c (gimplify_modify_expr): Fold generated statements.
12785         * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
12786
12787 2012-06-15  Richard Guenther  <rguenther@suse.de>
12788
12789         * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
12790         predicates to set VR_UNDEFINED and VR_VARYING.  Drop a case
12791         we assert for in set_value_range to VR_VARYING.
12792
12793 2012-06-15  Richard Earnshaw  <rearnsha@arm.com>
12794
12795         * arm.md (addsf3, adddf3): Use s_register_operand.
12796         (subsf3, subdf3): Likewise.
12797         (mulsf3, muldf3): Likewise.
12798         (difsf3, divdf3): Likewise.
12799         (movsfcc, movdfcc): Likewise.
12800         * predicates.md (f_register_operand): Delete.
12801         (arm_float_rhs_operand): Delete.
12802         (arm_float_add_operand): Delete.
12803         (arm_float_compare_operand): Use s_register_operand when
12804         there's no VFP.
12805         (cirrus_register_operand): Delete.
12806         (cirrus_fp_register): Delete.
12807         (cirrus_shift_const): Delete.
12808         (cmpdi_operand): Remove Maverick support.
12809         * constraints.md (f, v, H): Delete constraints.
12810         (G): Update documentation.
12811         * arm.c (fp_consts_inited): Convert to bool.
12812         (strings_fp): Delete.
12813         (values_fp): Delete.
12814         (value_fp0): New variable.
12815         (init_fp_table): Simplify logic.
12816         (arm_const_double_rtx): Likewise.
12817         (fp_immediate_constant): Likewise.
12818         (fp_const_from_val): Likewise.
12819         (neg_const_double_rtx_ok_for_fpa): Delete.
12820         * doc/md.texi (ARM constraints): Update documentation.
12821
12822 2012-06-15  Ulrich Weigand  <ulrich.weigand@linaro.org>
12823
12824         PR tree-optimization/53636
12825         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
12826         stride when doing basic-block vectorization.
12827
12828 2012-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12829
12830         * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
12831         into VEC_PERM_EXPR.
12832
12833 2012-06-15  Jakub Jelinek  <jakub@redhat.com>
12834
12835         * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
12836         allocate and free bbs array for the SLP case.
12837
12838         PR tree-optimization/51581
12839         * expr.h (choose_multiplier): New prototype.
12840         * expmed.c (choose_multiplier): No longer static.
12841         Change multiplier_ptr from rtx * to UHWI *.
12842         (expand_divmod): Adjust callers.
12843         * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
12844         (vect_recog_divmod_pattern): ... this.  Pass bb_vinfo as last
12845         argument to new_stmt_vec_info.  Attempt to optimize also divisions
12846         by non-pow2 constants if integer vector division isn't supported.
12847         * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
12848         don't look at pattern stmts and sequences.
12849
12850 2012-06-15  Eric Botcazou  <ebotcazou@adacore.com>
12851
12852         PR middle-end/53590
12853         * common.opt (-fdelete-dead-exceptions): New switch.
12854         * doc/invoke.texi (Code Gen Options): Document it.
12855         * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
12856         insn_could_throw_p predicate.  Do not skip an insn that could throw
12857         if dead exceptions can be deleted.
12858         (insn_live_p): Likewise, do not return true in that case.
12859         * dce.c (can_alter_cfg): New flag.
12860         (deletable_insn_p): Do not return false for an insn that can throw if
12861         the CFG can be altered and dead exceptions can be deleted.
12862         (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
12863         * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
12864         predicate. Do not preserve an insn that could throw if dead exceptions
12865         can be deleted.
12866         * function.h (struct function): Add can_delete_dead_exceptions flag.
12867         * function.c (allocate_struct_function): Set it.
12868         * lto-streamer-in.c (input_struct_function_base): Stream it.
12869         * lto-streamer-out.c (input_struct_function_base): Likewise.
12870         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
12871         statement that could throw as necessary if dead exceptions can be
12872         deleted.
12873
12874 2012-06-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
12875
12876         * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
12877
12878 2012-06-14  Oleg Endo  <olegendo@gcc.gnu.org>
12879
12880         PR target/53568
12881         * config/sh/sh.md: Add peephole for swapbsi2.
12882         (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
12883
12884 2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
12885
12886         * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
12887         (*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.
12888
12889 2012-06-14  Jakub Jelinek  <jakub@redhat.com>
12890
12891         PR target/53639
12892         * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
12893
12894 2012-06-14  Richard Earnshaw  <rearnsha@arm.com>
12895
12896         * arm.c (arm_cirrus_insn_p): Delete.
12897         (cirrus_reorg): Delete.
12898         (arm_reorg): Don't call cirrus_reorg.
12899         (arm_final_prescan_insn_p): Don't check for cirrus insns.
12900         * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
12901         (adddi3, subdi3): Remove Maverick support.
12902         (arm_adddi3): Likewise.
12903         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
12904         (addsf3, adddf3): Likewise.
12905         (subsf3, subdf3): Likewise.
12906         (mulsf3, muldf3): Likewise.
12907         (ashldi3, ashrdi3, lshrdi3): Likewise.
12908         (floatsisf2, floatsidf2): Likewise.
12909         (fix_truncsfsi2, fix_truncdfsi2): Likewise.
12910         (arm_movdi, thumb1_movdi_insn): Likewise.
12911         (arm_cmpdi_insn): Likewise.
12912         (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
12913         (cirrus.md): Don't include.
12914         * cirrus.md: Delete file.
12915         * t-arm (MD_INCLUDES): Remove cirrus.md.
12916
12917 2012-06-14  Eric Botcazou  <ebotcazou@adacore.com>
12918
12919         * dwarf2out.c (function_possibly_abstracted_p): New static function.
12920         (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
12921         cgraph_function_possibly_inlined_p.
12922         (gen_inlined_subroutine_die): Return if the origin is to be ignored.
12923         (process_scope_var): Do not emit concrete instances of abstracted
12924         nested functions from here.
12925         (gen_decl_die): Emit the abstract instance if the function is possibly
12926         abstracted and not only possibly inlined.
12927         (dwarf2out_finish): Find the first non-abstract parent instance and
12928         attach concrete instances on the limbo list to it.
12929
12930 2012-06-14  Richard Earnshaw  <rearnsha@arm.com>
12931
12932         * arm.md (divsf3, divdf3): Remove FPA support.
12933         (negsf2, negdf2): Likewise.
12934         (sqrtsf2, sqrtdf2): Likewise.
12935         (movdfcc): Likewise.
12936         (modsf3, moddf3, movxf): Delete.
12937         (push_fp_multi): Delete.
12938         (fpa.md): Don't include it.
12939         * fpa.md: Delete file.
12940         * t-arm (MD_INCLUDES): Remove fpa.md.
12941
12942 2012-06-14  Bill Schmidt  <wschmidt@linux.ibm.com>
12943
12944         * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
12945         (cost_for_stmt): Remove decl.
12946         (vect_get_single_scalar_iteration_cost): Correct typo in name.
12947         * tree-vect-loop.c (vect_get_cost): Remove.
12948         (vect_get_single_scalar_iteration_cost): Correct typo in name; use
12949         vect_get_stmt_cost rather than vect_get_cost.
12950         (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
12951         vect_get_cost.
12952         (vect_estimate_min_profitable_iters): Correct typo in call to
12953         vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
12954         than vect_get_cost.
12955         (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
12956         vect_get_cost.
12957         (vect_model_induction_cost): Likewise.
12958         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
12959         typo in call to vect_get_single_scalar_iteration_cost.
12960         * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
12961         (cost_for_stmt): Remove unnecessary function.
12962         * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
12963
12964 2012-06-14  Richard Earnshaw  <rearnsha@arm.com>
12965
12966         * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
12967         * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
12968         * arm-tables.opt: Regenerated.
12969         * doc/invoke.texi: Remove references to deleted options.
12970
12971 2012-06-14  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
12972
12973         * config/h8300/genmova.sh: Modified to add offset bits of
12974         mova/Sz assembly instruction for memory access.
12975         * config/h8300/h8300.c: Likewise.
12976         * config/h8300/mova.md: Likewise.
12977
12978 2012-06-12  Christian Bruel  <christian.bruel@st.com>
12979
12980         PR target/53621
12981         * config/sh/sh.c (sh_option_override): Don't force
12982          flag_omit_frame_pointer and maccumulate_outgoing_args.
12983         * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
12984
12985 2012-06-14  Richard Guenther  <rguenther@suse.de>
12986
12987         * tree-vrp.c (VR_INITIALIZER): New define.
12988         (ranges_from_anti_range): New function.
12989         (extract_range_from_binary_expr_1): Decompose operations on
12990         VR_ANTI_RANGEs to operations on VR_RANGE.
12991         (extract_range_from_unary_expr_1): Likewise.
12992         (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
12993         extract_range_from_unary_expr_1, extract_range_from_unary_expr,
12994         extract_range_from_cond_expr, adjust_range_with_scev,
12995         vrp_visit_assignment_or_call, vrp_visit_phi_node,
12996         simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
12997
12998 2012-06-13  Richard Henderson  <rth@redhat.com>
12999
13000         * hwint.h (HOST_WIDEST_INT_C): New.
13001         (HOST_WIDE_INT_C): New.
13002         (HOST_WIDE_INT_1): Use it.
13003         * config/alpha/alpha.c (alpha_trampoline_init): Use it.
13004
13005 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
13006
13007         PR debug/49888
13008         * var-tracking.c: Include alias.h.
13009         (overlapping_mems): New struct.
13010         (drop_overlapping_mem_locs): New.
13011         (clobber_overlapping_mems): New.
13012         (var_mem_delete_and_set, var_mem_delete): Call it.
13013         (val_bind): Likewise, but only if modified.
13014         (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
13015         * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
13016
13017 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
13018
13019         PR debug/47624
13020         * var-tracking.c (loc_exp_dep_pool): New.
13021         (vt_emit_notes): Create and release the pool.
13022         (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
13023         (emit_notes_in_bb): Likewise.
13024         (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
13025         (notify_dependents_of_changed_value): Likewise.
13026         (notify_dependents_of_resolved_value): Check that NOT_ONEPART
13027         variables don't have a VAR_LOC_DEP_LST.
13028         (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
13029         VALUEs or MEMs of VALUEs.
13030
13031 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
13032
13033         PR debug/52983
13034         PR debug/48866
13035         * dce.c (word_dce_process_block): Insert debug temps only if the
13036         insn is not marked.
13037         (dce_process_block): Likewise, and if debug.used is not empty,
13038         and only after iterating over all DEFs that might mark the insn.
13039
13040 2012-06-13  Alexandre Oliva  <aoliva@redhat.com>
13041
13042         * common.opt (ftree-coalesce-inlined-vars): New.
13043         (ftree-coalesce-vars): New.
13044         * doc/invoke.texi: Document them.
13045         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
13046         Implement them.
13047
13048 2012-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
13049
13050         * read-rtl.c (mapping): Remove index field.  Add current_value field.
13051         Define heap vectors.
13052         (iterator_group): Fix long line.  Remove num_builtins field and
13053         uses_iterator fields.  Make apply_iterator take a void * parameter.
13054         (iterator_use, atttribute_use): New structures.
13055         (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
13056         (current_iterators, iterator_uses, attribute_uses): New variables.
13057         (uses_mode_iterator_p, uses_code_iterator_p): Delete.
13058         (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
13059         (map_attr_string, apply_iterator_to_string): Remove iterator
13060         and value parameters.  Look through all current iterator values
13061         for a matching attribute.
13062         (mode_attr_index, apply_mode_maps): Delete.
13063         (apply_iterator_to_rtx): Replace with...
13064         (copy_rtx_for_iterators): ...this new function.
13065         (uses_iterator_p, apply_iterator_traverse): Delete.
13066         (apply_attribute_uses, add_current_iterators, apply_iterators): New
13067         functions.
13068         (add_mapping): Remove index field.  Set current_value field.
13069         (initialize_iterators): Don't set num_builtins and uses_iterator_p
13070         fields.
13071         (find_iterator): Delete.
13072         (record_iterator_use, record_attribute_use): New functions.
13073         (record_potential_iterator_use): New function.
13074         (check_code_iterator): Remove handling of bellwether codes.
13075         (read_rtx): Remove mode maps.  Truncate iterator and attribute uses.
13076         (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
13077         parameter.  Use the first code iterator value instead of the
13078         bellwether_codes array.  Use record_potential_iterator_use for modes.
13079
13080 2012-06-13  Oleg Endo  <olegendo@gcc.gnu.org>
13081
13082         PR target/53568
13083         * config/sh/sh.md (bswapsi2): New expander.
13084         (swapbsi2): New insn.
13085
13086 2012-06-13  H.J. Lu  <hongjiu.lu@intel.com>
13087
13088         PR target/53647
13089         * config/i386/i386.c (ix86_tune_cost): New variable.
13090         (ix86_option_override_internal): Set ix86_tune_cost.  Use
13091         ix86_tune_cost for simultaneous_prefetches, prefetch_block,
13092         l1_cache_size and l2_cache_size.
13093
13094 2012-06-13  Richard Guenther  <rguenther@suse.de>
13095
13096         * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
13097         Handle meeting two VR_RANGE to an VR_ANTI_RANGE.  Implement
13098         all possible meetings of VR_RANGE with VR_ANTI_RANGE and
13099         VR_ANTI_RANGE with VR_ANTI_RANGE.
13100
13101 2012-06-13  Richard Earnshaw  <rearnsha@arm.com>
13102
13103         * config.gcc (unsupported): Move obsoleted FPA-based configurations
13104         here from ...
13105         (obsolete): ... here.
13106         (arm*-*-freebsd*): Remove.
13107         (arm*-*-linux*): Only accept EABI variants.  Simplify logic.
13108         (arm*-*-uclinux*): Likewise.
13109         (arm*-*-ecos-elf): Remove.
13110         (arm*-*-rtems*): Remove.
13111         (arm*-*-elf): Remove.
13112         (arm*-wince-pe*): Remove.
13113         (arm, --with-fpu): Remove support for fpa and Maverick variants.
13114         * arm/ecos-elf.h: Delete.
13115         * arm/t-strongarm-elf: Delete.
13116         * arm/rtems-elf.h: Delete.
13117         * arm/wince-pe.h: Delete.
13118         * arm/pe.c: Delete.
13119         * arm/pe.h: Delete.
13120         * arm/t-wince-pe: Delete.
13121
13122 2012-06-13  Bill Schmidt  <wschmidt@linux.ibm.com>
13123
13124         PR tree-optimization/53647
13125         * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
13126         targets with no defined cache line size.
13127
13128 2012-06-13  Bill Schmidt  <wschmidt@linux.ibm.com>
13129
13130         * targhooks.c (default_builtin_vectorized_conversion): Handle
13131         vec_construct, using vectype to base cost on subparts.
13132         * target.h (enum vect_cost_for_stmt): Add vec_construct.
13133         * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
13134         instead of scalar_to-vec.
13135         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
13136         vec_construct in same way as default for now.
13137         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
13138         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
13139         Handle vec_construct, including special case for 32-bit loads.
13140
13141 2012-06-13  Xinyu Qi <xyqi@marvell.com>
13142
13143         * config/arm/arm.c (FL_IWMMXT2): New define.
13144         (arm_arch_iwmmxt2): New variable.
13145         (arm_option_override): Enable use of iWMMXt with VFP.
13146         Disable use of iWMMXt with NEON. Disable use of iWMMXt under
13147         Thumb mode. Set arm_arch_iwmmxt2.
13148         (arm_expand_binop_builtin): Accept VOIDmode op.
13149         (enum arm_builtins): Revise built-in fcode.
13150         (IWMMXT2_BUILTIN): New define.
13151         (IWMMXT2_BUILTIN2): Likewise.
13152         (iwmmx2_mbuiltin): Likewise.
13153         (builtin_description bdesc_2arg): Revise built in declaration.
13154         (builtin_description bdesc_1arg): Likewise.
13155         (arm_init_iwmmxt_builtins): Revise built in initialization.
13156         (arm_expand_builtin): Revise built in expansion.
13157         (arm_output_iwmmxt_shift_immediate): New function.
13158         (arm_output_iwmmxt_tinsr): Likewise.
13159         * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
13160         (arm_output_iwmmxt_tinsr): Likewise.
13161         * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
13162         (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
13163         (rorv4hi3, rorv2si3, rordi3): Likewise.
13164         (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
13165         (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
13166         (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
13167         (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
13168         (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
13169         (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
13170         (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
13171         (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
13172         (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
13173         (ror<mode>3, ror<mode>3_di): Likewise.
13174         (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
13175         (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
13176         (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
13177         (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
13178         (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
13179         (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
13180         (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
13181         (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
13182         (All instruction patterns): Add wtype attribute.
13183         (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
13184         (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
13185         (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
13186         (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
13187         (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
13188         (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
13189         (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
13190         (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
13191         (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
13192         (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
13193         (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
13194         (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
13195         (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
13196         (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
13197         (iwmmxt2.md): Include.
13198         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
13199         (TARGET_IWMMXT2): New define.
13200         (TARGET_REALLY_IWMMXT2): Likewise.
13201         (arm_arch_iwmmxt2): Declare.
13202         * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
13203         Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
13204         Use C name-mangling for intrinsics.
13205         (__v8qi): Redefine.
13206         (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
13207         (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
13208         (_m_from_int): Likewise.
13209         (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
13210         (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
13211         (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
13212         (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
13213         (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
13214         (_mm_tbcst_pi32): Likewise.
13215         (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
13216         (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
13217         (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
13218         (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
13219         (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
13220         (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
13221         (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
13222         (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
13223         (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
13224         (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
13225         (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
13226         (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
13227         (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
13228         (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
13229         (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
13230         (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
13231         (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
13232         (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
13233         (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
13234         (_m_to_int): New define.
13235         * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
13236         * config/arm/arm-arches.def (iwmmxt2): Likewise.
13237         * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
13238         iwmmxt2.md.
13239         * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
13240         (arch): Add "iwmmxt2".
13241         (arch_enabled): Handle "iwmmxt2".
13242         (wtype): New attribute.
13243         (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
13244         (UNSPEC_WALIGNI): New unspec.
13245         * config/arm/predicates.md (imm_or_reg_operand): New predicate.
13246         * config/arm/iterators.md (VMMX2): New mode_iterator.
13247         * config/arm/marvell-f-iwmmxt.md: New file.
13248         * config/arm/iwmmxt2.md: New file.
13249
13250 2012-06-12  Jakub Jelinek  <jakub@redhat.com>
13251
13252         PR c/53532
13253         PR c/51034
13254         PR c/53196
13255         * c-decl.c (build_compound_literal): Call c_incomplete_type_error
13256         if type isn't complete.
13257
13258 2012-06-12  Uros Bizjak  <ubizjak@gmail.com>
13259
13260         * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
13261
13262 2012-06-12  Richard Henderson  <rth@redhat.com>
13263
13264         * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
13265         iterator instead of INT.
13266
13267 2012-06-12  Bill Schmidt  <wschmidt@linux.ibm.com>
13268
13269         * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
13270         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
13271         declaration.
13272         (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
13273         (tree_ssa_phiopt): Call gate_hoist_loads.
13274         (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
13275         (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
13276         hoist_adjacent_loads.
13277         (local_mem_dependence): New function.
13278         (hoist_adjacent_loads): Likewise.
13279         (gate_hoist_loads): Likewise.
13280         * common.opt (fhoist-adjacent-loads): New switch.
13281         * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
13282
13283 2012-06-12  Michael Matz  <matz@suse.de>
13284
13285         * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
13286         (nonoverlapping_memrefs_p): Don't call it here ...
13287         (true_dependence_1): ... but here.
13288
13289 2012-06-12  Richard Guenther  <rguenther@suse.de>
13290
13291         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
13292         * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
13293         and MEM_SIZE only refines it.  Reflect that and be less conservative
13294         if either of the latter is not known.
13295
13296 2012-06-12  Jakub Jelinek  <jakub@redhat.com>
13297
13298         PR rtl-optimization/53589
13299         * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
13300         discovery even when e->dest != target.  If any LABEL_REF points
13301         to e->dest label, redirect it to target's label.
13302
13303 2012-06-12  Chung-Lin Tang  <cltang@codesourcery.com>
13304
13305         * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
13306         condition for generating REG_FRAME_RELATED_EXPR note.
13307         (pop): Add code for generating REG_CFA_RESTORE,
13308         REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
13309         (sh_expand_epilogue): Use frame_insn() for FP to SP move.
13310         Set 'frame_p' of calls to output_stack_adjust() to 'true'.
13311
13312 2012-06-11  Richard Henderson  <rth@redhat.com>
13313
13314         * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
13315         * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
13316
13317         * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
13318
13319 2012-06-12  Hans-Peter Nilsson  <hp@axis.com>
13320
13321         * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
13322         Mention that this hook needs to be defined for native TLS.
13323         * doc/tm.texi: Regenerate.
13324
13325 2012-06-11  Mike Stump  <mikestump@comcast.net>
13326
13327         * emit-rtl.c (init_emit_once): Iterate through the
13328         MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
13329         MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
13330         all the MIN_MODE_PARTIAL_INT modes anymore.
13331
13332 2012-06-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
13333
13334         * gcc/config/mips/mips-tables.opt (xlp): Fix merge typo.
13335
13336 2012-06-11  Roland McGrath  <mcgrathr@google.com>
13337
13338         * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
13339         SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
13340         not a VAR_DECL.  Also don't limit it to UNSPECs with exactly one
13341         operand.
13342
13343 2012-06-11  Oleg Endo  <olegendo@gcc.gnu.org>
13344
13345         PR target/53511
13346         * config/sh/sh.md (fmasf4): New expander.
13347         (*macsf3): Rename to fmasf4_i.  Adapt to fma pattern.
13348         (mac_media): Rename to fmasf4_media.  Adapt to fma pattern.
13349         * config/sh/sh.opt (mfused-madd): Remove.
13350         * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
13351         (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
13352         * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
13353         as extra options.
13354         * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
13355         descriptions.
13356
13357 2012-06-11  Richard Henderson  <rth@redhat.com>
13358
13359         * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
13360
13361 2012-06-11  Richard Guenther  <rguenther@suse.de>
13362
13363         PR middle-end/53470
13364         * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
13365         replace it with the first non-BLOCK context.
13366
13367 2012-06-11  Richard Guenther  <rguenther@suse.de>
13368
13369         * alias.c (aliases_everything_p): Remove.
13370         (DIFFERENT_ALIAS_SETS_P): Likewise.
13371         (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
13372         Do not use aliases_everything_p or special-case ANDs.  Do not
13373         special-case BLKmode moves.
13374         (may_alias_p): Likewise.  Handle BLKmode similar like everywhere
13375         - for SCATCH only.
13376
13377 2012-06-09  Hans-Peter Nilsson  <hp@axis.com>
13378
13379         Fix CRIS build errors with --enable-build-with-cxx.
13380         * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
13381         variable "and" to "andop".
13382         * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
13383         temporary variable for memory model, passing C++-type-correct
13384         parameter type to expand_mem_thread_fence.
13385         ("atomic_compare_and_swap<mode>"): Ditto.
13386
13387 2012-06-09  Richard Henderson  <rth@redhat.com>
13388
13389         PR c++/53602
13390         * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
13391         (pass_jump): Rename from pass_jump2.
13392         (execute_jump2, pass_jump2): New.
13393         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
13394         perform cfg cleanup here.  Move the test of PUSH_ROUNDING
13395         and ACCUMULATE_OUTGOING_ARGS test...
13396         (gate_handle_stack_adjustments): ... here.
13397         * passes.c (init_optimization_passes): Update for pass_jump2 rename.
13398         Place new pass_jump2 after pass_stack_adjustments.
13399         * tree-pass.h (pass_jump): Declare.
13400
13401 2012-06-09  Kenneth Zadeck <zadeck@naturalbridge.com>
13402
13403         * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
13404         count trucation.
13405
13406 2012-06-08  Richard Henderson  <rth@redhat.com>
13407
13408         PR c++/53602
13409         * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
13410         note to a clobber insn when no other insn is available.
13411
13412 2012-06-08  Georg-Johann Lay  <avr@gjlay.de>
13413
13414         * config/avr/avr.c (avr_case_values_threshold): Return 7.
13415
13416 2012-06-07  Andreas Schwab  <schwab@linux-m68k.org>
13417
13418         * genhooks.c (main): Set progname.
13419         (emit_documentation): Remove variable found_start, always bail out
13420         when a place is missing.
13421         * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
13422
13423 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
13424
13425         PR middle-end/53580
13426         * omp-low.c (scan_omp): Change first argument to gimple_seq *,
13427         call walk_gimple_seq_mod instead of walk_gimple_seq.
13428         (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
13429         scan_omp_for, scan_omp_sections, scan_omp_single,
13430         execute_lower_omp): Adjust callers.
13431         (scan_omp_1_stmt): Likewise.  If check_omp_nesting_restrictions
13432         returns false, replace stmt with GIMPLE_NOP.
13433         (check_omp_nesting_restrictions): Instead of issuing warnings,
13434         issue errors and return false if any errors were reported.
13435
13436 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
13437
13438         * doc/invoke.texi (fconserve-space): Remove documentation.
13439
13440 2012-06-06  Edmar Wienskoski  <edmar@freescale.com>
13441
13442         * config/rs6000/rs6000-tables.opt: Regenerated.
13443
13444 2012-06-06  Richard Guenther  <rguenther@suse.de>
13445
13446         PR tree-optimization/53081
13447         * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
13448         (adjacent_dr_p): ... this and make it work for reads, too.
13449         * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
13450         (struct partition_s): Change main_stmt to main_dr, add
13451         secondary_dr member.
13452         (build_size_arg_loc): Change to date data-reference and not
13453         gimplify here.
13454         (build_addr_arg_loc): New function split out from ...
13455         (generate_memset_builtin): ... here.  Use it and simplify.
13456         (generate_memcpy_builtin): New function.
13457         (generate_code_for_partition): Adjust.
13458         (classify_partition): Streamline pattern detection.  Detect memcpy.
13459         (ldist_gen): Adjust.
13460         (tree_loop_distribution): Adjust seed statements for memcpy
13461         recognition.
13462
13463 2012-06-06  Matt Turner  <mattst88@gmail.com>
13464
13465         * config/arm/mmintrin.h (_mm_empty): New.
13466         (_m_empty): New.
13467
13468 2012-06-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
13469
13470         * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
13471         * common.opt (fsched-pressure-algorithm=): Remove.
13472         * flag-types.h (sched_pressure_algorithm): Move to...
13473         * sched-int.h (sched_pressure_algorithm): ...here.
13474         * params.def (sched-pressure-algorithm): New param.
13475         * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
13476         * common/config/s390/s390-common.c (s390_option_optimization_table):
13477         Remove OPT_fsched_pressure_algorithm_ entry.
13478         * config/s390/s390.c (s390_option_override): Set a default value for
13479         PARAM_SCHED_PRESSURE_ALGORITHM.
13480
13481 2012-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
13482
13483         PR target/53487
13484         * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
13485         doing an unsigned compare, make sure the second argument is not a
13486         negative constant.
13487         (rs6000_emit_cmove): Don't allow floating point comparisons when
13488         generating ISEL moves.
13489
13490 2012-06-05  Edmar Wienskoski  <edmar@freescale.com>
13491
13492         * config/rs6000/e5500.md: New file.
13493         * config/rs6000/e6500.md: New file.
13494         * config/rs6000/rs6000.c (processor_costs): Add new costs for
13495         e5500 and e6500.
13496         (rs6000_option_override_internal): Altivec and Spe options not
13497         allowed with e5500. Spe options not allowed with e6500. Increase
13498         move inline limit for e5500 and e6500. Disable string instructions
13499         for e5500 and e6500. Enable branch targets alignment for e5500 and
13500         e6500. Initialize rs6000_cost for e5500 and e6500.
13501         (rs6000_adjust_cost): Add extra scheduling cycles between compare
13502         and brnach for e5500 and e6500.
13503         (rs6000_issue_rate): Set issue rate for e5500 and e6500.
13504         * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
13505         e6500.
13506         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
13507         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
13508         ppce6500.
13509         Include e5500.md and e6500.md.
13510         * config/rs6000/rs6000-opt.h (processor_type): Add
13511         PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
13512         * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
13513         (powerpc*-*-*): Add new cores e5500, e6500.
13514         * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
13515
13516 2012-06-05  Richard Guenther  <rguenther@suse.de>
13517
13518         * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
13519
13520 2012-06-05  H.J. Lu  <hongjiu.lu@intel.com>
13521
13522         PR target/53575
13523         * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
13524         is used for x86_64-*-*.
13525
13526 2012-06-05  Richard Guenther  <rguenther@suse.de>
13527
13528         PR tree-optimization/30442
13529         * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
13530         vectorization stop analysis at the first stmt we cannot compute
13531         a data-reference for instead of giving up completely.
13532
13533 2012-06-05  Richard Guenther  <rguenther@suse.de>
13534
13535         * tree-loop-distribution.c (struct partition_s): Add has_writes member.
13536         (partition_alloc): Initialize it.
13537         (partition_has_writes): New function.
13538         (rdg_flag_uses): Adjust.
13539         (rdg_flag_vertex): Likewise.
13540         (rdg_flag_vertex_and_dependent): Likewise.
13541         (rdg_flag_loop_exits): Likewise.
13542         (build_rdg_partition_for_component): Likewise.
13543         (rdg_build_partitions): Likewise.
13544
13545 2012-06-05  Richard Guenther  <rguenther@suse.de>
13546
13547         PR tree-optimization/53081
13548         * tree-loop-distribution.c (generate_memset_builtin): Handle all
13549         kinds of byte-sized stores.
13550         (classify_partition): Likewise.
13551         (tree_loop_distribution): Adjust seed statements used for
13552         !flag_tree_loop_distribution.
13553
13554 2012-06-05  Alan Modra  <amodra@gmail.com>
13555
13556         * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
13557         (rs6000_emit_prologue): Ensure register used for inline saves
13558         of vector regs is not the static chain register.  Revise comment.
13559
13560 2012-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
13561
13562         * doc/md.texi (Standard Pattern Names For Generation): Document
13563         sincos pattern.
13564
13565 2012-06-04  H.J. Lu  <hongjiu.lu@intel.com>
13566
13567         PR bootstrap/53555
13568         * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
13569
13570 2012-06-04  Jason Merrill  <jason@redhat.com>
13571
13572         * dwarf2out.c (is_unit_die): New.
13573         (copy_declaration_context, copy_ancestor_tree): Use it.
13574         (copy_decls_walk): Likewise.
13575
13576 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
13577
13578         PR c++/53524
13579         * doc/invoke.texi (Wenum-compare): Update documentation.
13580
13581 2012-06-04  Dodji Seketeli  <dodji@redhat.com>
13582
13583         PR preprocessor/53463
13584         * parser.c (cp_parser_assignment_expression): Use the location
13585         for the '=' as the default location for the expression.
13586
13587 2012-06-04  Edmar Wienskoski  <edmar@freescale.com>
13588
13589         PR target/53559
13590         * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
13591         operands.
13592         (altivec_stvlxl): Ditto.
13593         (altivec_stvrx): Ditto.
13594         (altivec_stvrxl): Ditto.
13595
13596 2012-06-04  Vladimir Makarov  <vmakarov@redhat.com>
13597
13598         * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
13599         (ira_uniform_class_p): New macro.
13600
13601         * ira.c (setup_uniform_class_p): New function.
13602         (setup_allocno_and_important_classes): Call the function.
13603         (print_unform_and_important_classes): New function.
13604         (print_classes): Rename to print_translated_classes.
13605         (ira_debug_allocno_classes): Add call of
13606         print_unform_and_important_classes.
13607
13608         * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
13609         classes instead of pressure classes.
13610
13611 2012-06-04  Aldy Hernandez  <aldyh@redhat.com>
13612
13613         PR middle-end/47530
13614         * trans-mem.c (expand_block_edges): Do not skip the first
13615         statement when resetting the BB.
13616
13617 2012-06-04  Richard Guenther  <rguenther@suse.de>
13618
13619         * tree-data-ref.c (stores_from_loop): Remove.
13620         (stmt_with_adjacent_zero_store_dr_p): Likewise.
13621         (stores_zero_from_loop): Likewise.
13622         * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
13623         stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
13624         (adjacent_store_dr_p): New function.
13625         * tree-loop-distribution.c (generate_memset_builtin): Pass
13626         the RDG, use the already available data-reference.
13627         (generate_code_for_partition): Pass down RDG.
13628         (classify_partition): Inline parts of the former
13629         stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
13630         (ldist_gen): Remember if there was any detected builtin and
13631         do less work if not and flag_tree_loop_distribution is not set.
13632         (tree_loop_distribution): Inline and fuse stores_from_loop
13633         and stores_zero_from_loop here.
13634
13635 2012-06-04  Richard Guenther  <rguenther@suse.de>
13636
13637         PR middle-end/53471
13638         * dwarf2out.c (dwarf2out_finish): If generating LTO do not
13639         create new assembler names.
13640
13641 2012-06-04  Richard Guenther  <rguenther@suse.de>
13642
13643         * tree-data-ref.c (struct rdg_vertex_info): Remove.
13644         (rdg_vertex_for_stmt): Simplify using gimple_uid.
13645         (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
13646         hashtable.  Record stmt data-references.
13647         (hash_stmt_vertex_info): Remove.
13648         (eq_stmt_vertex_info): Likewise.
13649         (hash_stmt_vertex_del): Likewise.
13650         (build_empty_rdg): Simplify.
13651         (build_rdg): Adjust.
13652         (free_rdg): Likewise.
13653         (ref_base_address): Remove.
13654         (have_similar_memory_accesses): Likewise.
13655         * tree-data-ref.h (create_rdg_vertices): Remove.
13656         (struct rdg_vertex): Add datarefs member.
13657         (RDGV_DATAREFS): New define.
13658         (RDG_DATAREFS): Likewise.
13659         (have_similar_memory_accesses): Remove.
13660         (rdg_has_similar_memory_accesses): Likewise.
13661         * tree-loop-distribution.c (ref_base_address): Re-implement here.
13662         (similar_memory_accesses): Re-implement using existing data-references.
13663         (tree_loop_distribution): Initialize stmt uids for the stmt to
13664         RDG index mapping.
13665         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
13666         access stmt vinfo for stmts in loop.
13667
13668 2012-06-04  Andreas Schwab  <schwab@linux-m68k.org>
13669
13670         PR target/53461
13671         * config/m68k/m68k.md ("tablejump"): Fix check for
13672         CASE_VECTOR_PC_RELATIVE.
13673
13674 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
13675
13676         * output.h (merge_weak, assemble_alias,
13677         initializer_constant_valid_p,
13678         initializer_constant_valid_for_bitfield_p): Move protos from here...
13679         * tree.h: ... to here.
13680         * cgraphclones.c: Do not include output.h.
13681         * gimplify.c: Likewise.
13682         * reload.c: Likewise.
13683         * recog.c: Likewise.
13684         * tree-ssa-loop-ivopts.c: Likewise.
13685         * tree-switch-conversion.c: Likewise.
13686         * c-parser.c: Likewise.
13687         * c-typeck.c: Likewise.
13688         * Makefile.in: Fix dependencies.
13689
13690 2012-06-04  Georg-Johann Lay  <avr@gjlay.de>
13691
13692         PR target/46261
13693         * config/avr/avr-stdint.h: New file.
13694         * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
13695         newlib-stdint.h
13696
13697 2012-06-04  Jakub Jelinek  <jakub@redhat.com>
13698
13699         PR tree-optimization/53550
13700         * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
13701         is POINTER_TYPE_P, use sizetype as step type instead of type.
13702
13703 2012-06-04  Richard Guenther  <rguenther@suse.de>
13704
13705         * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
13706         (ref_base_address_1): Likewise.
13707         (remove_similar_memory_refs): Likewise.
13708         * tree-data-ref.h (remove_similar_memory_refs): Remove.
13709         * tree-loop-distribution.c (classify_partition): Do not classify
13710         as builtin if -ftree-loop-distribute-patterns is not enabled.
13711         (fuse_partitions_with_similar_memory_accesses): Inline ...
13712         (ldist_gen): ... here.  Fuse all non-builtin partitions if
13713         -ftree-loop-distribution is not enabled.  Properly return
13714         the number of created partitions.  Do not update SSA form here but ...
13715         (tree_loop_distribution): ... once here for the whole function.
13716         Only walk innermost loops, constrain loops we consider here
13717         further.  Do not call remove_similar_memory_refs.
13718         (distribute_loop): Do not check number of loop nodes here.
13719
13720 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
13721
13722         * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
13723
13724 2012-06-03  Martin Jambor  <mjambor@suse.cz>
13725
13726         * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
13727         (ipa_get_jf_known_type_base_type): Likewise.
13728         (ipa_get_jf_known_type_component_type): Likewise.
13729         (ipa_get_jf_constant): Likewise.
13730         (ipa_get_jf_pass_through_formal_id): Likewise.
13731         (ipa_get_jf_pass_through_operation): Likewise.
13732         (ipa_get_jf_ancestor_offset): Likewise.
13733         (ipa_get_jf_ancestor_type): Likewise.
13734         (ipa_get_jf_ancestor_formal_id): Likewise.
13735         (ipa_get_jf_member_ptr_pfn): Likewise.
13736         * ipa-prop.c (ipa_set_jf_known_type): New function.
13737         (ipa_set_jf_constant): Likewise.
13738         (ipa_set_jf_simple_pass_through): Likewise.
13739         (ipa_set_jf_arith_pass_through): Likewise.
13740         (ipa_set_ancestor_jf): Likewise.
13741         (fill_member_ptr_cst_jump_function): Moved up and renamed to
13742         ipa_set_jf_member_ptr_cst.
13743         (detect_type_change_1): Use the new jump function creation functions.
13744         (compute_complex_assign_jump_func): Likewise.
13745         (compute_complex_ancestor_jump_func): Likewise.
13746         (compute_known_type_jump_func): Likewise.
13747         (compute_scalar_jump_functions): Likewise.
13748         (compute_pass_through_member_ptrs): Likewise.
13749         (determine_cst_member_ptr): Likewise.
13750         (combine_known_type_and_ancestor_jfs): Likewise.
13751         (try_make_edge_direct_simple_call): Likewise.
13752         (try_make_edge_direct_virtual_call): Likewise.
13753         (update_indirect_edges_after_inlining): Likewise.
13754         * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
13755         access functions.  Incorporat NOP_EXPR and BINFO handling from its
13756         callers.
13757         (ipa_get_jf_ancestor_result): Likewise.  Incorporate handling BINFOs
13758         which was in its callers.
13759         (ipa_value_from_jfunc): Use jump function access functions.  Some
13760         functionality moved to functions above.
13761         (propagate_vals_accross_ancestor): Likewise.
13762         (propagate_vals_accross_pass_through): Use jump function access
13763         functions.
13764         (propagate_accross_jump_function): Likewise.
13765         * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
13766         access functions.
13767         (inline_merge_summary): Likewise.
13768
13769 2012-06-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13770
13771         * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
13772         * config/pa/pa.c (pa_attr_length_millicode_call): Use
13773         MAX_PCREL17F_OFFSET instead of fixed offset.
13774         (pa_attr_length_call): Likewise.
13775         (pa_attr_length_indirect_call): Likewise.
13776
13777 2012-06-03  Oleg Endo  <olegendo@gcc.gnu.org>
13778
13779         PR target/53512
13780         * config/sh/sh.opt (mfsca, mfsrra): New options.
13781         * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
13782         condition.
13783         (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
13784         (sinssf2, cossf2): Fold expanders to ...
13785         (sincossf3): ... this new expander.  Use TARGET_FPU_ANY and
13786         TARGET_FSCA condition.
13787         * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
13788         TARGET_FSCA.
13789         * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
13790         -mno-fsca, -mfsrra, -mno-fsrra.
13791
13792 2012-06-03  Matt Turner  <mattst88@gmail.com>
13793
13794         * config/mips/4600.md (r4700_imul_si): New.
13795         (r4700_imul_di): New.
13796         (r4700_fmul_single): New.
13797         (r4700_fmul_double): New.
13798         * config/mips/mips-cpus.def: Add r4700.
13799         * config/mips/mips.c: Likewise.
13800         * config/mips/mips.md: Likewise.
13801         * config/mips/mips-tables.opt: Regenerate.
13802
13803 2012-06-02  Steven Bosscher  <steven@gcc.gnu.org>
13804
13805         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
13806         new function sparc_initial_elimination_offset.
13807         * config/sparc/sparc.c (sparc_initial_elimination_offset): New
13808         function.
13809         * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
13810         Prototype it.
13811
13812 2012-06-02  Kenneth Zadeck <zadeck@naturalbridge.com>
13813
13814         * expmed.c (expand_mult, choose_multiplier): Change
13815         "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
13816         * expr.c (convert_modes): Likewise.
13817         * explow.c (plus_constant): Likewise.
13818         * fixed-value.c (fixed_saturate1, fixed_saturate2)
13819         (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
13820         (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
13821         (do_fixed_divide, do_fixed_divide, do_fixed_divide)
13822         (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
13823         (do_fixed_shift, fixed_convert, fixed_convert)
13824         (fixed_convert_from_int, fixed_convert_from_int)
13825         (fixed_convert_from_real): Likewise.
13826         * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
13827         (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
13828         * varasm.c (output_constructor_bitfield): Likewise.
13829         * tree-vrp.c (register_edge_assert_for_2): Likewise.
13830         * double-int.c (rshift_double, lshift_double): Likewise.
13831         * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
13832         Likewise.
13833         * simplify-rtx.c (mode_signbit_p)
13834         (simplify_const_unary_operation, simplify_binary_operation_1)
13835         (simplify_immed_subreg): Likewise.
13836         * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
13837         * tree-vect-generic.c (build_replicated_const): Likewise.
13838         * dbxout.c (stabstr_O): Likewise.
13839         * emit-rtl.c (immed_double_int_const, immed_double_const)
13840         (gen_lowpart_common, init_emit_once): Likewise.
13841         * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
13842         (widest_int_cst_value, upper_bound_in_type): Likewise.
13843         * stor-layout.c (initialize_sizetypes, fixup_signed_type)
13844         (fixup_unsigned_type): Likewise.
13845         * real.c (real_to_integer2, real_from_integer): Likewise.
13846         * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
13847         (clz_loc_descriptor, mem_loc_descriptor): Likewise.
13848
13849 2012-06-01  Eric Botcazou  <ebotcazou@adacore.com>
13850
13851         PR middle-end/53501
13852         * fold-const.c (fold_binary_loc): Refine previous change.
13853
13854 2012-06-01  Olivier Hainque  <hainque@adacore.com>
13855
13856         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
13857         the "do {" part of the do-while(0) loop.
13858
13859 2012-06-01  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
13860
13861         * config/i386/i386.c (x86_sched_reorder): New function.
13862         Added new function x86_sched_reorder.
13863
13864 2012-06-01  Richard Guenther  <rguenther@suse.de>
13865
13866         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
13867         Handle PHIs.
13868         (classify_partition): Likewise.
13869
13870 2012-06-01  Richard Guenther  <rguenther@suse.de>
13871
13872         * tree-loop-distribution.c (enum partition_kind): New enum.
13873         (struct partition_s): Add kind and main_stmt members.
13874         (partition_alloc): Initialize kind to PKIND_NORMAL.
13875         (partition_builtin_p): New function.
13876         (copy_loop_before): Remove failure path and assert instead.
13877         (generate_loops_for_partition): Likewise.
13878         (generate_memset_zero): Fold into ...
13879         (generate_memset_builtin): ... this.
13880         (classify_partition): New function with code from
13881         can_generate_builtin and generate_builtin.
13882         (generate_builtin): Remove.
13883         (can_generate_builtin): Likewise.
13884         (fuse_partitions_with_similar_memory_accesses): Call
13885         partition_builtin_p instead of can_generate_builtin.
13886         (rdg_build_partitions): Do not call
13887         fuse_partitions_with_similar_memory_accesses here...
13888         (ldist_gen): ... but here after classifying all partitions.
13889         Remove failure path of generate_code_for_partition.
13890         (generate_code_for_partition): Generate code according
13891         to partition classification.
13892
13893 2012-06-01  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13894             Jonathan Wakely  <jwakely.gcc@gmail.com>
13895
13896         PR c++/50134
13897         * doc/invoke.texi (Warning Options): Explain purpose and differences
13898         between -Wmissing-prototypes and -Wmissing-declarations.
13899
13900 2012-06-01  Christian Bruel  <christian.bruel@st.com>
13901
13902         * gcc.c (save_switch): Add user_p parameter.
13903         (read_specs): Likewise.
13904         (set_specs): Likewise.
13905         (validate_switches): Likewise.
13906         (validate_switches_from_spec): Likewise.
13907         (validate_all_switches): Pass on user_p parameter.
13908         (struct spec_list): Add user_p field.
13909         (struct switchstr): Add known field.
13910         (save_switch): Add known parameter.
13911         (INIT_STATIC_SPEC): Initialize user_p;
13912         (driver_unknown_option_callbac): call save_switch if
13913         OPT_SPECIAL_unknown.
13914         (driver_handle_option): Propagate OPT_specs.
13915         (do_spec_1): Set validated only if known.
13916         (check_live_switch): Likewise.
13917         (validate_switches): Set validated if known or user_spec.
13918
13919 2012-06-01  Hans-Peter Nilsson  <hp@axis.com>
13920
13921         Add CRIS atomic patterns for 1, 2, and 4 bytes.
13922         * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
13923         * config/cris/cris-protos.h: Declare it.
13924         * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
13925         (TARGET_DEFAULT): Add alignment by 32.
13926         [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
13927         case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
13928         TARGET_CPU_DEFAULT == 32.
13929         (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
13930         * config/cris/cris.md: Include sync.md.  Avoid allocating specific
13931         numbers by replacing the define_constants for all UNSPECs with the
13932         equivalent define_c_enum construct.
13933         * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
13934         * config/cris/sync.md: New file.
13935
13936 2012-05-31  Matt Turner  <mattst88@gmail.com>
13937
13938         * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
13939         (r4600_imul_di): New.
13940         (r4600_idiv_si): Rename from r4600_idiv.
13941         (r4600_idiv_di): New.
13942
13943 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
13944
13945         * output.h (__gcc_host_wide_int__): Move to hwint.h.
13946         (decl_default_tls_model): Move to tree.h
13947         (dump_file): Move to system.h.
13948         (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
13949         dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
13950         dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
13951         dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
13952         dbxout_stab_value_zero, dbxout_stab_value_label_diff,
13953         dbxout_stab_value_internal_label,
13954         dbxout_stab_value_internal_label_diff): Move from here ...
13955         * dbxout.h: ... to here.
13956         * system.h (dump_file): Moved here from output.h.
13957         * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
13958         * tree.h (decl_default_tls_model): Moved here from output.h.
13959         * varasm.c (default_stabs_asm_out_destructor,
13960         default_stabs_asm_out_constructor): Move from here ...
13961         * dbxout.c: ... to here.
13962
13963         * gcov-dump.c (dump_file): Rename to dump_gcov_file.  Update callers.
13964
13965         * collect2.h (dump_file): Rename to dump_ld_file.
13966         * collect2.c: Likewise.
13967         * tlink.c: Likewise.
13968
13969         * alias.c: Do not include output.h.
13970         * auto-inc-dec.c: Likewise.
13971         * bt-load.c: Likewise.
13972         * caller-save.c: Likewise.
13973         * cfg.c: Likewise.
13974         * cfgbuild.c: Likewise.
13975         * cfgcleanup.c: Likewise.
13976         * cfglayout.c: Likewise.
13977         * cfgloop.c: Likewise.
13978         * cfgloopanal.c: Likewise.
13979         * cfgloopmanip.c: Likewise.
13980         * cfgrtl.c: Likewise.
13981         * cgraph.c: Likewise.
13982         * cgraphclones.c: Likewise.
13983         * combine-stack-adj.c: Likewise.
13984         * combine.c: Likewise.
13985         * cprop.c: Likewise.
13986         * cse.c: Likewise.
13987         * cselib.c: Likewise.
13988         * dbgcnt.c: Likewise.
13989         * df-problems.c: Likewise.
13990         * df-scan.c: Likewise.
13991         * dojump.c: Likewise.
13992         * fwprop.c: Likewise.
13993         * gcse.c: Likewise.
13994         * graph.c: Likewise.
13995         * haifa-sched.c: Likewise.
13996         * hw-doloop.c: Likewise.
13997         * ipa-inline-transform.c: Likewise.
13998         * ipa-pure-const.c: Likewise.
13999         * ipa-reference.c: Likewise.
14000         * ipa-utils.c: Likewise.
14001         * ira-build.c: Likewise.
14002         * ira-emit.c: Likewise.
14003         * lcm.c: Likewise.
14004         * loop-doloop.c: Likewise.
14005         * loop-invariant.c: Likewise.
14006         * loop-iv.c: Likewise.
14007         * loop-unroll.c: Likewise.
14008         * loop-unswitch.c: Likewise.
14009         * lto-cgraph.c: Likewise.
14010         * lto-section-in.c: Likewise.
14011         * lto-streamer-in.c: Likewise.
14012         * mcf.c: Likewise.
14013         * mode-switching.c: Likewise.
14014         * postreload-gcse.c: Likewise.
14015         * postreload.c: Likewise.
14016         * predict.c: Likewise.
14017         * profile.c: Likewise.
14018         * ree.c: Likewise.
14019         * reg-stack.c: Likewise.
14020         * regcprop.c: Likewise.
14021         * regmove.c: Likewise.
14022         * regstat.c: Likewise.
14023         * reload1.c: Likewise.
14024         * sched-ebb.c: Likewise.
14025         * sel-sched-dump.c: Likewise.
14026         * simplify-rtx.c: Likewise.
14027         * stor-layout.c: Likewise.
14028         * store-motion.c: Likewise.
14029         * tracer.c: Likewise.
14030         * tree-affine.c: Likewise.
14031         * tree-cfg.c: Likewise.
14032         * tree-cfgcleanup.c: Likewise.
14033         * tree-dfa.c: Likewise.
14034         * tree-into-ssa.c: Likewise.
14035         * tree-nomudflap.c: Likewise.
14036         * tree-optimize.c: Likewise.
14037         * tree-pretty-print.c: Likewise.
14038         * tree-profile.c: Likewise.
14039         * tree-ssa-address.c: Likewise.
14040         * tree-ssa-ccp.c: Likewise.
14041         * tree-ssa-copy.c: Likewise.
14042         * tree-ssa-dom.c: Likewise.
14043         * tree-ssa-loop-ch.c: Likewise.
14044         * tree-ssa-loop-im.c: Likewise.
14045         * tree-ssa-loop-manip.c: Likewise.
14046         * tree-ssa-loop-niter.c: Likewise.
14047         * tree-ssa-loop-prefetch.c: Likewise.
14048         * tree-ssa-loop-unswitch.c: Likewise.
14049         * tree-ssa-loop.c: Likewise.
14050         * tree-ssa-propagate.c: Likewise.
14051         * tree-ssa-structalias.c: Likewise.
14052         * tree-ssa-tail-merge.c: Likewise.
14053         * tree-ssa-threadedge.c: Likewise.
14054         * tree-ssa-threadupdate.c: Likewise.
14055         * tree-ssa-uncprop.c: Likewise.
14056         * tree-ssa-uninit.c: Likewise.
14057         * tree-ssa.c: Likewise.
14058         * value-prof.c: Likewise.
14059         * var-tracking.c: Likewise.
14060         * web.c: Likewise.
14061
14062         * config/m32r/m32r.c: Include dbxout.h.
14063         * config/pa/pa.c: Likewise.
14064         * config/rs6000/rs6000.c: Likewise.
14065
14066         * Makefile.in: Fix dependencies.
14067         * config/rs6000/t-rs5000: Likewise.
14068
14069 2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
14070
14071         * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
14072         * gimple.h (block_in_transaction): Check for flag_tm.
14073
14074 2012-05-31  Aldy Hernandez  <aldyh@redhat.com>
14075
14076         PR tree-optimization/52558
14077         * cfg.c (alloc_aux_for_edge): Fix comment.
14078         (alloc_aux_for_edge): Remove static.
14079         * basic-block.h (alloc_aux_for_edge): Protoize.
14080         * tree-ssa-loop-im.c (execute_sm_if_changed): New.
14081         (execute_sm_if_changed_flag): New.
14082         (execute_sm_if_changed_flag_set): New.
14083         (execute_sm): Do not generate data races unless requested.
14084         (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
14085         (tree_ssa_lim_finalize): Call free_aux_for_edges.
14086         * gimple.h (block_in_transaction): New.
14087         (gimple_in_transaction): Use block_in_transaction.
14088
14089 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
14090
14091         PR target/51345
14092         * config/avr/avr.opt (-msp8): Document it.
14093         * doc/invoke.texi (AVR Options): Ditto.  And document related
14094         built-in macros.
14095
14096 2012-05-31  Diego Novillo  <dnovillo@google.com>
14097
14098         * configure.ac (CXX_FOR_BUILD): Define and substitute.
14099         (BUILD_CXXFLAGS): Define and substitute.
14100         * Makefile.in (BUILD_CXXFLAGS): Define.
14101         (CXX_FOR_BUILD): Define.
14102         (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
14103         (LINKER_FOR_BUILD): Likewise.
14104         (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
14105         (BUILD_LINKERFLAGS): Likewise.
14106         * configure: Regenerate.
14107
14108 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
14109
14110         * Makefile.in: Fix many dependencies.
14111         * tree-profile.c: Don't include regs.h.
14112         * tree-vectorizer.c: Don't include cfglayout.h.
14113         * tree-vect-stmts.c: Likewise.
14114         * tree-vect-slp.c: Likewise.
14115         * tree-vect-loop.c: Likewise.
14116         * reg-stack.c: Likewise.
14117         * tree-ssa-loop-manip.c: Likewise.
14118         * toplev.c: Likewise.
14119         * varasm.c: Don't include cfglayout.h, basic-block.h,
14120         and tree-iterator.h.
14121         * tree-cfgcleanup.c: Don't include cfglayout.h.
14122         * passes.c: Don't include cfglayout.h, dwarf2asm.h,
14123         dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
14124         * cgraphclones.c: Don't include plugin.h.
14125
14126 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
14127
14128         * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
14129         (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
14130         * doc/avr-mmcu.texi (svn:eol-style): Set to native.
14131
14132 2012-05-31  Richard Guenther  <rguenther@suse.de>
14133
14134         * tree-loop-distribution.c (struct partition_s): New struct,
14135         typedef and vector type.
14136         (partition_alloc, partition_free): New functions.
14137         (generate_loops_for_partition, generate_builtin,
14138         generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
14139         rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
14140         build_rdg_partition_for_component, can_generate_builtin,
14141         similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
14142         rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
14143         number_of_rw_in_partition, partition_contains_all_rw,
14144         ldist_gen): Use partition_t instead of bitmap.
14145
14146 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
14147
14148         * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
14149         * doc/avr-mmcu.texi: Regenerate.
14150
14151 2012-05-31  Richard Guenther  <rguenther@suse.de>
14152
14153         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
14154         Use FOR_EACH_SSA_DEF_OPERAND.
14155         (generate_builtin): Adjust.
14156         (stmt_generated_in_another_partition): Remove.
14157         (add_scalar_computations_to_partition): Likewise.
14158         (rdg_build_partitions): Do not call
14159         add_scalar_computations_to_partition.
14160
14161 2012-05-31  Eric Botcazou  <ebotcazou@adacore.com>
14162
14163         * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
14164         double ints throughout.
14165         * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
14166         Check that the position of the field is representable as an integer.
14167
14168 2012-05-31  Richard Guenther  <rguenther@suse.de>
14169
14170         * tree-data-ref.c (dr_analyze_innermost): Properly convert
14171         the MEM_REF offset to sizetype.
14172
14173 2012-05-31  Georg-Johann Lay  <avr@gjlay.de>
14174
14175         * doc/invoke.texi (AVR Options): Fix typos.
14176
14177 2012-05-31  Hans-Peter Nilsson  <hp@axis.com>
14178
14179         * config/cris/cris.h (CC1_SPEC): Pass through all -march=
14180         and -mcpu= options.
14181         (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
14182         non-v32 into --march=v0_v10.
14183
14184 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
14185
14186         * ira-int.h (target_ira_int): Rename x_move_cost to
14187         x_ira_register_move_cost, x_may_move_in_cost to
14188         x_ira_may_move_in_cost and x_may_move_out_cost to
14189         x_ira_may_move_out_cost.  Delete the old fields with
14190         those names and also x_ira_max_register_move_cost,
14191         x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
14192         (move_cost, may_move_in_cost, may_move_out_cost)
14193         (ira_max_register_move_cost, ira_max_may_move_in_cost)
14194         (ira_max_may_move_out_cost): Delete.
14195         * ira.c (init_move_cost): Rename to...
14196         (ira_init_register_move_cost): ...this, deleting the old
14197         function with that name.  Apply above variable renamings.
14198         Retain asserts for null fields.
14199         (ira_init_once): Don't initialize register move costs here.
14200         (free_register_move_costs): Apply above variable renamings.
14201         Remove code for deleted fields.
14202
14203 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
14204
14205         * ira.c (init_move_cost): Adjust choice of subclasses to match
14206         the current ira_init_register_move_cost choice.  Use
14207         ira_class_subset_p instead of reg_class_subset_p.
14208         (ira_init_register_move_cost): Assert that move_cost,
14209         may_move_in_cost and may_move_out_cost already hold the desired
14210         values for their ira_* equivalents.  For the latter two,
14211         ignore classes that can't store a register of the given mode.
14212
14213 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
14214
14215         * ira.c (setup_allocno_and_important_classes): Use
14216         ira_class_hard_regs_num to check whether a class has any
14217         allocatable registers.
14218         (ira_init_register_move_cost): Likewise.
14219
14220 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
14221
14222         * ira.c (init_move_cost): Adjust local variable names to match
14223         file conventions.  Use ira_assert instead of gcc_assert.
14224
14225 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
14226
14227         * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
14228         Move these definitions and associated target_globals fields to...
14229         * ira-int.h: ...here.
14230         * rtl.h (init_move_cost): Delete.
14231         * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
14232         * ira.c: ...here, making the latter static.
14233
14234 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
14235
14236         * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
14237         and ira_register_move_cost instead of init_move_cost and move_cost.
14238
14239 2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>
14240
14241         * ira.h (target_ira): Delete x_ira_available_class_regs.
14242         (ira_available_class_regs): Delete.
14243         * ira.c (setup_available_class_regs): Delete.
14244         (setup_alloc_classes): Don't call it.
14245         (setup_pressure_classes): Use ira_class_hard_regs_num instead of
14246         ira_available_class_regs.
14247         * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
14248         (model_spill_cost): Likewise.
14249         * ira-build.c (low_pressure_loop_node_p): Likewise.
14250         * ira-color.c (color_pass): Likewise.
14251         * ira-emit.c (change_loop): Likewise.
14252         * ira-lives.c (inc_register_pressure, dec_register_pressure)
14253         (single_reg_class, ira_implicitly_set_insn_hard_regs)
14254         (process_bb_node_lives): Likewise.
14255         * loop-invariant.c (gain_for_invariant): Likewise.
14256
14257 2012-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14258
14259         PR target/52999
14260         * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
14261         (pa_section_type_flags): New.
14262         (pa_legitimate_constant_p): Revert previous change.
14263
14264 2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>
14265
14266         * ira.c (allocate_initial_values): Make static.
14267
14268 2012-05-30  Uros Bizjak  <ubizjak@gmail.com>
14269
14270         * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
14271         Generate tls_initial_exec_64_sun only when !TARGET_X32.
14272
14273 2012-05-30  Richard Guenther  <rguenther@suse.de>
14274
14275         PR middle-end/53501
14276         * fold-const.c (fold_binary_loc): Make sure to call
14277         fold_plusminus_mult_expr with the original sign of operands.
14278
14279 2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>
14280
14281         * Makefile.in: Fix many dependencies.
14282         (DWARF2_H): Depend on dwarf2.def.
14283         (RTL_ERROR_H): Depend on rtl-error.h.
14284         (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New.  Replace
14285         all gimple-pretty-print.h and tree-pretty-print.h references.
14286
14287 2012-05-30  Marc Glisse  <marc.glisse@inria.fr>
14288
14289         * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
14290         concatenations.
14291
14292 2012-05-30  Richard Guenther  <rguenther@suse.de>
14293
14294         PR middle-end/53522
14295         * tree-emutls.c (gen_emutls_addr): Do not add globals to
14296         referenced-vars.
14297
14298 2012-05-30  Eric Botcazou  <ebotcazou@adacore.com>
14299
14300         * explow.c (probe_stack_range): Restore simple control flow and stop
14301         again when the probe cannot be generated if HAVE_check_stack.
14302
14303 2012-05-30  Jakub Jelinek  <jakub@redhat.com>
14304
14305         PR rtl-optimization/53519
14306         * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
14307         instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
14308
14309 2012-05-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14310
14311         * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
14312
14313 2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>
14314
14315         PR debug/53453
14316         * doc/tm.texi: Update.
14317         * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
14318         * target.def (force_at_comp_dir): New hook.
14319         * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
14320         * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
14321
14322 2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>
14323
14324         * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
14325         Darwin >= 10.
14326         (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
14327         (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
14328
14329 2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>
14330
14331         PR target/51340
14332         * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
14333         flag_unsafe_math_optimizations is set.
14334         * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
14335         Update description of -mfused-madd.
14336
14337 2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>
14338
14339         PR target/52941
14340         * config/sh/predicates.md (atomic_arith_operand,
14341         atomic_logical_operand): New predicates.
14342         * config/sh/sh.c (sh_option_override): Check atomic options.
14343         * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
14344         UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
14345         (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
14346         UNSUPPORTED_HARD_ATOMIC_CPU.
14347         * config/sh/sync.md: Update description comments.
14348         (I12): New mode iterator.
14349         (fetchop_predicate, fetchop_constraint): New code attributes.
14350         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
14351         atomic_exchangesi_hard, atomic_exchange<mode>_hard,
14352         atomic_fetch_<fetchop_name>si_hard,
14353         atomic_fetch_<fetchop_name><mode>_hard,
14354         atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
14355         atomic_<fetchop_name>_fetchsi_hard,
14356         atomic_<fetchop_name>_fetch<mode>_hard,
14357         atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
14358         atomic_test_and_set_hard): New insns.
14359         (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
14360         atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
14361         atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
14362         atomic_test_and_set_soft): Use same formatting for the first line of
14363         the asm block as in new insns above.
14364         (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
14365         atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
14366         atomic_test_and_set): Integrate new *_hard insns into expanders.
14367         * config/sh/sh.opt (mhard-atomic): New option.
14368         * doc/invoke.texi (SH Options): Document it.
14369
14370 2012-05-29  Meador Inge  <meadori@codesourcery.com>
14371
14372         * c-decl.c (c_push_function_context): Always create a new language
14373         function.
14374         (c_pop_function_context): Clear the language function created in
14375         c_push_function_context.
14376
14377 2012-05-29  Matt Turner  <mattst88@gmail.com>
14378
14379         * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
14380         (define_bypass "ev6_fcmov"): New.
14381
14382 2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14383
14384         * integrate.c: Remove.
14385         * integrate.h: Remove.
14386         * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
14387         * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
14388         * config/rs6000/t-rs6000: Likewise
14389         * config/spu/t-spu-elf: Likewise.
14390         * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
14391         get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
14392         from integrate.h to here.
14393         (initial_value_entry): New prototype.
14394         * reload.h (allocate_initial_values): Remove prototype.
14395         * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
14396         * cse.c (fixed_base_plus_p): Don't handle virtual registers for
14397         integrate.c.
14398         * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
14399         set_decl_abstract_flags, set_block_abstract_flags): Move from
14400         integrate.c to here, the only user.
14401         * expmed.c (extract_fixed_bit_field): Remove outdated comment
14402         about integrate.c.
14403         * function.c: Don't include integrate.h.
14404         (struct initial_value_pair, struct initial_value_struct,
14405         get_hard_reg_initial_val, has_hard_reg_initial_val,
14406         get_hard_reg_initial_reg, emit_initial_value_sets): Move from
14407         integrate.c to here.
14408         (initial_value_entry): New function.
14409         * genemit.c (main): Don't print integrate.h include line.
14410         * ira.c: Don't include integrate.h.
14411         (allocate_initial_values): Move from integrate.c to here.
14412         (ira): Update allocate_initial_values call.
14413         * tree-inline.c: Don't include integrate.h.
14414         (function_attribute_inlinable_p): Moved from integrate.c to here.
14415         * cfgexpand.c: Don't include integrate.h.
14416         * except.c: Likewise.
14417         * langhooks.c: Likewise.
14418         * passes.c: Likewise.
14419         * toplev.c: Likewise.
14420         * config/frv/frv.c: Likewise.
14421         * config/pa/pa.c: Likewise.
14422         * config/spu/spu.c: Likewise.
14423         * config/epiphany/epiphany.c: Likewise.
14424         * config/mep/mep.c: Likewise.
14425         * config/score/score.c: Likewise.
14426         * config/picochip/picochip.c: Likewise.
14427         * config/sh/sh.c: Likewise.
14428         * config/alpha/alpha.c: Likewise.
14429         * config/microblaze/microblaze.c: Likewise.
14430         * config/mips/mips.c: Likewise.
14431         * config/v850/v850.c: Likewise.
14432         * config/mmix/mmix.c: Likewise.
14433         * config/bfin/bfin.c: Likewise.
14434         * config/arm/arm.c: Likewise.
14435         * config/s390/s390.c: Likewise.
14436         * config/m32r/m32r.c: Likewise.
14437         * config/rs6000/rs6000.c: Likewise.
14438         * config/c6x/c6x.c: Include function.h instead of integrate.h.
14439         * config/tilegx/tilegx.c: Likewise.
14440         * config/tilepro/tilepro.c: Likewise.
14441
14442 2012-05-29  Georg-Johann Lay  <avr@gjlay.de>
14443
14444         * config/avr/t-avr (s-avr-mmcu-texi): Call
14445         gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
14446
14447 2012-05-29  Michael Matz  <matz@suse.de>
14448
14449         * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
14450         assign_temp): Remove 'keep' argument.
14451         (mark_temp_addr_taken): Remove prototype.
14452         * tree.h (expand_decl): Remove prototype.
14453         * function.c (struct temp_slot): Remove addr_taken and keep member.
14454         (assign_stack_temp_for_type) Don't initialize above, remove
14455         keep argument.
14456         (assign_stack_temp, assign_temp): Remove keep argument.
14457         (mark_temp_addr_taken): Remove.
14458         (preserve_temp_slots): Remove handling of addr_taken and keep members.
14459         (free_temp_slots): Ditto.
14460         * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
14461         dead code.
14462         * stmt.c (expand_asm_operands): Remove dead code.
14463         (expand_decl): Remove.
14464         * c-decl.c (finish_struct): Don't call expand_decl.
14465         * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
14466         and assign_stack_temp.
14467         * calls.c (save_fixed_argument_area, initialize_argument_information,
14468         expand_call, emit_library_call_value_1, store_one_arg): Ditto.
14469         * expmed.c (extract_bit_field_1): Ditto.
14470         * expr.c (emit_group_load_1, emit_group_store,
14471         copy_blkmode_from_reg, emit_push_insn, expand_assignment,
14472         store_field, expand_constructor, expand_cond_expr_using_cmove,
14473         expand_expr_real_2, expand_expr_real_1): Ditto.
14474         * stmt.c (expand_asm_operands, expand_return): Ditto.
14475
14476         * function.c (pop_temp_slots): Call free_temp_slots.
14477         * calls.c (store_one_arg): Don't call preserve_temp_slots or
14478         free_temp_slots.
14479         * expr.c (expand_assignment): Don't call free_temp_slots.
14480
14481         * config/arm/arm.c (neon_expand_vector_init): Ditto.
14482         * config/i386/i386.c (ix86_expand_vector_set): Ditto.
14483         (ix86_expand_vector_extract): Ditto.
14484         * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
14485         ia64_expand_movxf_movrf): Ditto.
14486         * config/mips/mips.c (mips_expand_vi_general): Ditto.
14487         * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
14488         extendsfdf2): Ditto.
14489         * config/rs6000/rs6000.c (rs6000_expand_vector_init,
14490         rs6000_expand_vector_set, rs6000_expand_vector_extract,
14491         rs6000_allocate_stack_temp): Ditto.
14492         * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
14493         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
14494         sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
14495         sparc_expand_vector_init): Ditto.
14496
14497 2012-05-29  Michael Matz  <matz@suse.de>
14498
14499         * c-tree.h (c_expand_decl): Remove prototype.
14500
14501         * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
14502         a kept temp.
14503         (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
14504         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
14505         COMPOUND_LITERAL_EXPR.
14506         * function.c (expand_function_start): Don't call expand_decl,
14507         instead assert that we have RTL assigned.
14508         * tree-ssa-live.c (remove_unused_locals): Clear
14509         nonlocal_goto_save_area if its backing variable is removed.
14510         * stmt.c (expand_asm_operands): Remove handling of non-lvalues
14511         as mem inputs.
14512         (expand_decl): Assert that this does nothing.
14513         * calls.c (expand_call): Don't call mark_temp_addr_taken.
14514
14515 2012-05-29  Richard Guenther  <rguenther@suse.de>
14516
14517         PR tree-optimization/53516
14518         * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
14519         bitfield accesses.
14520         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
14521
14522 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
14523
14524         * LANGUAGES: Fix typos.
14525         * Makefile.in: Fix typos.
14526         * alias.c: Fix typos.
14527         * auto-inc-dec.c: Fix typos.
14528         * bb-reorder.c: Fix typos.
14529         * cfgcleanup.c: Fix typos.
14530         * cgraph.c: Fix typos.
14531         * cgraph.h: Fix typos.
14532         * cgraphunit.c: Fix typos.
14533         * collect2-aix.h: Fix typos.
14534         * collect2.c: Fix typos.
14535         * compare-elim.c: Fix typos.
14536         * config/alpha/vms.h: Fix typos.
14537         * config/arm/README-interworking: Fix typos.
14538         * config/arm/arm.c: Fix typos.
14539         * config/arm/iterators.md: Fix typos.
14540         * config/arm/vxworks.h: Fix typos.
14541         * config/avr/avr.c: Fix typos.
14542         * config/avr/avr.h: Fix typos.
14543         * config/avr/avr.md: Fix typos.
14544         * config/avr/builtins.def: Fix typos.
14545         * config/c6x/c6x.c: Fix typos.
14546         * config/cr16/cr16.c: Fix typos.
14547         * config/cr16/cr16.md: Fix typos.
14548         * config/cris/cris.md: Fix typos.
14549         * config/darwin.c: Fix typos.
14550         * config/darwin.opt: Fix typos.
14551         * config/i386/i386-c.c: Fix typos.
14552         * config/i386/i386.c: Fix typos.
14553         * config/ia64/ia64.c: Fix typos.
14554         * config/m68k/cf.md: Fix typos.
14555         * config/mep/mep.c: Fix typos.
14556         * config/microblaze/microblaze.c: Fix typos.
14557         * config/microblaze/microblaze.h: Fix typos.
14558         * config/mn10300/mn10300.c: Fix typos.
14559         * config/mn10300/mn10300.md: Fix typos.
14560         * config/pa/pa.c: Fix typos.
14561         * config/picochip/picochip.h: Fix typos.
14562         * config/rs6000/a2.md: Fix typos.
14563         * config/rs6000/rs6000.c: Fix typos.
14564         * config/rs6000/vector.md: Fix typos.
14565         * config/rx/rx.md: Fix typos.
14566         * config/rx/rx.opt: Fix typos.
14567         * config/s390/2097.md: Fix typos.
14568         * config/s390/s390.c: Fix typos.
14569         * config/s390/s390.h: Fix typos.
14570         * config/sh/sh.c: Fix typos.
14571         * config/sh/sh.md: Fix typos.
14572         * config/sparc/sync.md: Fix typos.
14573         * config/spu/spu.c: Fix typos.
14574         * config/spu/spu.md: Fix typos.
14575         * config/vms/vms.c: Fix typos.
14576         * config/vxworks-dummy.h: Fix typos.
14577         * config/vxworks.h: Fix typos.
14578         * cselib.c: Fix typos.
14579         * df-scan.c: Fix typos.
14580         * df.h: Fix typos.
14581         * doc/extend.texi: Fix typos.
14582         * doc/install.texi: Fix typos.
14583         * doc/invoke.texi: Fix typos.
14584         * doc/md.texi: Fix typos.
14585         * doc/plugins.texi: Fix typos.
14586         * doc/rtl.texi: Fix typos.
14587         * dse.c: Fix typos.
14588         * dwarf2asm.c: Fix typos.
14589         * dwarf2out.c: Fix typos.
14590         * except.h: Fix typos.
14591         * expr.c: Fix typos.
14592         * fold-const.c: Fix typos.
14593         * gcc.c: Fix typos.
14594         * gcse.c: Fix typos.
14595         * genautomata.c: Fix typos.
14596         * gengtype-state.c: Fix typos.
14597         * gengtype.c: Fix typos.
14598         * genhooks.c: Fix typos.
14599         * gimple-fold.c: Fix typos.
14600         * gimple-pretty-print.c: Fix typos.
14601         * gimple.c: Fix typos.
14602         * gimple.h: Fix typos.
14603         * gimplify.c: Fix typos.
14604         * graphite-interchange.c: Fix typos.
14605         * graphite-sese-to-poly.c: Fix typos.
14606         * ifcvt.c: Fix typos.
14607         * input.c: Fix typos.
14608         * ipa-cp.c: Fix typos.
14609         * ipa-inline-analysis.c: Fix typos.
14610         * ipa-inline-transform.c: Fix typos.
14611         * ipa-inline.c: Fix typos.
14612         * ipa-pure-const.c: Fix typos.
14613         * ipa-ref.h: Fix typos.
14614         * ipa-reference.c: Fix typos.
14615         * ipa-utils.c: Fix typos.
14616         * ipa.c: Fix typos.
14617         * ira-emit.c: Fix typos.
14618         * ira-lives.c: Fix typos.
14619         * lto-streamer.c: Fix typos.
14620         * lto-streamer.h: Fix typos.
14621         * lto-wrapper.c: Fix typos.
14622         * mcf.c: Fix typos.
14623         * mode-switching.c: Fix typos.
14624         * modulo-sched.c: Fix typos.
14625         * plugin.c: Fix typos.
14626         * postreload.c: Fix typos.
14627         * sched-deps.c: Fix typos.
14628         * sel-sched-ir.c: Fix typos.
14629         * sel-sched-ir.h: Fix typos.
14630         * sel-sched.c: Fix typos.
14631         * sese.c: Fix typos.
14632         * stor-layout.c: Fix typos.
14633         * target-hooks-macros.h: Fix typos.
14634         * target.def: Fix typos.
14635         * trans-mem.c: Fix typos.
14636         * tree-eh.c: Fix typos.
14637         * tree-predcom.c: Fix typos.
14638         * tree-sra.c: Fix typos.
14639         * tree-ssa-address.c: Fix typos.
14640         * tree-ssa-loop-ivopts.c: Fix typos.
14641         * tree-ssa-loop-niter.c: Fix typos.
14642         * tree-ssa-math-opts.c: Fix typos.
14643         * tree-ssa-pre.c: Fix typos.
14644         * tree-ssa-propagate.c: Fix typos.
14645         * tree-ssa-reassoc.c: Fix typos.
14646         * tree-ssa-sccvn.c: Fix typos.
14647         * tree-ssa-ter.c: Fix typos.
14648         * tree-ssa-uninit.c: Fix typos.
14649         * tree-ssanames.c: Fix typos.
14650         * tree-vect-generic.c: Fix typos.
14651         * tree-vect-slp.c: Fix typos.
14652         * tree.c: Fix typos.
14653         * tree.h: Fix typos.
14654         * varasm.c: Fix typos.
14655         * varpool.c: Fix typos.
14656
14657 2012-05-29  Joseph Myers  <joseph@codesourcery.com>
14658
14659         * doc/include/texinfo.tex: Update to version 2012-05-16.16.
14660
14661 2012-05-29  Richard Guenther  <rguenther@suse.de>
14662
14663         * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
14664         for globals.
14665         (add_referenced_var_1): Re-organize.  Assert we are not
14666         called for globals.
14667         (remove_referenced_var): Likewise.
14668         * varpool.c (add_new_static_var): Use create_tmp_var_raw.
14669         * tree-mudflap.c (execute_mudflap_function_ops): Do not
14670         call add_referenced_var on globals.
14671         * matrix-reorg.c (transform_access_sites): Likewise.
14672
14673 2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14674
14675         * alias.c (reg_known_value): Make this a VEC.
14676         (reg_known_equiv_p): Make this an sbitmap.
14677         (reg_known_value_size): Remove.
14678         (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
14679         set_reg_known_equiv_p): Update for reg_known_value and
14680         reg_known_value_size data structure change.
14681         (init_alias_analysis, end_alias_analysis): Likewise.
14682
14683 2012-05-29  Jakub Jelinek  <jakub@redhat.com>
14684
14685         PR middle-end/53510
14686         * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
14687         to avoid leaking memory.  No need to handle memory allocation
14688         failure.  Double string_len on each reallocation instead of adding 2.
14689         * gcov.c (read_line): Likewise.
14690
14691 2012-05-29  Hans-Peter Nilsson  <hp@axis.com>
14692
14693         * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
14694         New macros.
14695         * config/cris/cris.md ("trap"): Define, enabled for
14696         TARGET_TRAP_USING_BREAK8.
14697         * config/cris/cris.opt (mtrap-using-break8): New option.
14698
14699 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
14700
14701         PR c++/25137
14702         * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
14703         for C++.
14704
14705 2012-05-28  Hans-Peter Nilsson  <hp@axis.com>
14706
14707         * doc/md.texi (stack_protect_test): Remove negation of branch to label.
14708         (Standard Names): Fix typos in documentation of atomic patterns.
14709
14710 2012-05-27  Nathan Sidwell  <nathan@acm.org>
14711
14712         * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
14713
14714 2012-05-26  Jason Merrill  <jason@redhat.com>
14715
14716         PR c++/53220
14717         * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
14718         about array compound literals.
14719
14720 2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>
14721
14722         * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
14723         if CLEANUP_NO_INSN_DEL.
14724         * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
14725         from cfg_layout_merge_blocks.
14726         (emit_nop_for_unique_locus_between): New function.
14727         (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
14728         (cfg_layout_merge_blocks): Likewise.
14729
14730 2012-05-26  Dimitrios Apostolou  <jimis@gmx.net>
14731             Paolo Bonzini  <bonzini@gnu.org>
14732
14733         * df-scan.c (df_def_record_1): Assert a parallel must contain an
14734         EXPR_LIST at this point.  Receive the LOC and move its extraction...
14735         (df_defs_record): ... here. Change if-else to a switch statement.
14736         (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
14737         (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
14738         and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
14739         DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
14740         regs_invalidated_by_call.
14741         (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
14742         df_get_call_refs().
14743
14744 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
14745
14746         PR lto/52178
14747         * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
14748         * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
14749
14750 2012-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
14751
14752         * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
14753         software floating point emulation.  No longer build the multilibs
14754         with -mstrict-align.
14755
14756 2012-05-25  Aldy Hernandez  <aldyh@redhat.com>
14757
14758         PR middle-end/53008
14759         * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
14760         accessed indirectly.
14761         (ipa_tm_create_version): Same.
14762
14763 2012-05-25  Uros Bizjak  <ubizjak@gmail.com>
14764
14765         PR target/53474
14766         * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
14767         <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
14768
14769 2012-05-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14770
14771         PR target/53435
14772         * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
14773         (ix86_expand_vec_perm): Use int mode instead of float.
14774         (expand_vec_perm_pshufb): Remove handling of useseless type
14775         conversion.
14776
14777 2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>
14778
14779         PR ada/52362
14780         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
14781         gnu_ld variables to yes.
14782         * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
14783         (HAVE_GNU_AS): Likewise.
14784         * config.in: Regenerate.
14785         * configure: Likewise.
14786
14787 2012-05-25  Tristan Gingold  <gingold@adacore.com>
14788
14789         * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
14790         (ix86_compute_frame_layout): Fix type of stack_alignment_needed
14791         and preferred_alignment.
14792
14793 2012-05-25  Tristan Gingold  <gingold@adacore.com>
14794
14795         * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
14796
14797 2012-05-25  Thomas Schwinge  <thomas@codesourcery.com>
14798
14799         * fold-const.c (optimize_bit_field_compare): Abort early in the strict
14800         volatile bitfields case.
14801
14802 2012-05-24  Pat Haugen  <pthaugen@us.ibm.com>
14803
14804         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
14805         rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
14806         (adjacent_mem_locations): Move some code to and call...
14807         (get_memref_parts): ...new function.
14808         (mem_locations_overlap): New function.
14809         (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
14810         (is_mem_ref): Rename to...
14811         (find_mem_ref): ...this. Return MEM rtx.
14812         (get_store_dest): Remove function.
14813         (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
14814         new parameter and adjust calls.
14815         (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
14816         mem refs overlap for true_store_to_load_dep_costly.
14817         (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
14818         passed to adjacent_mem_locations.
14819         (is_costly_group): Walk resolved dependency list.
14820         (force_new_group): Emit group ending nop for Power6/Power7.
14821         * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
14822         (group_ending_nop): New define_insn.
14823
14824 2012-05-24  Dodji Seketeli  <dodji@redhat.com>
14825
14826         Make unwound macro expansion trace less redundant
14827         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
14828         context of macro definition in the trace, when it's redundant.
14829         Update comments.
14830
14831 2012-05-24  Richard Guenther  <rguenther@suse.de>
14832
14833         PR middle-end/53460
14834         * tree-profile.c (tree_profiling): Cleanup the CFG if
14835         execute_fixup_cfg requests it.
14836
14837 2012-05-24  Richard Guenther  <rguenther@suse.de>
14838
14839         * tree-flow.h (create_var_ann): Remove.
14840         * tree-dfa.c (create_var_ann): Remove and inline into its
14841         single caller ...
14842         (add_referenced_var_1): ... here.
14843         * varpool.c (add_new_static_var): Do not call add_referenced_var
14844         for global vars.
14845         * gimple-fold.c (canonicalize_constructor_val): Likewise.
14846         * tree-switch-conversion.c (build_one_array): Likewise.
14847         * tree-profile.c (gimple_gen_ic_profiler): Likewise.
14848         * tree-flow-inline.h (gimple_referenced_vars): Guard against
14849         NULL fn argument.
14850         * tree-inline.c (remap_gimple_op_r): Likewise.  Check
14851         gimple_referenced_vars instead of gimple_in_ssa_p.
14852         (copy_tree_body_r): Likewise.
14853         (setup_one_parameter): Likewise.
14854         (declare_return_variable): Likewise.
14855         (tree_function_versioning): Likewise.
14856
14857 2012-05-24  Jakub Jelinek  <jakub@redhat.com>
14858
14859         PR tree-optimization/53465
14860         * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
14861         vr0 into *vr, then vrp_meet that.
14862         (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
14863         have any equivalences.
14864         (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
14865         first time.
14866
14867 2012-05-24  Jim MacArthur  <jim.macarthur@arm.com>
14868
14869         * recog.c (reg_fits_class_p): Check both regno and regno + offset are
14870         hard registers.
14871         * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
14872         check end_regno - 1 is a hard register.
14873
14874 2012-05-24  Richard Guenther  <rguenther@suse.de>
14875
14876         * varpool.c (add_new_static_var): Remove call to create_var_ann.
14877         * tree-ssa-operands.c (create_vop_var): Likewise.
14878
14879 2012-05-24  Richard Guenther  <rguenther@suse.de>
14880
14881         PR bootstrap/53466
14882         * tree-ssa-live.c (remove_unused_scope_block_p): Properly
14883         handle globals.
14884         (remove_unused_locals): Pass global_unused_vars to
14885         remove_unused_scope_block_p.  Restore code walking all
14886         referenced vars and pruning them.
14887
14888 2012-05-23  Jan Hubicka  <jh@suse.cz>
14889
14890         * tree.h (alias_diag_flags): Remove.
14891         (alias_pair): Remove emitted_diags.
14892         (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
14893         symbol_alias_set_t, symbol_alias_set_destroy,
14894         symbol_alias_set_contains, propagate_aliases_backward): Remove.
14895         * toplev.c (compile_file): Do not call finish_aliases_2
14896         * cgraphunit.c (cgraph_process_new_functions): Do not call
14897         finish_aliases_1.
14898         (handle_alias_pairs): Output diagnostics about aliases to externals.
14899         (assemble_thunks_and_aliases): Use do_assemble_alias.
14900         (output_weakrefs): Likewise.
14901         (finalize_compilation_unit): Do not call finish_aliases_1.
14902         * ipa.c (symtab_remove_unreachable_nodes): De not call
14903         remove_unreachable_alias_pairs.
14904         * varasm.c (do_assemble_alias): Export.
14905         (symbol_alias_set_create, symbol_alias_set_destroy,
14906         symbol_alias_set_contains, symbol_alias_set_insert,
14907         propagate_aliases_forward, propagate_aliases_backward,
14908         propagate_aliases_backward, trivially_visible_alias,
14909         trivially_defined_alias, remove_unreachable_alias_pairs,
14910         finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
14911         * output.h (do_assemble_alias): Declare.
14912         * varpool.c (varpool_remove_unreferenced_decls): Do not call
14913         finish_aliases_1.
14914
14915 2012-05-23  Martin Jambor  <mjambor@suse.cz>
14916
14917         * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
14918
14919 2012-05-23  Eric Botcazou  <ebotcazou@adacore.com>
14920
14921         * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
14922         size handling.
14923         (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
14924         (iterative_hash_gimple_type): Adjust comment.
14925         (iterative_hash_canonical_type): Likewise.  Hash the bounds of the
14926         domain for an array type instead of the domain type itself.
14927
14928 2012-05-23  Richard Guenther  <rguenther@suse.de>
14929
14930         PR tree-optimization/53438
14931         * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
14932
14933 2012-05-23  Georg-Johann Lay  <avr@gjlay.de>
14934
14935         PR target/53448
14936         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
14937         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
14938         ASM_OUTPUT_ALIGN.
14939
14940 2012-05-23  Richard Guenther  <rguenther@suse.de>
14941
14942         * tree-dfa.c (add_referenced_var_1): Do not add global vars.
14943         * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
14944         via the global_unused_vars bitmap.
14945         (remove_unused_locals): Handle global vars in local-decls via
14946         a global_unused_vars bitmap instead of the used flag in the
14947         var annotation.  Simplify global variable handling and removal.
14948
14949 2012-05-22  Jan Hubicka  <jh@suse.cz>
14950
14951         PR middle-end/53426
14952         * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
14953         from other partitions.
14954
14955 2012-05-22  Jan Hubicka  <jh@suse.cz>
14956
14957         PR middle-end/53161
14958         * symtab.c (symtab_register_node): Fix ordering issue.
14959
14960 2012-05-22  Steven Drake <sbd@NetBSD.org>
14961
14962         * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
14963
14964 2012-05-22  David Edelsohn  <dje.gcc@gmail.com>
14965
14966         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
14967         Use strip_name_encoding target hook.
14968
14969 2012-05-22  Richard Guenther  <rguenther@suse.de>
14970
14971         * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
14972         (init_function_for_compilation): Remove.
14973         * tree-dfa.c (find_vars_r): Take struct function argument.
14974         (find_referenced_vars_in): Adjust.
14975         * tree-ssa-operands.c (clobber_stats): Remove.
14976         (create_vop_var): Take struct function argument.  Mark
14977         virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
14978         (init_ssa_operands): Take struct function argument.
14979         (fini_ssa_operands): Do not dump dead stats.
14980         * tree-ssa-operands.h (init_ssa_operands): Take struct function
14981         argument.
14982         * cgraphunit.c (init_lowered_empty_function): Adjust.
14983         * lto-streamer-in.c (input_cfg): Likewise.
14984         * tree-inline.c (initialize_cfun): Likewise.
14985         * tree-into-ssa.c (rewrite_into_ssa): Likewise.
14986         * omp-low.c (expand_omp_taskreg): Likewise.  Avoid switching cfun.
14987         * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
14988         virtual operands are not registers.
14989
14990 2012-05-22  Richard Guenther  <rguenther@suse.de>
14991
14992         * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
14993
14994 2012-05-22  Richard Guenther  <rguenther@suse.de>
14995
14996         PR middle-end/53437
14997         * tree-inline.c (setup_one_parameter): Create a dummy init
14998         statement for unused parameters when not optimizing.
14999
15000 2012-05-22  Richard Guenther  <rguenther@suse.de>
15001
15002         * tree-flow.h (add_referenced_var_1): Declare.
15003         (add_referenced_var): Define.
15004         * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
15005         (add_referenced_var): Rename to ...
15006         (add_referenced_var_1): ... this.  Take struct function argument.
15007
15008 2012-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15009
15010         PR target/53334
15011         * config/arm/arm-protos.h (arm_validize_comparison): Declare.
15012         * config/arm/arm.c (arm_validize_comparison): Define.
15013         * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
15014         arm_validize_comparison.
15015         ("cbranchdi4"): Likewise.
15016         ("cstoredi4"): Likewise.
15017         ("movsicc"): Likewise.
15018         ("movsfcc"): Likewise.
15019         ("movdfcc"): Likewise.
15020
15021 2012-05-22  Dimitrios Apostolou  <jimis@gmx.net>
15022
15023         * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
15024         the mw_reg_pool size.
15025
15026 2012-05-22  Paolo Bonzini  <bonzini@gnu.org>
15027
15028         PR tree-optimization/53336
15029         * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
15030         non-integer integral types to offset type and vice versa.
15031
15032 2012-05-22  Alan Modra  <amodra@gmail.com>
15033
15034         * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
15035         * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
15036         * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
15037         V_SAVE_INLINE): Delete.
15038         * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
15039         (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
15040         For ELF targets, use out-of-line restores for -Os and any number
15041         of regs if the restore exits, and out-of-line gp save for two or
15042         more regs.  Use save_reg_p to test for holes in reg restore set.
15043         Replace "#if" with "if".
15044
15045 2012-05-22  Alan Modra  <amodra@gmail.com>
15046
15047         * config/rs6000/rs6000.c (save_reg_p): New function.
15048         (first_reg_to_save, first_fp_reg_to_save): Use it here.
15049         (first_altivec_reg_to_save, restore_saved_cr): Likewise.
15050         (emit_frame_save): Use gen_frame_store.
15051         (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
15052         (rs6000_emit_prologue): Use save_reg_p.  Use gen_frame_store for
15053         vrsave and toc.
15054         (rs6000_emit_epilogue): Use save_reg_p.  Use gen_frame_load for
15055         vrsave, toc, gp and fp restores.
15056
15057 2012-05-22  Alan Modra  <amodra@gmail.com>
15058
15059         * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
15060         Move those with ATTRIBUTE_UNUSED to immediately before definitions.
15061         Move function pointer variables after forward declarations.
15062         (rs6000_builtin_support_vector_misalignment): Make static.
15063         (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
15064         (rs6000_function_value, rs6000_can_eliminate): Likewise.
15065
15066 2012-05-21  Bernd Schmidt  <bernds@codesourcery.com>
15067
15068         PR rtl-optimization/53373
15069         * caller-save.c (save_call_clobbered_regs): Look into a possible
15070         PARALLEL manually rather than using single_set on a call insn.
15071
15072 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
15073
15074         PR tree-optimization/53436
15075         * omp-low.c (omp_build_component_ref): New function.
15076         (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
15077
15078 2012-05-21  Uros Bizjak  <ubizjak@gmail.com>
15079
15080         * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
15081         arguments to bool.
15082         (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
15083         Do not print '.' here.  Output operand lossage error for unhandled
15084         sizes.  Move.
15085         <case '*'>: Move.
15086         <case '&'>: Ditto.
15087         <case 'Y'>: Ditto.
15088         <case 'z'>: Hardcode "code" argument into error strings.
15089         <case 'Z'>: Ditto.
15090         <case 'D'>: Merge AVX and non-AVX codes.
15091         <case 'C', case 'c', case 'F', case 'f'>: Merge.  Fix error string.
15092         Update call to put_condition_code.
15093
15094 2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>
15095
15096         * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2.  Call
15097         CC_STATUS_INIT.
15098         (clzsi2): New expander.
15099         (*clzsi2_68k): New insn.
15100         * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
15101
15102 2012-05-21  Aldy Hernandez  <aldyh@redhat.com>
15103
15104         * gimple.h (gimple_set_in_transaction): Remove.
15105         (gimple_in_transaction): Look in BB instead.
15106         (gimple_statement_base): Remove in_transaction field.
15107         * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
15108         * trans-mem.c (compute_transaction_bits): Place transaction bit
15109         information into basic blocks.
15110
15111 2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>
15112
15113         * expr.c (get_def_for_expr_class): Define only if
15114         HAVE_conditional_move.
15115         (convert_tree_comp_to_rtx): Likewise.
15116
15117 2012-05-21  Uros Bizjak  <ubizjak@gmail.com>
15118
15119         PR target/53399
15120         * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
15121         for TARGET_BMI.
15122         (ffssi2_no_cmove): Ditto.
15123         (*ffs<mode>_1): Remove insn pattern.
15124         (*tzcnt<mode>_1): New insn pattern.
15125         (*bsf<mode>1): Ditto.
15126
15127 2012-05-21  Richard Guenther  <rguenther@suse.de>
15128
15129         * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
15130         more referenced vars.
15131         * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
15132         flag on variables that have a var-annotation.
15133
15134 2012-05-21  Joseph Myers  <joseph@codesourcery.com>
15135
15136         PR c/53418
15137         * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
15138         from folded operands before wrapping another around the
15139         conditional expression.
15140
15141 2012-05-21  Jakub Jelinek  <jakub@redhat.com>
15142
15143         PR tree-optimization/53366
15144         * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
15145         tests if complex_numbers == 2, but there are non-complex number loads
15146         too.
15147
15148         PR tree-optimization/53409
15149         * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
15150         vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
15151
15152         PR tree-optimization/53410
15153         * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
15154         instead of build_int_cst (type, 0) where vector types might be
15155         involved. Instead of build_int_cst (type, 1) convert the original
15156         integer_onep argument to the desired type.
15157
15158 2012-05-21  Michael Matz  <matz@suse.de>
15159
15160         * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
15161         (simplify_test_exp): Handle one more case of distributive law,
15162         decrease cost threshold.
15163         (tests_attr_p, get_attr_order): New functions.
15164         (optimize_attrs): Use topological order, inline only cheap values.
15165         (write_attr_set): Reset our_known_true after some time.
15166
15167 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15168
15169         PR target/53425
15170         * config/i386/i386.c (type_natural_mode): Warn passing SSE
15171         vector argument without SSE enabled changes the ABI.
15172
15173 2012-05-21  Richard Guenther  <rguenther@suse.de>
15174
15175         PR tree-optimization/53408
15176         * tree-vect-loop.c (vectorizable_induction): Properly check
15177         the restriction that we cannot handle induction results from
15178         the inner loop outside of the outer loop.
15179
15180 2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15181
15182         PR target/53416
15183         * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
15184         (UNSPECV_RDRAND): This.
15185         (rdrand<mode>_1): Updated.
15186
15187 2012-05-21  Richard Guenther  <rguenther@suse.de>
15188
15189         * tree-loop-distribution.c (can_generate_builtin): Reject
15190         volatile stmts.
15191
15192 2012-05-21  Chung-Lin Tang  <cltang@codesourcery.com>
15193
15194         * Makefile.in (options.c): Add options.h to included header
15195         files, before tm.h.
15196
15197 2012-05-21  Razya Ladelsky  <razya@il.ibm.com>
15198
15199         * tree-parloops.c : Add myself to contributors, update
15200         TODO list, add link to wiki.
15201
15202 2012-05-21  Alan Modra  <amodra@gmail.com>
15203
15204         * config/rs6000/predicates.md (input_operand): Don't match
15205         constant pool addresses.  Remove label_ref, high and plus from
15206         match_code list.  Remove redundant CONSTANT_P test.
15207         (splat_input_operand): Similarly update match_code list.
15208         (small_toc_ref): New predicate.
15209         * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
15210         * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
15211         (legitimate_constant_pool_address_p): Move TARGET_TOC test and
15212         register checks to..
15213         (toc_relative_expr_p): ..here.  Add "strict" param.  Match new rtl
15214         generated by create_TOC_reference.
15215         (rs6000_legitimize_address): Update cerate_TOC_reference call.
15216         (rs6000_delegitimize_address): Handle new rtl for toc refs.
15217         (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
15218         (use_toc_relative_ref): New function, split out from..
15219         (rs6000_emit_move): ..here.  Remove redundant tests.  Update
15220         create_TOC_reference calls.
15221         (rs6000_legitimize_reload_address): Formatting.  Handle splitting
15222         of medium/large model toc addresses.  Use use_toc_relative_ref.
15223         (print_operand): Formatting, style.  Adjust for toc changes.
15224         (print_operand_address): Likewise.
15225         (rs6000_output_addr_const_extra): Likewise.
15226         (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
15227         than a PLUS.  Use this formulation for both high and low part
15228         of -mcmodel=medium/large toc reference too.  Before reload,
15229         always use the small model formulation.
15230         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
15231         a PLUS in high part of addresses here.
15232         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
15233         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
15234         (largetoc_high, largetoc_low): Move earlier.  Cope when no
15235         base reg available.
15236         (largetoc_high_plus): New insn.
15237         (movsi_internal1, movsi_internal1_single, movsf_softfloat,
15238         movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
15239         (tocref): ..instead do so here, new insn and split.
15240
15241 2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>
15242
15243         * config/i386/driver-i386.c (host_detect_local_cpu): Support
15244         RDRND, F16C and FSGSBASE.
15245
15246 2012-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15247
15248         PR rtl-optimzation/53373
15249         * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
15250         call pattern.  Update split patterns.
15251         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
15252         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
15253
15254 2012-05-20  Razya Ladelsky  <razya@il.ibm.com>
15255
15256         * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
15257         for outer loops.
15258
15259 2012-05-18  Jan Hubicka  <jh@suse.cz>
15260
15261         * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
15262         (cgraph_process_new_functions): Process also aliases.
15263         * lto-streamer-out.c (struct sets): Remove.
15264         (trivally_defined_alias): Remove.
15265         (output_alias_pair_p): Remove.
15266         (output_unreferenced_globals): Remove.
15267         (produce_symtab); Do not handle alias pairs.
15268         (produce_asm_for_decls): Likewise.
15269         * lto-streamer-in.c (input_alias_pairs): Remove.
15270         (lto_read_body): Do not input alias pairs.
15271         (lto_input_constructors_and_inits): Remove.
15272
15273 2012-05-18  Jan Hubicka  <jh@suse.cz>
15274
15275         * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
15276         aliases.
15277
15278 2012-05-18  Jan Hubicka  <jh@suse.cz>
15279
15280         * cgraphbuild.c (record_reference): Update.
15281         * lto-cgraph.c (lto_output_varpool_node): External vars
15282         are not in other partition even if they are not output
15283         in current partition.
15284         * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
15285         argument; fix.
15286         (canonicalize_constructor_val): Take FROM_DECL argument.
15287         (fold_ctor_reference, fold_string_cst_ctor_reference,
15288         fold_array_ctor_reference, fold_nonarray_ctor_reference,
15289         fold_ctor_reference): Likewise.
15290         (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
15291         * gimple.h (gimple_fold_builtin): Likewise.
15292
15293 2012-05-18  Olivier Hainque  <hainque@adacore.com>
15294
15295         * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
15296         $(libsubdir) as libexecsubdir.
15297
15298 2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15299
15300         * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
15301         relied on signed overflow behavior.
15302
15303 2012-05-18  Richard Guenther  <rguenther@suse.de>
15304
15305         PR tree-optimization/53346
15306         * tree-loop-distribution.c (ldist_gen): Make sure to apply
15307         builtin transform even when only a single partition with
15308         all reads/writes exists.
15309
15310 2012-05-18  Richard Guenther  <rguenther@suse.de>
15311
15312         PR tree-optimization/53390
15313         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
15314         strided loads.
15315
15316 2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15317
15318         * tree-ssa-reassoc.c (bip_map): Remove decl.
15319         (completely_remove_stmt): Remove function.
15320         (remove_def_if_absorbed_call): Remove function.
15321         (remove_visited_stmt_chain): Remove __builtin_powi handling.
15322         (possibly_move_powi): Remove function.
15323         (rewrite_expr_tree): Remove calls to possibly_move_powi.
15324         (rewrite_expr_tree_parallel): Likewise.
15325         (attempt_builtin_powi): Build multiplies explicitly rather than
15326         relying on the ops vector and rank system.
15327         (transform_stmt_to_copy): New function.
15328         (transform_stmt_to_multiply): Likewise.
15329         (reassociate_bb): Handle leftover operations after __builtin_powi
15330         optimization; build a final multiply if necessary.
15331
15332 2012-05-18  Jan Hubicka  <jh@suse.cz>
15333
15334         * cgraphunit.c (varpool_finalize_decl): Allow external decls.
15335         (mark_functions_to_output): Fix sanity check.
15336         * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
15337
15338 2012-05-18  Richard Guenther  <rguenther@suse.de>
15339
15340         * tree-flow.h (mark_symbols_for_renaming): Remove.
15341         * tree-dfa.c (mark_symbols_for_renaming): Likewise.
15342         * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
15343         (copy_debug_stmt): Likewise.
15344         (expand_call_inline): Likewise.
15345         (declare_return_variable): Mark the return variable for renaming
15346         if necessary.
15347
15348 2012-05-18  Andrew Stubbs  <ams@codesourcery.com>
15349
15350         * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
15351         prototype.
15352         * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
15353         * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
15354         (ashrdi3,lshrdi3): Likewise.
15355         (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
15356
15357 2012-05-18  Meador Inge  <meadori@codesourcery.com>
15358
15359         PR rtl-optimization/53352
15360         * cse.c (equiv_constant): Ignore paradoxical subregs.
15361
15362 2012-05-17  Steven Bosscher  <steven@gcc.gnu.org>
15363
15364         PR rtl-optimization/53125
15365         * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
15366         argument.  Simplify calculation of REG_LIVE_LENGTH for regnos that
15367         die in the basic block.  Correctly top off REG_FREQ and
15368         REG_FREQ_CALLS_CROSSED.
15369         Remove do_not_gen.
15370         (regstat_compute_ri): Allocate and free local_live_last_luid.
15371         Remove do_not_gen.
15372         (regstat_bb_compute_calls_crossed): Correctly top off
15373         REG_FREQ_CALLS_CROSSED.
15374
15375 2012-05-17  Jan Hubicka  <jh@suse.cz>
15376
15377         * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
15378         constructor over decl without.
15379         * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
15380         * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
15381         * cgraphunit.c (process_function_and_variable_attributes): Finalize
15382         extrnal decls.
15383         (mark_functions_to_output): Also accept bodies for functions with
15384         clones.
15385         (output_in_order): Skip external vars.
15386         * lto-cgraph.c (lto_output_node): External functions are never in other
15387         partition.
15388         (lto_output_varpool_node): Likewise.
15389         * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
15390         forgotten initializers.
15391         * ipa.c (process_references): Handle external vars.
15392         (symtab_remove_unreachable_nodes): Update to handle external vars.
15393         (varpool_externally_visible_p): External vars are externally visible.
15394         * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
15395         * varpool.c (varpool_remove_node): Remove constructor.
15396         (decide_is_variable_needed): Handle externals.
15397         (varpool_remove_unreferenced_decls): Likewise.
15398
15399 2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15400
15401         * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
15402         (enable_warning_as_error): Do not special case Wuninitialized.
15403         * optc-gen.awk: Add sanity checks.
15404
15405 2012-05-17  Jan Hubicka  <jh@suse.cz>
15406
15407         * ipa-reference.c (is_proper_for_analysis): Do not check flags
15408         that might change as result of global optimization.
15409         (analyze_function): Do not check analyzed and externally_visible
15410         flags; be happy about address dereferences.
15411         (propagate): Prune all_module_statics so it really contains just
15412         statics; prune all the local summaries.
15413         (ipa_reference_write_optimization_summary): Simplify.
15414
15415 2012-05-17  Kwok Cheung Yeung  <kcy@codesourcery.com>
15416
15417         * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
15418         * config/m68k/m68k-tables.opt: Regenerated.
15419         * doc/invoke.texi (M680x0 Options): Document.
15420
15421 2012-05-16  Dave Boutcher  <daveboutcher@gmail.com>
15422             Patrick Marlier  <patrick.marlier@gmail.com>
15423
15424         * trans-mem.c (ipa_tm_transform_clone): Transform functions with
15425         indirect calls.
15426
15427 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
15428
15429         * configure: Regenerated.
15430
15431 2012-05-16  Andrew Pinski  <apinski@cavium.com>
15432
15433         * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
15434         GIMPLE_ASSIGN.
15435
15436 2012-05-16  David S. Miller  <davem@davemloft.net>
15437
15438         * jump.c (delete_related_insns): If we remove a CALL, make sure
15439         we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
15440
15441 2012-05-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15442
15443         PR tree-optimization/53217
15444         * tree-ssa-reassoc.c (bip_map): New static variable.
15445         (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
15446         (attempt_builtin_powi): Save feeding multiplies on a stack.
15447         (reassociate_bb): Create and destroy bip_map.
15448
15449 2012-05-16  Olivier Hainque  <hainque@adacore.com>
15450
15451         * Makefile.in (install-no-fixedincludes): New target, former toplevel
15452         gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
15453         Add comments and improve stamp preservation across the whole sequence.
15454         (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
15455
15456 2012-05-16  Richard Guenther  <rguenther@suse.de>
15457
15458         * tree-inline.c (insert_init_stmt): Do not call
15459         mark_symbols_for_renaming.
15460         (setup_one_parameter): Avoid initializing unused parameters.
15461         (declare_return_variable): Properly handle DECL_BY_REFERENCE
15462         return vars in SSA form.
15463
15464 2012-05-16  Richard Guenther  <rguenther@suse.de>
15465
15466         * tree-flow.h (get_virtual_var): Remove.
15467         * tree-dfa.c (get_virtual_var): Likewise.
15468
15469 2012-05-16  Richard Guenther  <rguenther@suse.de>
15470
15471         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
15472         Remove set-only bitmap of new names.
15473         (slpeel_tree_peel_loop_to_edge): Likewise.  Do not set
15474         CFG hooks.
15475         * tree-flow.h (ssa_names_to_replace): Remove.
15476         * tree-into-ssa.c (ssa_names_to_replace): Likewise.
15477
15478 2012-05-16  Richard Guenther  <rguenther@suse.de>
15479
15480         PR tree-optimization/53364
15481         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
15482         detect a view-conversion of the decl.
15483
15484 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
15485
15486         PR preprocessor/7263
15487         * c-tree.h (enum c_declspec_word): Declare new enum.
15488         (struct c_declspecs::locations): New member.
15489         (declspecs_add_qual, declspecs_add_scspec)
15490         (declspecs_add_addrspace, declspecs_add_alignas): Take a new
15491         location parameter.
15492         * c-decl.c (build_null_declspecs): Initialize the new struct
15493         c_declspecs::locations member.
15494         (declspecs_add_addrspace): Take a location parameter for the
15495         address space.  Store it onto declaration specifiers.
15496         (declspecs_add_qual): Likewise, take a location parameter for the
15497         qualifier.
15498         (declspecs_add_type): Likewise, take a location parameter for the
15499         type specifier.
15500         (declspecs_add_scspec): Likewise, take a location parameter for
15501         the storage class specifier.
15502         (declspecs_add_attrs): Likewise, take a location parameter for the
15503         first attribute.
15504         (declspecs_add_alignas): Likewise, take a location parameter for
15505         the alignas token.
15506         (finish_declspecs): For diagnostics, use the location of the
15507         relevant declspec, instead of the global input_location.
15508         * c-parser.c (c_parser_parameter_declaration): Pass the precise
15509         virtual location of the declspec to the declspecs-setters.
15510         (c_parser_declspecs): Likewise.  Avoid calling c_parser_peek_token
15511         repeatedly.
15512
15513 2012-05-16  Igor Zamyatin  <igor.zamyatin@intel.com>
15514
15515         * configure.ac: Stack protector enabling for Android targets.
15516         * configure: Regenerate.
15517
15518 2012-05-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
15519
15520         * ira.c (pseudo_move_insn): Delete.
15521         (find_moveable_pseudos): Don't set it.
15522         (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
15523         the definitions of the original pseudo.  Delete all of them.
15524
15525 2012-05-16  Olivier Hainque  <hainque@adacore.com>
15526
15527         * config/rs6000/rs6000-opts.h (enum processor_type): Add
15528         PROCESSOR_PPC8548.
15529         * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
15530         * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
15531         * config/rs6000/8540.md: indicate that the units/patterns apply to
15532         ppc8548 as well.
15533
15534         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
15535         default_cpu into implicit_cpu, conveying what --with-cpu was passed at
15536         configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
15537         related flags,  check that what is queried is supported by the selected
15538         configuration. Rework the single/double_float and MASK_STRING resets to
15539         hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
15540         costs for PROCESSOR_PPC8548 as well.
15541         (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
15542         (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
15543         statement instead of a sequence of ifs.
15544
15545         * config/rs6000/rs6000.h (TARGET_E500): Remove.
15546         (TARGET_NO_LWSYNC): Adjust accordingly.
15547         * config/rs6000/e500.h (TARGET_E500): Remove.
15548         (CHECK_E500_OPTIONS): Adjust accordingly.
15549         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
15550         (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
15551         * config/rs6000/linuxspe.h: Likewise.
15552         * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
15553         superfluous comments.
15554         * config/rs6000/e500-double.h: Remove.
15555
15556         * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
15557         default to with_cpu=8548 if --enable-e500-double, and to 8540
15558         otherwise.
15559         (set misc flags section): For powerpc*|rs6000*, remove inclusion
15560         of e500-double.h for --enable-e500-double.
15561
15562 2012-05-16  Olivier Hainque  <hainque@adacore.com>
15563
15564         * Makefile.in (s-header-vars): Resort to -n instead of trailing
15565         -e d in sed invocation.
15566
15567 2012-05-16  Hans-Peter Nilsson  <hp@axis.com>
15568
15569         * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
15570         source-code.
15571         * doc/tm.texi: Regenerate.
15572
15573 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
15574
15575         * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
15576
15577 2012-05-15  Jakub Jelinek  <jakub@redhat.com>
15578
15579         PR target/53358
15580         * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
15581         that operands[2] is either immediate, or q_regs_operand.
15582
15583 2012-05-15  Richard Guenther  <rguenther@suse.de>
15584
15585         * cgraphunit.c (thunk_adjust): Use make_rename_temp.
15586         (assemble_thunk): Likewise.  Manually rename and register
15587         function arguments.
15588
15589 2012-05-15  Richard Guenther  <rguenther@suse.de>
15590
15591         PR tree-optimization/53355
15592         * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
15593         by constants.
15594
15595 2012-05-15  Tristan Gingold  <gingold@adacore.com>
15596
15597         * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
15598
15599 2012-05-15  Richard Guenther  <rguenther@suse.de>
15600
15601         * gimple.c (gimple_set_modified): Move ...
15602         * gimple.h (gimple_set_modified): ... here.
15603
15604 2012-05-15  Tristan Gingold  <gingold@adacore.com>
15605
15606         * ira-color.c (move_spill_restore): Add a guard.
15607
15608 2012-05-15  Tristan Gingold  <gingold@adacore.com>
15609
15610         * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
15611         plus_constant.
15612
15613 2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>
15614
15615         * gimplify.c (gimplify_init_constructor): Do a block move for very
15616         small objects as well.
15617
15618 2012-05-15  Bernd Schmidt  <bernds@codesourcery.com>
15619
15620         * ira.c (find_moveable_pseudos): Skip registers whose
15621         DF_REG_EQ_USE_COUNT is nonzero.
15622
15623 2012-05-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
15624
15625         * doc/md.texi (fma): Define to only be applicable for single rounding.
15626
15627 2012-05-14  Uros Bizjak  <ubizjak@gmail.com>
15628
15629         PR target/46098
15630         * config/i386/i386.c (ix86_expand_special_args_builtin): Always
15631         generate target register for "load" class builtins.
15632
15633         Revert:
15634         2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
15635
15636         PR target/46098
15637         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
15638         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
15639         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
15640         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
15641         (<sse>_movu<ssemodesuffix>): New expander.
15642         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
15643         (avx_movdqu<avxmodesuffix>): New expander.
15644         (*sse2_movdqu): Rename from sse2_movdqu.
15645         (sse2_movdqu): New expander.
15646
15647 2012-05-14  Marc Glisse  <marc.glisse@inria.fr>
15648
15649         PR target/52607
15650         * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
15651         (canonicalize_perm): ... new function.
15652         (expand_vec_perm_2vperm2f128_vshuf): New function.
15653         (ix86_expand_vec_perm_const_1): Call it.
15654
15655 2012-05-14  Andrew Pinski  <apinski@cavium.com>
15656             H.J. Lu  <hongjiu.lu@intel.com>
15657             Jakub Jelinek  <jakub@redhat.com>
15658
15659         PR target/53315
15660         * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
15661         (xbegin): Updated.
15662
15663 2012-05-14  Jakub Jelinek  <jakub@redhat.com>
15664
15665         * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
15666         lineno 1 the same as lineno 0 before first start file directive.
15667         (optimize_macinfo_range): Likewise.
15668
15669         * dwarf2out.c (have_macinfo): Define.
15670         (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
15671         attribute, don't force empty compilation unit and don't emit any
15672         .debug_macinfo/.debug_macro section if macinfo_table is empty.
15673
15674 2012-05-14  Georg-Johann Lay  <avr@gjlay.de>
15675
15676         PR target/53344
15677         * config/avr/avr.c (avr_const_address_lo16): Remove.
15678         (avr_assemble_integer):  Print ".byte lo8(x)",
15679         ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
15680         .warning if 3-byte address is assembled.
15681         * doc/extend.texi (AVR Named Address Spaces): Document that
15682         binutils 2.23 is needed to assemble 3-byte addresses.
15683
15684 2012-05-14  Richard Guenther  <rguenther@suse.de>
15685
15686         * tree-vect-data-refs.c (vect_setup_realignment): Remove
15687         call to mark_symbols_for_renaming.
15688         (vect_permute_load_chain): Likewise.
15689         * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
15690         instead of calling mark_symbols_for_renaming.
15691         * tree-vect-stmts.c (read_vector_array): Remove call to
15692         mark_symbols_for_renaming.
15693         (write_vector_array): Likewise.
15694         (vectorizable_call): Likewise.
15695         (vectorizable_store): Likewise.
15696         (vectorizable_load): Likewise.
15697         * matrix-reorg.c (transform_allocation_sites): Likewise.
15698         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
15699         (create_expression_by_pieces): Likewise.
15700
15701 2012-05-14  Richard Guenther  <rguenther@suse.de>
15702
15703         * gimplify.c (gimple_regimplify_operands): Only mark the LHS
15704         of statements for renaming.
15705         (force_gimple_operand_1): Likewise, consistently for both
15706         calls to force_gimple_operand and force_gimple_operand_gsi.
15707
15708 2012-05-14  Richard Guenther  <rguenther@suse.de>
15709
15710         * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
15711         * omp-low.c (expand_omp_taskreg): Properly conditionalize call
15712         to update_ssa.
15713         (expand_omp_for): Likewise.
15714         (expand_omp_for_generic): Adjust conditional add to referenced vars.
15715         Use make_rename_temp for temporaries that should be rewritten into
15716         SSA form.
15717         (expand_omp_for_static_nochunk): Likewise.
15718         (expand_omp_atomic_pipeline): Likewise.
15719
15720 2012-05-14  Richard Guenther  <rguenther@suse.de>
15721
15722         PR tree-optimization/53331
15723         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
15724         strided loads.
15725         * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
15726
15727 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15728
15729         PR 53063
15730         * doc/options.texi: (LangEnabledBy): Document it.
15731         * optc-gen.awk: Handle LangEnabledBy.
15732         * opth-gen.awk: Generate declaration for lang-specific functions.
15733         * opt-read.awk: Record lang numbers.
15734         * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
15735         (lang_sanitized_name): New.
15736
15737 2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>
15738
15739         * attribs.c (decl_attributes): Avoid emitting a warning if
15740         ATTR_FLAG_BUILT_IN.
15741         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
15742         codes.  Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
15743         * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define.  Use it to
15744         define a string "1".
15745         (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
15746         * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
15747         BUILT_IN_STRCPY): Use it for these functions.
15748         * postreload.c (reload_combine): Deal with SETs inside
15749         CALL_INSN_FUNCTION_USAGE.
15750         * caller-save.c (setup_save_areas, save_call_clobbered_regs):
15751         Look for REG_RETURNED notes and use a cheap restore if possible.
15752         * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
15753         (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
15754         * ira-build.c (ira_create_allocno, create_cap_allocno,
15755         propagate_allocno_info, propagate_some_info_from_allocno,
15756         copy_info_to_removed_store_destination, ira_flattening): Handle it.
15757         * ira-lives.c (pseudo_regno_single_word_and_live_p,
15758         find_call_crossed_cheap_reg): New static functions.
15759         (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
15760         and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible.  Also make
15761         a REG_RETURNED note in that case.
15762         * ira.c (setup_reg_renumber): Change assert to allow cases where
15763         allocnos only cross calls for which they are cheap to restore.
15764         * ira-costs.c (ira_tune_allocno_costs): Compare
15765         ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
15766         than 0.
15767         * reg-notes.def (REG_RETURNED): New note.
15768         * cse.c (cse_insn): Likewise.
15769         * sched-deps.c (sched_analyze_insn): Likewise.
15770         * expr.c (init_block_move_fn): Set a "fn spec" attribute.
15771         * calls.c (decl_return_flags): New static function.
15772         (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
15773         functions that return one of their arguments.
15774         * regcprop.c (struct kill_set_value_data): New.
15775         (kill_set_value): Interpret data as a pointer to such a struct.
15776         Do nothing if the caller wants the register to be ignored.
15777         (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
15778
15779 2012-05-14  Richard Guenther  <rguenther@suse.de>
15780
15781         PR tree-optimization/53340
15782         * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
15783
15784 2012-05-14  Richard Guenther  <rguenther@suse.de>
15785
15786         * gimplify.c (gimplify_expr): Remove odd code.
15787
15788 2012-05-14  Eric Botcazou  <ebotcazou@adacore.com>
15789
15790         * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
15791         into a PLUS_EXPR byte offset.
15792
15793         * tree-ssa-pre.c (can_value_number_call): Delete.
15794         (compute_avail): Skip all statements with side effects.
15795         <GIMPLE_CALL>: Skip calls to internal functions.
15796
15797 2012-05-13  Steven Bosscher  <steven@gcc.gnu.org>
15798
15799         * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
15800
15801 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15802
15803         * common.opt (Wtype-limits): Use EnabledBy.
15804
15805 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
15806
15807         * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
15808         (pushtf splitter): Ditto.
15809         (movtf): Ditto.
15810         (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
15811         (<code>tf2): Enable for TARGET_SSE.
15812         (*absnegtf2_sse): Ditto.
15813         (copysign<mode>3): Enable TFmode for TARGET_SSE.
15814         (copysign<mode>3_const): Ditto.
15815         (copysign<mode>3_var): Ditto.
15816         * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
15817         (*andnottf3): Ditto.  Use V4SFmode for !TARGET_SSE2.
15818         (*<code>tf3): Ditto.
15819         * config/i386/i386.c (struct builtin_description bdesc_args)
15820         <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
15821         <IX86_BUILTIN_COPYSIGNQ>: Ditto.
15822         (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
15823         Emit a normal call if SSE isn't available.
15824
15825 2012-05-13  Uros Bizjak  <ubizjak@gmail.com>
15826
15827         * config/i386/sse.md (<sse>_andnot<mode>3): Handle
15828         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
15829         (<code><mode>3): Ditto.
15830         (*andnot<mode>3): Ditto.
15831         (*andnottf3): Ditto.
15832         (*<code><mode>3): Ditto.
15833         (<code>tf3): Ditto.
15834
15835 2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15836
15837         * optc-gen.awk: Error instead of warning for conflicting help.
15838
15839 2012-05-12  Jason Merrill  <jason@redhat.com>
15840
15841         PR debug/53235
15842         * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
15843         comdat types.
15844
15845 2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>
15846
15847         * function.c (requires_stack_frame_p): If the function can throw
15848         non-call exceptions, return true if the insn can throw internally.
15849
15850 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
15851
15852         * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
15853
15854 2012-05-12  Uros Bizjak  <ubizjak@gmail.com>
15855
15856         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
15857         ORDERED and UNORDERED conditions.
15858
15859 2012-05-11  Richard Guenther  <rguenther@suse.de>
15860
15861         * tree-flow.h (referenced_var_check_and_insert): Remove.
15862         (find_new_referenced_vars): Likewise.
15863         * tree-dfa.c (referenced_var_check_and_insert): Make static.
15864         (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
15865         * tree-inline.c (copy_bb): Use find_referenced_vars_in
15866         instead of find_new_referenced_vars.
15867         * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
15868
15869 2012-05-11  Richard Guenther  <rguenther@suse.de>
15870
15871         * tree-pass.h (pass_rest_of_compilation,
15872         pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
15873         Remove.
15874         * passes.c (pass_all_optimizations, pass_postreload,
15875         pass_all_early_optimizations): Make static.
15876         (pass_rest_of_compilation): Likewise.  Make it an RTL_PASS.
15877         * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
15878         * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
15879         (delete_tree_ssa): Do not call fini_phinodes.
15880         * tree-flow.h (init_phinodes, fini_phinodes): Remove.
15881
15882 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15883
15884         PR 53063
15885         * doc/options.texi (EnabledBy): Document
15886         * opts.c: Include opts.h and options.h before tm.h.
15887         (finish_options): Do not handle some sub-options here...
15888         (common_handle_option): ... instead call common_handle_option_auto
15889         here.
15890         * optc-gen.awk: Handle EnabledBy.
15891         * opth-gen.awk: Declare common_handle_option_auto.
15892         * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
15893         (Wmaybe-uninitialized): Likewise.
15894         (Wunused-but-set-variable): Likewise.
15895         (Wunused-function): Likewise.
15896         (Wunused-label): Likewise.
15897         (Wunused-value): Likewise.
15898         (Wunused-variable): Likewise.
15899         * opt-read.awk: Create opt_numbers array.
15900
15901 2012-05-11  Richard Guenther  <rguenther@suse.de>
15902
15903         PR tree-optimization/53295
15904         * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
15905         strides.
15906         * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
15907         strides when analyzing data-references in a loop context.
15908         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
15909         non-constant strides for now.
15910         (vect_enhance_data_refs_alignment): Ignore data references
15911         that are strided loads.
15912         (vect_analyze_data_ref_access): Handle non-constant strides.
15913         (vect_check_strided_load): Verify the data-reference is a load.
15914         (vect_analyze_data_refs): Restructure to make strided load
15915         support not dependent on gather support.
15916         * tree-vect-stmts.c (vectorizable_load): Avoid useless work
15917         when doing strided or gather loads.
15918         * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
15919         integer_zerop to compare stride with zero.
15920
15921 2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
15922
15923         * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
15924
15925 2012-05-11  Jan Hubicka  <jh@suse.cz>
15926
15927         PR bootstrap/53300
15928         * varpool.c (varpool_assemble_decl): Also output constat pool entries
15929         that output_constant_pool missed.
15930
15931 2012-05-11  Mingjie Xing  <mingjie.xing@gmail.com>
15932
15933         * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
15934         MULTILIB_EXTRA_OPTS.
15935
15936 2012-05-11  Uros Bizjak  <ubizjak@gmail.com>
15937
15938         PR target/53291
15939         * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
15940
15941 2012-05-11  Uros Bizjak  <ubizjak@gmail.com>
15942
15943         * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
15944         optimization for TARGET_AVX.
15945         (*movti_internal_sse): Ditto.
15946         (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
15947         (*movdi_internal): Ditto.
15948         (*movsi_internal): Ditto.
15949         (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
15950         (*movdf_internal_rex64): Ditto.
15951         (*movfd_internal): Ditto.
15952         (*movsf_internal): Ditto.
15953         * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
15954
15955 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
15956
15957         * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
15958         reference as size attribute.
15959
15960 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
15961             Tristan Gingold  <gingold@adacore.com>
15962
15963         * doc/md.texi (Standard Names): Document probe_stack_address.
15964         * explow.c (emit_stack_probe): Handle probe_stack_address.
15965         * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
15966         (UNSPECV_PROBE_STACK_RANGE): Likewise.
15967         (probe_stack_address): New insn.
15968         (probe_stack_range): Likewise.
15969         * config/ia64/ia64.c: Include common/common-target.h.
15970         (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
15971         checking is enabled.
15972         (ia64_emit_probe_stack_range): New function.
15973         (output_probe_stack_range): Likewise.
15974         (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
15975         builtin stack checking is enabled.
15976         (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
15977         and UNSPECV_PROBE_STACK_ADDRESS.
15978         (unknown_for_bundling_p): New predicate.
15979         (group_barrier_needed): Use important_for_bundling_p.
15980         (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
15981         (issue_nops_and_insn): Likewise.
15982         (bundling): Likewise.
15983         (final_emit_insn_group_barriers): Likewise.
15984         * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
15985         * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
15986         (STACK_CHECK_PROTECT): Likewise.
15987         * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15988
15989 2012-05-10  Jan Hubicka  <jh@suse.cz>
15990
15991         * ipa-inline.c (update_all_callee_keys): Remove.
15992         (inline_small_functions): Simplify priority updating.
15993
15994 2012-05-10  Jan Hubicka  <jh@suse.cz>
15995
15996         * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
15997
15998 2012-05-10  Jan Hubicka  <jh@suse.cz>
15999
16000         * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
16001         (symtab_remove_unreachable_nodes): ... this one.
16002         * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
16003         * cgraphunit.c (ipa_passes): Update.
16004         * cgraphclones.c (cgraph_materialize_all_clones): Update.
16005         * cgraph.c (cgraph_release_function_body): Only turn initial
16006         into error mark when initial was previously set.
16007         * ipa-inline.c (ipa_inline): Update.
16008         * ipa.c: Include ipa-inline.h
16009         (enqueue_cgraph_node, enqueue_varpool_node): Remove.
16010         (enqueue_node): New function.
16011         (process_references): Update.
16012         (symtab_remove_unreachable_nodes): Cleanup.
16013         * passes.c (execute_todo, execute_one_pass): Update.
16014
16015 2012-05-10  Vladimir Makarov  <vmakarov@redhat.com>
16016
16017         PR rtl-optimization/53125
16018         * ira.c (ira): Call find_moveable_pseudos and
16019         move_unallocated_pseudos if only ira_conflicts_p is true.
16020
16021 2012-05-10  Uros Bizjak  <ubizjak@gmail.com>
16022
16023         * config/i386/i386.md (*movoi_internal_avx): Handle
16024         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
16025         (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
16026         (*movti_internal_sse): Ditto.
16027         (*movtf_internal): Ditto.
16028         * config/i386/sse.md (ssePSmode): New mode attribute.
16029         (*move<mode>_internal): Use ssePSmode.
16030         (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
16031         (*<sse2>_movdqu<avxsizesuffix>): Ditto.
16032         * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
16033         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
16034
16035 2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
16036
16037         * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
16038         DECL_ORIGINAL_TYPE if it is present.
16039
16040 2012-05-10  Nick Clifton  <nickc@redhat.com>
16041
16042         PR target/53120
16043         * config/m32c/bitops.md (bset_qi): Change operand 2 from having
16044         a "0" constraint to being a (match_dup 0).
16045
16046 2012-05-10  Richard Guenther  <rguenther@suse.de>
16047
16048         * stor-layout.c (byte_from_pos): Amend comment.
16049
16050 2012-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16051
16052         * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
16053         Document requirement to call in constructors.
16054
16055         * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
16056
16057 2012-05-10  Richard Guenther  <rguenther@suse.de>
16058
16059         * tree.h (TYPE_IS_SIZETYPE): Remove.
16060         * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
16061         (extract_muldiv_1): Likewise.
16062         * gimple.c (gtc_visit): Likewise.
16063         (gimple_types_compatible_p): Likewise.
16064         (iterative_hash_canonical_type): Likewise.
16065         (gimple_canonical_types_compatible_p): Likewise.
16066         * gimplify.c (gimplify_one_sizepos): Likewise.
16067         * print-tree.c (print_node): Likewise.
16068         * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
16069
16070 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
16071
16072         PR target/52908
16073         * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
16074         xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
16075         (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
16076         instead of xop_mulv2div2di3_low.
16077         (xop_p<macs>dql): Fix vec_select selector.
16078         (xop_p<macs>dqh): Ditto.
16079         (xop_mulv2div2di3_low): Remove insn_and_split pattern.
16080         (xop_mulv2div2di3_high): Ditto.
16081
16082 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16083
16084         PR c++/53289
16085         * diagnostic.h (diagnostic_context): Add last_location.
16086         * diagnostic.c (diagnostic_initialize): Initialize it.
16087         (diagnostic_show_locus): Use it.
16088
16089 2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16090
16091         * doc/extend.texi (Function Attributes): Point xref to section
16092         about Pragmas.
16093
16094 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
16095
16096         * config/i386/i386.c (*movdf_internal_rex64): Remove
16097         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
16098         Calculate "mode" attribute according to
16099         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
16100         (*movdf_internal): Ditto.
16101
16102 2012-05-09  Uros Bizjak  <ubizjak@gmail.com>
16103
16104         PR target/44141
16105         * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
16106         128 bit vectors specially for TARGET_AVX.  Emit sse2_movupd and
16107         sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
16108         or when optimizing for size.
16109         * config/i386/sse.md (*mov<mode>_internal): Remove
16110         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
16111         Calculate "mode" attribute according to optimize_function_for_size_p
16112         and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
16113         (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
16114         depending on the mode of the instruction.  Calculate "mode" attribute
16115         according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
16116         and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
16117         (*<sse2>_movdqu<avxsizesuffix>): Ditto.
16118
16119 2012-05-09  Georg-Johann Lay  <avr@gjlay.de>
16120
16121         PR target/53256
16122         * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
16123         * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
16124         * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
16125         * config/avr/avr.c (avr_asm_declare_function_name): Remove.
16126         (expand_prologue): Move initialization of cfun->machine->is_naked,
16127         is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
16128         (avr_set_current_function): ...this new static function.
16129         (TARGET_SET_CURRENT_FUNCTION): New define.
16130         (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
16131         checking attributes of current_function_decl.
16132         (avr_regs_to_save): Ditto.
16133         (signal_function_p): Rename to avr_signal_function_p.
16134         (interrupt_function_p): Rename to avr_interrupt_function_p.
16135
16136         * doc/extend.texi (Function Attributes): Better explanation of
16137         'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
16138         alphabetical order.
16139
16140 2012-05-09  Michael Matz  <matz@suse.de>
16141
16142         PR tree-optimization/53185
16143         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
16144         peeling when we see strided loads.
16145
16146 2012-05-09  Matthias Klose  <doko@ubuntu.com>
16147
16148         * gcc-ar.c (main): Don't check for execute bits for the plugin.
16149
16150 2012-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16151
16152         * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
16153         Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
16154         USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
16155         * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
16156         (USE_LOAD_POST_INCREMENT): Define.
16157         (USE_LOAD_PRE_INCREMENT): Define.
16158         (USE_LOAD_POST_DECREMENT): Define.
16159         (USE_LOAD_PRE_DECREMENT): Define.
16160         (USE_STORE_PRE_DECREMENT): Define.
16161         (USE_STORE_PRE_INCREMENT): Define.
16162         (USE_STORE_POST_DECREMENT): Define.
16163         (USE_STORE_POST_INCREMENT): Define.
16164         (arm_auto_incmodes): Add enumeration.
16165         * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
16166         * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
16167
16168 2012-05-09  Jakub Jelinek  <jakub@redhat.com>
16169
16170         PR tree-optimization/53226
16171         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
16172         prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
16173         before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
16174         doesn't need to be revisited, look for earliest stmt with
16175         !gimple_plf (stmt, GF_PLF_1) if something changed.
16176
16177 2012-05-09  Terry Guo  <terry.guo@arm.com>
16178
16179         * genmultilib: Update copyright dates.
16180         * doc/fragments.texi: Ditto.
16181
16182 2012-05-09  Terry Guo  <terry.guo@arm.com>
16183
16184         * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
16185         * genmultilib (MULTILIB_REQUIRED): New.
16186         * doc/fragments.texi: Document the MULTILIB_REQUIRED.
16187
16188 2012-05-09  Richard Guenther  <rguenther@suse.de>
16189
16190         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
16191         (vect_do_peeling_for_loop_bound): Likewise.
16192         (vect_do_peeling_for_alignment): Likewise.
16193         * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
16194         (vect_do_peeling_for_loop_bound): Get check_profitability and
16195         threshold as parameters.
16196         (vect_do_peeling_for_alignment): Likewise.
16197         (vect_loop_versioning): Likewise.
16198         * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
16199         and threshold here.  Control where to put the check here.
16200
16201 2012-05-09  Richard Sandiford  <rdsandiford@googlemail.com>
16202
16203         PR middle-end/53249
16204         * dwarf2out.h (get_address_mode): Move declaration to...
16205         * rtl.h: ...here.
16206         * dwarf2out.c (get_address_mode): Move definition to...
16207         * rtlanal.c: ...here.
16208         * var-tracking.c (get_address_mode): Delete.
16209         * combine.c (find_split_point): Use get_address_mode instead of
16210         targetm.addr_space.address_mode.
16211         * cselib.c (cselib_record_sets): Likewise.
16212         * dse.c (canon_address, record_store): Likewise.
16213         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
16214         * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
16215         (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
16216         (expand_expr_real_1): Likewise.
16217         * ifcvt.c (noce_try_cmove_arith): Likewise.
16218         * optabs.c (maybe_legitimize_operand_same_code): Likewise.
16219         * reload.c (find_reloads): Likewise.
16220         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
16221         * sel-sched-dump.c (debug_mem_addr_value): Likewise.
16222
16223 2012-05-09  Maciej W. Rozycki  <macro@codesourcery.com>
16224
16225         * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
16226         information from the instruction produced.
16227
16228 2012-05-09  Richard Guenther  <rguenther@suse.de>
16229
16230         * stor-layout.c (bit_from_pos): Document.
16231         (byte_from_pos): Likewise.  Optimize.
16232         (pos_from_bit): Likewise.
16233         (normalize_offset): Use pos_from_bit instead of replicating it.
16234
16235 2012-05-09  Alan Modra  <amodra@gmail.com>
16236
16237         PR target/53271
16238         * config/rs6000/rs6000.c (gen_frame_set): New function.
16239         (gen_frame_load, gen_frame_store): New functions.
16240         (rs6000_savres_rtx): Use the above.
16241         (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
16242         Correct mode used for CR2 in save/restore_world patterns.
16243         Don't emit instructions for eh_return frame unwind reg info.
16244
16245 2012-05-08  Jan Hubicka  <jh@suse.cz>
16246
16247         * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
16248         with VALUE_EXPR.
16249         * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
16250         are removable.
16251         * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
16252         need to wrapup.
16253         (compile_file): Do not output variables.
16254         * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
16255         output it.
16256         * langhooks.c: Include timevar.h
16257         (write_global_declarations): Finalize compilation unit after wrapup;
16258         set timevars correctly.
16259         * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
16260         not to be added to varpool.
16261         * varpool.c (varpool_assemble_decl): Sanity check that we are called
16262         only on cases where it makes sense; skip constant pool and value expr
16263         vars.
16264
16265 2012-05-08  David S. Miller  <davem@davemloft.net>
16266
16267         * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
16268         * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
16269         * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
16270
16271 2012-05-08  Richard Sandiford  <rdsandiford@googlemail.com>
16272
16273         PR rtl-optimization/53278
16274         * lower-subreg.c (decompose_multiword_subregs): Remove left-over
16275         speed_p code from earlier patch.
16276
16277 2012-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
16278
16279         PR target/51244
16280         * config/sh/sh.md (*branch_true, *branch_false): New insns.
16281
16282 2012-05-08  Teresa Johnson  <tejohnson@google.com>
16283
16284         * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
16285         * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
16286
16287 2012-05-08  Jan Hubicka  <jh@suse.cz>
16288
16289         * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
16290         (cgraph_create_node_1): Rename to ...
16291         (cgraph_create_empty_node): ... this one; export.
16292         (cgraph_create_node): Update.
16293         (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
16294         (cgraph_create_edge_including_clones): Likewise.
16295         (cgraph_find_replacement_node): Likewise.
16296         (cgraph_clone_edge): Likewise.
16297         (cgraph_clone_node): Likewise.
16298         (clone_function_name): Likewise.
16299         (cgraph_create_virtual_clone): Likewise.
16300         (cgraph_remove_node_and_inline_clones): Likewise.
16301         (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
16302         * cgraph.h: Reorder declarations so they match file of origin.
16303         (cgraph_create_empty_node): Declare.
16304         * cgraphunit.c (update_call_expr): Move to cgraphclones.c
16305         (cgraph_copy_node_for_versioning): Likewise.
16306         (cgraph_function_versioning): Likewise.
16307         (cgraph_materialize_clone): Likewise.
16308         (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
16309         (cgraph_materialize_all_clones): Likewise.
16310         * cgraphclones.c: New file.
16311         * Makefile.in: Update for cgraphclones.
16312
16313 2012-05-08  Uros Bizjak  <ubizjak@gmail.com>
16314
16315         PR target/53176
16316         * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
16317         (ix86_rtx_costs): Handle SET.
16318
16319 2012-05-08  Michael Matz  <matz@suse.de>
16320
16321         * basic-block.h (struct rtl_bb_info): Remove visited member and
16322         move head_ member to ...
16323         (struct basic_block_def.basic_block_il_dependent): ... the new
16324         member x, replacing but containing old member rtl.
16325         (enum bb_flags): New BB_VISITED flag.
16326         (BB_HEADER, BB_FOOTER): New macros.
16327
16328         * jump.c (mark_all_labels): Adjust.
16329         * cfgcleanup.c (try_optimize_cfg): Adjust.
16330         * cfglayout.c (record_effective_endpoints): Adjust.
16331         (relink_block_chain): Ditto (and don't fiddle with visited).
16332         (fixup_reorder_chain): Adjust.
16333         (fixup_fallthru_exit_predecessor): Ditto.
16334         (cfg_layout_duplicate_bb): Ditto.
16335         * combine.c (update_cfg_for_uncondjump): Adjust.
16336         * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
16337         (bb_visited_trace): New accessor.
16338         (mark_bb_visited): Move in front.
16339         (rotate_loop): Use bb_visited_trace.
16340         (find_traces_1_round): Ditto.
16341         (emit_barrier_after): Ditto.
16342         (copy_bb): Ditto, and initialize visited on resize.
16343         (reorder_basic_blocks): Initize visited member.
16344         (duplicate_computed_gotos): Clear bb flags at start, use
16345         BB_VISITED flags.
16346
16347         * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
16348         (rtl_verify_flow_info_1): Ditto.
16349         (cfg_layout_split_block): Ditto.
16350         (cfg_layout_delete_block): Ditto.
16351         (cfg_layout_merge_blocks): Ditto.
16352         (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
16353
16354 2012-05-08  Hans-Peter Nilsson  <hp@axis.com>
16355
16356         PR target/53272
16357         * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
16358         when a constant source operand matches an "I" constraint, the "no
16359         CC0 change" applies to a register-destination only, not a
16360         strict_low_part-destination.
16361
16362 2012-05-08  Richard Guenther  <rguenther@suse.de>
16363
16364         * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
16365         to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
16366
16367 2012-05-08  Georg-Johann Lay  <avr@gjlay.de>
16368
16369         * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
16370
16371         * doc/avr-mmcu.texi: New auto-generated file.
16372         * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
16373         to document all valid -mmcu= arguments.
16374
16375         * config/avr/avr.h (arch_info_s): New struct definition.
16376         * config/avr/avr-devices.c (avr_texinfo): New variable.
16377         * config/avr/gen-avr-mmcu-texi.c: New file.
16378         * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
16379
16380 2012-05-08  Dehao Chen  <dehao@google.com>
16381
16382         * predict.c (find_qualified_ssa_name): New.
16383         (find_ssa_name_in_expr): New.
16384         (find_ssa_name_in_assign_stmt): New.
16385         (is_comparison_with_loop_invariant_p): New.
16386         (is_bound_expr_similar): New.
16387         (predict_iv_comparison): New.
16388         (predict_loops): Add heuristic for loop-nested branches that compare an
16389         induction variable to a loop bound variable.
16390         * predict.def (PRED_LOOP_IV_COMPARE): New macro.
16391
16392 2012-05-08  Uros Bizjak  <ubizjak@gmail.com>
16393
16394         * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
16395         TARGET_BDVER2 defines where appropriate.
16396
16397 2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>
16398
16399         * configure.ac (PLUGIN_LD): Rename into...
16400         (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
16401         * config.in: Regenerate.
16402         * configure: Likewise.
16403         * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
16404
16405 2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>
16406
16407         * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
16408         computation using the precision of the index type.
16409         * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
16410         (fold_array_ctor_reference): Do index computations in the index type.
16411
16412 2012-05-07  Georg-Johann Lay  <avr@gjlay.de>
16413
16414         * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
16415         down to plus_constant.
16416         (expand_epilogue): Ditto.
16417
16418 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16419
16420         * postreload.c (reload_cse_regs): Make static.
16421         * reload.h (reload_cse_regs): Remove prototype.
16422
16423 2012-05-07  Richard Henderson  <rth@redhat.com>
16424
16425         * config/alpha/alpha.md (clear_cache): New pattern.
16426
16427 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16428
16429         PR middle-end/53245
16430         * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
16431         is folded to a type boundary value, verify that the resulting case
16432         label is still a care range.
16433
16434 2012-05-07  Uros Bizjak  <ubizjak@gmail.com>
16435
16436         * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
16437         only for TARGET_GENERIC, when not optimizing for size.
16438         (*ffs<mode>_1): Ditto.
16439
16440 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16441
16442         * tree-cfg.c (verify_gimple_switch): Tighten checks.
16443
16444 2012-05-07  Jakub Jelinek  <jakub@redhat.com>
16445
16446         PR tree-optimization/53239
16447         * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
16448         of DECL_BY_REFERENCE RESULT_DECL to nonnull.
16449
16450 2012-05-07  Richard Guenther  <rguenther@suse.de>
16451
16452         PR tree-optimization/53195
16453         * tree-inline.c (setup_one_parameter): Properly add referenced
16454         vars from the parameters new known value.
16455
16456 2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>
16457
16458         * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
16459         (sched_branch_type): Remove.
16460         (m68k_sched_md_init_global): Don't allocate it.
16461         (m68k_sched_md_finish_global): Don't free it.
16462         * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
16463         * config/m68k/m68k.md: Set the type of insns using
16464         m68k_sched_branch_type to bcc directly.
16465
16466 2012-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16467
16468         * config/sol2.c (solaris_override_options): New function.
16469         * config/sol2-protos.h (solaris_override_options): Declare.
16470         * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
16471
16472 2012-05-07  Richard Guenther  <rguenther@suse.de>
16473
16474         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
16475         whether we failed to compute data dependences.
16476         (loop_prefetch_arrays): Fail if we failed.
16477
16478 2012-05-07  Uros Bizjak  <ubizjak@gmail.com>
16479             Paolo Bonzini  <bonzini@gnu.org>
16480
16481         * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
16482         Emit bsf when optimizing for size.
16483         (*ffs<mode>_1): Ditto.
16484
16485 2012-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
16486
16487         PR target/53250
16488         * config/sh/sh.c (sh_rtx_costs): Handle SET.
16489
16490 2012-05-06  Uros Bizjak  <ubizjak@gmail.com>
16491
16492         PR target/53227
16493         * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
16494         (bswapdi2): Split from bswap<mode>2.  Use nonnimediate_operand
16495         predicate for operand 1.  Force operand 1 to register for TARGET_BSWAP.
16496         (bswapsi2): Ditto.
16497         (*bswapdi2_doubleword): New insn pattern.
16498         (*bswap<mode>2): Rename from *bswap<mode>2_1.
16499
16500 2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
16501
16502         * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
16503         (mips_set_reg_reg_cost): Likewise.
16504         (mips_rtx_costs): Handle SET.
16505
16506 2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
16507
16508         * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
16509         (compute_costs): Likewise for the zero extension.  Use set_rtx_cost
16510         to compute the cost of moves.  Set the mode of the target register.
16511
16512 2012-05-05  Richard Sandiford  <rdsandiford@googlemail.com>
16513
16514         * rtl.h (plus_constant, plus_constant_mode): Merge into a single
16515         plus_constant function.
16516         * explow.c (plus_constant, plus_constant_mode): Likewise.  Assert
16517         that the mode is sensible.
16518         (use_anchored_address, round_push, allocate_dynamic_stack_space)
16519         (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
16520         plus_constant.
16521
16522         * alias.c (canon_rtx): Likewise.
16523         (init_alias_analysis): Likewise.
16524         * builtins.c (expand_builtin_return_addr)
16525         (expand_builtin_setjmp_setup, expand_builtin_longjmp)
16526         (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
16527         (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
16528         (expand_builtin_stpcpy): Likewise.
16529         * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
16530         (compute_argument_addresses, internal_arg_pointer_based_exp)
16531         (expand_call, emit_library_call_value_1): Likewise.
16532         * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
16533         * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
16534         * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
16535         * cse.c (insert_const_anchor, find_reg_offset_for_const)
16536         (use_related_value, fold_rtx): Likewise.
16537         * cselib.c (cselib_subst_to_values): Likewise.
16538         * dse.c (record_store, check_mem_read_rtx): Likewise.
16539         * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
16540         * emit-rtl.c (adjust_address_1): Likewise.
16541         * except.c (sjlj_emit_function_enter)
16542         (expand_builtin_extract_return_addr)
16543         (expand_builtin_frob_return_addr): Likewise.
16544         * expmed.c (expand_divmod): Likewise.
16545         * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
16546         (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
16547         (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
16548         * function.c (assign_stack_local_1)
16549         (instantiate_virtual_regs_in_rtx): Likewise.
16550         * optabs.c (prepare_cmp_insn): Likewise.
16551         * recog.c (offsettable_address_addr_space_p): Likewise.
16552         * reload.c (find_reloads_address, form_sum)
16553         (find_reloads_subreg_address): Likewise.
16554         * reload1.c (init_reload, eliminate_regs_1)
16555         (eliminate_regs_in_insn): Likewise.
16556         * simplify-rtx.c (simplify_unary_operation_1)
16557         (simplify_binary_operation_1, simplify_plus_minus): Likewise.
16558         * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
16559         (vt_add_function_parameter): Likewise.
16560
16561         * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
16562         * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
16563         * config/alpha/alpha.c (alpha_legitimize_address_1)
16564         (get_unaligned_address, alpha_expand_unaligned_load)
16565         (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
16566         (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
16567         (alpha_expand_builtin_establish_vms_condition_handler)
16568         (alpha_setup_incoming_varargs, emit_frame_store_1)
16569         (alpha_expand_prologue, alpha_expand_epilogue)
16570         (alpha_use_linkage): Likewise.
16571         * config/alpha/alpha.md: Likewise.
16572
16573         * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
16574         (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
16575         (thumb_legitimize_address, arm_gen_load_multiple_1)
16576         (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
16577         (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
16578         (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
16579         (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
16580         (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
16581         (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
16582         (thumb_expand_movmemqi, arm_set_return_address)
16583         (thumb_set_return_address): Likewise.
16584         * config/arm/arm.md: Likewise.
16585
16586         * config/avr/avr.c (avr_incoming_return_addr_rtx)
16587         (avr_prologue_setup_frame, expand_epilogue)
16588         (avr_const_address_lo16): Likewise.
16589
16590         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
16591         * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
16592         (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
16593         (bfin_output_mi_thunk): Likewise.
16594
16595         * config/c6x/c6x.c (c6x_initialize_trampoline)
16596         (c6x_output_mi_thunk): Likewise.
16597
16598         * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
16599         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
16600
16601         * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
16602         (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
16603         (cris_emit_movem_store, cris_trampoline_init): Likewise.
16604         * config/cris/cris.md: Likewise.
16605
16606         * config/darwin.c (machopic_indirect_data_reference)
16607         (machopic_legitimize_pic_address): Likewise.
16608
16609         * config/epiphany/epiphany.c (epiphany_emit_save_restore)
16610         (epiphany_expand_prologue, epiphany_expand_epilogue)
16611         (epiphany_trampoline_init): Likewise.
16612         * config/epiphany/epiphany.md: Likewise.
16613
16614         * config/fr30/fr30.c (fr30_move_double): Likewise.
16615
16616         * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
16617         (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
16618         (frv_index_memory, unspec_got_name, frv_find_base_term)
16619         (frv_output_dwarf_dtprel): Likewise.
16620
16621         * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
16622         (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
16623
16624         * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
16625         * config/i386/i386.c (setup_incoming_varargs_64)
16626         (setup_incoming_varargs_ms_64, choose_baseaddr)
16627         (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
16628         (ix86_emit_probe_stack_range, ix86_expand_prologue)
16629         (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
16630         (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
16631         (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
16632         (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
16633         (x86_output_mi_thunk): Likewise.
16634         * config/i386/i386.md: Likewise.
16635
16636         * config/ia64/ia64.c (ia64_expand_load_address)
16637         (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
16638         (do_spill, ia64_trampoline_init): Likewise.
16639
16640         * config/iq2000/iq2000.c (iq2000_va_start)
16641         (iq2000_emit_frame_related_store, iq2000_expand_prologue)
16642         (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
16643         (iq2000_print_operand, iq2000_legitimize_address): Likewise.
16644
16645         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16646
16647         * config/m32c/m32c.c (m32c_return_addr_rtx)
16648         (m32c_expand_insv): Likewise.
16649
16650         * config/m32r/m32r.c (m32r_setup_incoming_varargs)
16651         (m32r_legitimize_pic_address, m32r_print_operand)
16652         (m32r_print_operand_address): Likewise.
16653
16654         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
16655         * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
16656         (EH_RETURN_HANDLER_RTX): Likewise.
16657         * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
16658         (m68k_expand_epilogue, legitimize_pic_address)
16659         (m68k_output_mi_thunk): Likewise.
16660         * config/m68k/m68k.md: Likewise.
16661
16662         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
16663         (mcore_expand_epilog): Likewise.
16664         * config/mcore/mcore.md: Likewise.
16665
16666         * config/mep/mep.c (mep_allocate_initial_value)
16667         (mep_expand_prologue, mep_expand_epilogue): Likewise.
16668
16669         * config/microblaze/microblaze.c (double_memory_operand)
16670         (microblaze_block_move_loop): Likewise.
16671
16672         * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
16673         (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
16674         (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
16675         (mips_expand_prologue, mips_epilogue_set_cfa)
16676         (mips_expand_epilogue): Likewise.
16677         * config/mips/mips.md: Likewise.
16678
16679         * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
16680         (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
16681
16682         * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
16683         (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
16684
16685         * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
16686         (EH_RETURN_HANDLER_RTX): Likewise.
16687         * config/moxie/moxie.c (moxie_static_chain): Likewise.
16688
16689         * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
16690         (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
16691         (pa_return_addr_rtx, hppa_builtin_saveregs)
16692         (pa_trampoline_init): Likewise.
16693         * config/pa/pa.md: Likewise.
16694
16695         * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
16696
16697         * config/picochip/picochip.c (picochip_static_chain): Likewise.
16698
16699         * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
16700         * config/rs6000/rs6000.c (rs6000_legitimize_address)
16701         (setup_incoming_varargs, print_operand, rs6000_return_addr)
16702         (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
16703         (rs6000_emit_epilogue)
16704         (rs6000_machopic_legitimize_pic_address): Likewise.
16705
16706         * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
16707
16708         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
16709         (DYNAMIC_CHAIN_ADDRESS): Likewise.
16710         * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
16711         (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
16712         (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
16713         (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
16714         (s390_emit_epilogue, s390_function_profiler): Likewise.
16715         * config/s390/s390.md: Likewise.
16716
16717         * config/score/score.c (score_add_offset, score_prologue): Likewise.
16718
16719         * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
16720         (sh_output_mi_thunk): Likewise.
16721         * config/sh/sh.md: Likewise.
16722
16723         * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
16724         (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
16725         * config/sparc/sparc.c (sparc_legitimize_pic_address)
16726         (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
16727         (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
16728         (emit_and_preserve): Likewise.
16729         * config/sparc/sparc.md: Likewise.
16730
16731         * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
16732         * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
16733         (spu_setup_incoming_varargs, ea_load_store_inline)
16734         (spu_expand_load): Likewise.
16735
16736         * config/stormy16/stormy16.c (xstormy16_expand_prologue)
16737         (combine_bnp): Likewise.
16738
16739         * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
16740         * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
16741         (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
16742
16743         * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
16744         * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
16745         (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
16746
16747         * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
16748         * config/v850/v850.md: Likewise.
16749
16750         * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
16751         (EH_RETURN_HANDLER_RTX): Likewise.
16752         * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
16753         * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
16754         (print_operand_address, vax_trampoline_init): Likewise.
16755
16756         * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
16757         (xtensa_function_value_regno_p): Likewise.
16758
16759 2012-05-04  Andrew Pinski  <apinski@cavium.com>
16760
16761         * expr.c (get_def_for_expr_class): New function.
16762         (convert_tree_comp_to_rtx): New function.
16763         (expand_cond_expr_using_cmove): New function.
16764         (expand_expr_real_2 <case COND_EXPR>): Call
16765         expand_cond_expr_using_cmove first and return if it succeeds.
16766         Remove the check for HAVE_conditional_move since we should have
16767         already converted it to a conditional move.
16768         * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
16769         modes of DImode for 32bits and TImode.
16770
16771 2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>
16772
16773         PR other/29442
16774         * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
16775         (print_md_ptr_loc, print_c_condition): Use them.
16776         * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
16777         * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
16778         attr_file, dfa_file, latency_file): New global variables.
16779         (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
16780         write_upcase, write_indent, write_length_unit_log, write_test_expr,
16781         write_attr_get, write_insn_cases, write_eligible_delay,
16782         write_const_num_delay_slots): Accept FILE pointer and toss it around.
16783         Update all callers.
16784         (write_header, open_outfile, handle_arg): New funcions.
16785         (make_automaton_attrs): Write prototypes as extern to the output
16786         files.
16787         (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
16788         names from the command line.  Open the output files and write out
16789         internal functions for DFA functions to dfa_file_name, insn latency
16790         functions to latency_file_name, and everything else to attr_file.
16791         * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
16792         (BACKEND): Build libbackend first.
16793         (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
16794         (.PRECIOUS): Likewise.
16795         (insn-dfatab.o): New rule.
16796         (insn-latencytab.o): New rule.
16797         (simple_rtl_generated_c): Do not include insn-attrtab.c.
16798         (s-attrtab): New rule.
16799
16800 2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>
16801
16802         * rtl.def (ATTR_FLAG): Remove probability indicating flags.
16803         * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
16804         ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
16805         * reorg.c (get_jump_flags): Do not set the removed flags.
16806
16807         * doc/md.texi (attr_flag): Update for abovementioned changes.
16808
16809 2012-05-04  Uros Bizjak  <ubizjak@gmail.com>
16810
16811         PR target/53228
16812         * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
16813         (TARGET_CMOV): Rename from TARGET_CMOVE.
16814         (TARGET_CMOVE): New define.
16815         * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
16816         Do not set TARGET_CMOVE here.
16817
16818 2012-05-04  Dodji Seketeli  <dodji@redhat.com>
16819
16820         Enable -Wunused-local-typedefs when -Wall or -Wunused is on
16821         * opts.c (finish_options): Activate -Wunused-local-typedefs if
16822         -Wunused is activated.
16823         * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
16824
16825 2012-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16826
16827         * config/s390/s390.md (*movmem_short, *clrmem_short)
16828         (*cmpmem_short): Move the mode check from the insn condition to
16829         the match_scratch.
16830
16831 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
16832
16833         PR tree-optimization/52633
16834         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
16835         vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
16836         (vect_recog_over_widening_pattern): Remove handling of code that was
16837         already detected as over-widening pattern.  Remove special handling
16838         of "unsigned" cases.  Instead, support general case of conversion
16839         of the shift result to another type.
16840
16841 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
16842
16843         * tree-vect-patterns.c (vect_single_imm_use): New function.
16844         (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
16845         (vect_recog_over_widening_pattern): Likewise.
16846         (vect_recog_widen_shift_pattern): Likewise.
16847
16848 2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>
16849
16850         * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
16851         (vect_handle_widen_op_by_const): Use it instead of open-coding test.
16852         (vect_recog_widen_mult_pattern): Likewise.
16853         (vect_operation_fits_smaller_type): Likewise.
16854         (vect_recog_over_widening_pattern): Likewise.
16855         (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
16856
16857 2012-05-04  Richard Guenther  <rguenther@suse.de>
16858
16859         PR lto/50602
16860         * lto-wrapper.c (merge_and_complain): Complain about mismatches
16861         of -freg-struct-return and -fpcc-struct-return.
16862         (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
16863         from the input file options and ignore those from the link
16864         command line.
16865
16866 2012-05-04  Richard Guenther  <rguenther@suse.de>
16867
16868         PR tree-optimization/53168
16869         * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
16870         memory reads when the result is a constant we can pun.
16871
16872 2012-05-04  Richard Guenther  <rguenther@suse.de>
16873
16874         * common.opt (flto-report): Do not mark as Optimization.
16875
16876 2012-05-04  Eric Botcazou  <ebotcazou@adacore.com>
16877
16878         PR target/48496
16879         * recog.c (constrain_operands): If extra constraints are present, also
16880         accept pseudo-registers with equivalent memory locations during reload.
16881
16882 2012-05-04  Olivier Hainque  <hainque@adacore.com>
16883
16884         * collect2.c (may_unlink_output_file): New global.
16885         (maybe_unlink): Honor it.
16886         * collect2.h: Add extern for it.
16887         * tlink.c (do_tlink): Set it to true if the link succeeded.
16888
16889 2012-05-04  Olivier Hainque  <hainque@adacore.com>
16890
16891         * gcc.c (eval_spec_function): Finalize/restore the current string
16892         obstack state as part of the context push/pop operations.
16893
16894 2012-05-04  Bin Cheng  <bin.cheng@arm.com>
16895
16896         PR rtl-optimization/52804
16897         * reload1.c (reload_reg_reaches_end_p): Check whether successor
16898         reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
16899         of current one with type RELOAD_FOR_INPADDR_ADDRESS.
16900         Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
16901         RELOAD_FOR_OUTADDR_ADDRESS.
16902
16903 2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16904
16905         PR c++/24985
16906         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
16907         for macro expansion.
16908
16909 2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16910
16911         * flags.h (flag_permissive): Do not declare.
16912         * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
16913         option specially.
16914         * toplev.c (flag_permissive): Do not define.
16915         * c-tree.h (system_header_p): Delete unused.
16916
16917 2012-05-03  David S. Miller  <davem@davemloft.net>
16918
16919         PR target/52684
16920         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
16921         MEM directly into a libcall, mark it's MEM_EXPR as addressable.
16922         (sparc_emit_float_lib_cmp): Likewise.
16923
16924 2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16925
16926         PR target/53199
16927         * config/rs6000/rs6000.md (bswapdi splitters): If
16928         -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
16929         default) is used, generate an alternate sequence that does not
16930         depend on using indexed addressing.
16931
16932 2012-05-03  Jason Merrill  <jason@redhat.com>
16933
16934         * gengtype.c (write_types): Fix warning message.
16935         (write_local): Likewise.
16936
16937 2012-05-02  Jason Merrill  <jason@redhat.com>
16938
16939         * dwarf2out.c (struct external_ref, build_local_stub): New.
16940         (hash_external_ref, external_ref_eq, lookup_external_ref): New.
16941         (optimize_external_refs, optimize_external_refs_1): New.
16942         (change_AT_die_ref): New.
16943         (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
16944         (build_abbrev_table): Take the external refs hashtable.
16945         (output_comp_unit): Get it from optimize_external_refs and pass it in.
16946
16947 2012-05-03  Jan Hubicka  <jh@suse.cz>
16948
16949         PR middle-end/53093
16950         * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
16951
16952 2012-05-03  Jan Hubicka  <jh@suse.cz>
16953
16954         PR middle-end/53106
16955         * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
16956
16957 2012-05-03  Jason Merrill  <jason@redhat.com>
16958
16959         * dwarf2out.c (die_struct): Add comdat_type_p flag.  Use it instead of
16960         use_debug_types to discriminate the die_id union.
16961         (print_die, assign_symbol_names, copy_decls_walk): Likewise.
16962         (build_abbrev_table, output_die): Likewise.
16963         (prune_unused_types_walk_attribs): Likewise.
16964         (generate_type_signature, copy_declaration_context): Set it.
16965         (remove_child_or_replace_with_skeleton): Set it.
16966         (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
16967         check use_debug_types.
16968         (dwarf2out_finish): Do break_out_includes after .debug_types.
16969
16970 2012-05-03  Jason Merrill  <jason@redhat.com>
16971
16972         * dwarf2out.c (modified_type_die): Use scope_die_for.
16973         (gen_type_die_with_usage, dwarf2out_finish): Likewise.
16974         (uses_local_type_r, uses_local_type): New.
16975         (scope_die_for): Keep a type that uses a local type in local scope.
16976         Use get_context_die for namespace and type scope.
16977
16978 2012-05-03  Jason Merrill  <jason@redhat.com>
16979
16980         * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
16981         pc thunk.
16982         * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
16983         (dwarf2out_finish): Likewise.
16984
16985 2012-05-03  Martin Jambor  <mjambor@suse.cz>
16986
16987         * builtins.c (get_object_alignment_1): Return whether we can determine
16988         the alignment or conservatively assume byte alignment.  Return the
16989         alignment by reference.  Use get_pointer_alignment_1 for dereference
16990         alignment.
16991         (get_pointer_alignment_1): Return whether we can determine the
16992         alignment or conservatively assume byte alignment.  Return the
16993         alignment by reference.  Use get_ptr_info_alignment to get SSA name
16994         alignment.
16995         (get_object_alignment): Update call to get_object_alignment_1.
16996         (get_object_or_type_alignment): Likewise, fall back to type alignment
16997         only when it returned false.
16998         (get_pointer_alignment): Update call to get_pointer_alignment_1.
16999         * fold-const.c (get_pointer_modulus_and_residue): Update call to
17000         get_object_alignment_1.
17001         * ipa-prop.c (ipa_modify_call_arguments): Update call to
17002         get_pointer_alignment_1.
17003         * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
17004         of MEM_REF or TARGET_MEM_REF only when it returns false.
17005         * tree-ssa-ccp.c (get_value_from_alignment): Update call to
17006         get_object_alignment_1.
17007         (ccp_finalize): Use set_ptr_info_alignment.
17008         * tree.h (get_object_alignment_1): Update declaration.
17009         (get_pointer_alignment_1): Likewise.
17010         * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
17011         (dump_gimple_stmt): Likewise.
17012         * tree-flow.h (ptr_info_def): Updated comments of fields align and
17013         misalign.
17014         (get_ptr_info_alignment): Declared.
17015         (mark_ptr_info_alignment_unknown): Likewise.
17016         (set_ptr_info_alignment): Likewise.
17017         (adjust_ptr_info_misalignment): Likewise.
17018         * tree-ssa-address.c (copy_ref_info): Use new access functions to get
17019         and set alignment of SSA names.
17020         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
17021         mark_ptr_info_alignment_unknown.
17022         * tree-ssanames.c (get_ptr_info_alignment): New function.
17023         (mark_ptr_info_alignment_unknown): Likewise.
17024         (set_ptr_info_alignment): Likewise.
17025         (adjust_ptr_info_misalignment): Likewise.
17026         (get_ptr_info): Call mark_ptr_info_alignment_unknown.
17027         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17028         Likewise.
17029         (bump_vector_ptr): Likewise.
17030         * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
17031         (vectorizable_store): Likewise.
17032         (vectorizable_load): Likewise.
17033
17034 2012-05-03  Michael Matz  <matz@suse.de>
17035
17036         * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
17037         in front of basic_block_def.
17038         (struct basic_block_def): Make il.gimple the full struct, not a
17039         pointer.
17040         (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
17041
17042         * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
17043         * gimple-iterator.c (gimple_stmt_iterator): Don't special case
17044         NULL il.gimple, which can't happen anymore.
17045         * gimple.h (bb_seq): il.gimple can't be NULL.
17046         (bb_seq_add): Ditto.
17047         (set_bb_seq): Adjust.
17048         (gsi_start_bb, gsi_last_bb): Tidy.
17049         * lto-streamer-in.c (make_new_block): Don't zero members that
17050         are zeroed already, don't allocate a gimple_bb_info.
17051         * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
17052         (remove_bb): Clear all il.gimple members.
17053         (gimple_verify_flow_info): Adjust for flat il.gimple.
17054         * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
17055
17056         * coretypes.h (const_gimple_seq): Remove typedef.
17057         * gimple.h (gimple_seq_first): Take gimple_seq.
17058         (gimple_seq_first_stmt): Ditto.
17059         (gimple_seq_last): Ditto.
17060         (gimple_seq_last_stmt): Ditto.
17061         (gimple_seq_empty_p): Ditto.
17062
17063 2012-05-03  Richard Guenther  <rguenther@suse.de>
17064
17065         * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
17066         operations.
17067         (prune_clobbered_mems): Do it here.  Do not uselessly sort expressions.
17068         (compute_avail): Do not add possibly trapping operations to
17069         EXP_GEN if they might not be executed in the block.
17070
17071 2012-05-03  Uros Bizjak  <ubizjak@gmail.com>
17072
17073         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
17074
17075 2012-05-03  Steven Bosscher  <steven@gcc.gnu.org>
17076
17077         * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
17078         information as early as possible.  Update dominance info instead of
17079         discarding it.
17080
17081 2012-05-03  Richard Guenther  <rguenther@suse.de>
17082
17083         * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
17084         (union_contains_value): Remove.
17085         (vro_valid_in_sets): Likewise.
17086         (op_valid_in_sets): New function.
17087         (valid_in_sets): Use op_valid_in_sets.
17088         (insert_into_preds_of_block): Move dumping ...
17089         (do_regular_insertion): ... here.
17090         (do_partial_partial_insertion): ... and here.  Dump that
17091         we've found a partial partial redundancy.
17092         (insert): Dump the current insert iteration.
17093
17094 2012-05-03  Jakub Jelinek  <jakub@redhat.com>
17095
17096         PR plugins/53126
17097         * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
17098         append program name to it and pass that as first argument
17099         to make_relative_prefix.  Always pass standard_libexec_prefix
17100         as last argument to make_relative_prefix.  If
17101         make_relative_prefix returns NULL, fall back to
17102         standard_libexec_prefix.
17103
17104         PR debug/53174
17105         * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
17106         removed.
17107
17108         PR target/53187
17109         * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
17110         mode, return that mode.
17111
17112         PR target/53194
17113         * config/i386/i386-c.c (ix86_target_macros_internal): Don't
17114         define __ATOMIC_HLE_* macros here.
17115         (ix86_target_macros): But here, using cpp_define_formatted.
17116
17117 2012-05-03  Richard Guenther  <rguenther@suse.de>
17118
17119         PR tree-optimization/53144
17120         * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
17121         Rename to ...
17122         (vn_reference_lookup_or_insert_for_pieces): ... this.  Properly deal
17123         with SSA name values.
17124         (vn_reference_lookup_3): Adjust callers.
17125
17126 2012-05-03  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
17127
17128         * config/i386/driver-i386.c (host_detect_local_cpu): Reset
17129         has_fma4 for AMD processors with both fma3 and fma4 support.
17130
17131 2012-05-03  Kirill Yukhin  <kirill.yukhin@intel.com>
17132
17133         PR target/53201
17134         * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
17135         "-mno-hle".
17136
17137 2012-05-03  Michael Matz  <matz@suse.de>
17138
17139         PR bootstrap/53197
17140         * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
17141         (dse_enter_block): Properly iterate the whole sequence even
17142         if the last statement was removed.
17143
17144 2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>
17145
17146         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
17147         unset flag_jump_tables.
17148         * stmt.c (expand_case): Remove special flag_pic case conditional
17149         on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
17150
17151 2012-05-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
17152
17153         * common/config/s390/s390-common.c (s390_option_optimization_table):
17154         Enable -fsched-pressure using -fsched-pressure-algorithm=model by
17155         default when optimizing.
17156
17157 2012-05-02  Martin Jambor  <mjambor@suse.cz>
17158
17159         PR lto/52605
17160         * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
17161         of a variable when the contect is a function.
17162
17163 2012-05-02  Michael Matz  <matz@suse.de>
17164
17165         * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
17166         * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
17167         (const_gimple_seq_node): Remove.
17168         (gimple_seq_node): Typedef as gimple.
17169         (struct gimple_statement_base): Add next and prev members,
17170         adjust all WORD markers in using structs.
17171         (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
17172         (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
17173         gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
17174         gimple are the same.
17175         (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
17176         gimple_seq, adjust.
17177         (gimple_init_singleton): New function.
17178         (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
17179         (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
17180         (gsi_stmt): Adjust.
17181         (gsi_stmt_ptr): Remove.
17182         (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
17183
17184         * gimple-iterator.c (update_bb_for_stmts): Take last parameter
17185         again, adjust for above changes.
17186         (update_call_edge_frequencies): Adjust for above changes.
17187         (gsi_insert_seq_nodes_before): Rewrite for new data structure.
17188         (gsi_insert_seq_nodes_after): Ditto.
17189         (gsi_split_seq_after): Ditto.
17190         (gsi_set_stmt): Ditto.
17191         (gsi_split_seq_before): Ditto.
17192         (gsi_remove): Ditto.
17193         (gsi_insert_seq_before_without_update): Don't free sequence.
17194         (gsi_insert_seq_after_without_update): Ditto.
17195         (gsi_replace): Assert some more invariants.
17196         (gsi_insert_before_without_update, gsi_insert_after_without_update):
17197         Tidy.
17198         (gsi_for_stmt): Don't search for stmt.
17199         (gsi_insert_on_edge_immediate): Tidy.
17200
17201         * gimple.c (gimple_alloc_k): Remove "sequences".
17202         (gimple_seq_cache): Remove.
17203         (gimple_alloc_stat): Make stmt a singleton sequence.
17204         (gimple_seq_alloc, gimple_seq_free): Remove.
17205         (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
17206         (gimple_copy): Ditto.
17207         * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
17208         create iterator from correct sequence.
17209         * tree-phinodes.c (make_phi_node): Make stmt a singleton.
17210
17211 2012-05-02  Michael Matz  <matz@suse.de>
17212
17213         * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
17214         gimple_seq.
17215         (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
17216         sequence, lazily allocate it.
17217         (bb_seq_addr): New function.
17218         (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
17219         (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
17220         (gsi_none): New function.
17221         (gsi_start_bb): Adjust.
17222         (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
17223         (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
17224         (gsi_last_bb): Adjust.
17225         (gsi_seq): Adjust.
17226         * tree-flow-inline.h (phi_nodes_ptr): New function.
17227
17228         * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
17229         datastructure and interface change.
17230         (gsi_insert_seq_before_without_update): Ditto.
17231         (gsi_insert_seq_nodes_after): Ditto.
17232         (gsi_insert_seq_after_without_update): Ditto.
17233         (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
17234         (gsi_split_seq_before): Ditto.
17235         (gsi_start_phis): Adjust.
17236         * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
17237         (vect_transform_loop): Ditto.
17238         * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
17239         gimple_seq_copy): Don't use gimple_seq_alloc.
17240         * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
17241         (gimplify_seq_add_seq): Ditto.
17242         * lto-streamer-in.c (make_new_block): Ditto.
17243         * tree-cfg.c (create_bb): Ditto.
17244         * tree-sra.c (initialize_parameter_reductions): Ditto.
17245
17246 2012-05-02  Michael Matz  <matz@suse.de>
17247
17248         * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
17249         gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
17250         gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
17251         set_bb_seq): Move down to after gimple_statement_d definition.
17252
17253 2012-05-02  Michael Matz  <matz@suse.de>
17254
17255         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
17256         gsi_replace_with_seq, instead of inserting itself.
17257         * gimple-iterator.c (gsi_replace_with_seq): New function.
17258         * tree-ssa-forwprop.c (forward_propagate_comparison): Take
17259         iterator instead of statement, advance it.
17260         (ssa_forward_propagate_and_combine): Adjust call to above.
17261
17262 2012-05-02  Michael Matz  <matz@suse.de>
17263
17264         * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
17265         gimple_seq_alloc.
17266         * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
17267         * tree-nested.c (walk_gimple_omp_for): Ditto.
17268         * trans-mem.c (lower_transaction): Ditto.
17269         * tree-eh.c (do_return_redirection): Ditto.
17270         (do_goto_redirection): Ditto.
17271         (lower_try_finally_switch): Ditto.
17272         * gimplify.c (gimplify_stmt): Ditto.
17273         (gimplify_scan_omp_clauses): Ditto.
17274         (gimplify_omp_for): Ditto.
17275         (gimplify_function_tree): Ditto.
17276         * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
17277         * tree-mudflap.c (mf_decl_cache_locals): Ditto.
17278         (mf_build_check_statement_for): Ditto.
17279         (mx_register_decls): Ditto.
17280         * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
17281         and don't use itertors to append.
17282         (insert_stmts): Ditto.
17283         (insert_out_of_ssa_copy): Ditto.
17284         (insert_out_of_ssa_copy_on_edge): Ditto.
17285
17286 2012-05-02  Michael Matz  <matz@suse.de>
17287
17288         * gimple.h (gimple_bind_body_ptr): New function.
17289         (gimple_bind_body): Use it.
17290         (gimple_catch_handler): Use gimple_catch_handler_ptr.
17291         (gimple_eh_filter_failure_ptr): New function.
17292         (gimple_eh_filter_failure): Use it.
17293         (gimple_eh_else_n_body_ptr): New function.
17294         (gimple_eh_else_n_body): Use it.
17295         (gimple_eh_else_e_body_ptr): New function.
17296         (gimple_eh_else_e_body): Use it.
17297         (gimple_try_eval_ptr): New function.
17298         (gimple_try_eval): Use it.
17299         (gimple_try_cleanup_ptr): New function.
17300         (gimple_try_cleanup): Use it.
17301         (gimple_wce_cleanup_ptr): New function.
17302         (gimple_wce_cleanup): Use it.
17303         (gimple_omp_body_ptr): New function.
17304         (gimple_omp_body): Use it.
17305         (gimple_omp_for_pre_body_ptr): New function.
17306         (gimple_omp_for_pre_body): Use it.
17307         (gimple_transaction_body_ptr): New function.
17308         (gimple_transaction_body): Use it.
17309         (gsi_split_seq_before): Adjust to return nothing and take pointer
17310         to sequence.
17311         (gsi_set_stmt): Declare.
17312         (gsi_replace_with_seq): Declare.
17313         (walk_gimple_seq_mod): Declare.
17314         * function.h (struct function <gimple_body>): Use typedef gimple_seq.
17315
17316         * gimple-iterator.c (gsi_set_stmt): New function.
17317         (gsi_split_seq_before): Return new sequence via pointer argument.
17318         (gsi_replace): Use gsi_set_stmt.
17319
17320         * tree-ssa-loop-im.c (move_computations_stmt): First remove
17321         then insert stmt.
17322         * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
17323         * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
17324         return new stmt.
17325         (reserve_phi_args_for_new_edge): Change call to above,
17326         use gsi_set_stmt.
17327
17328         * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
17329         (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
17330         iterators.  Adjust call to lower_omp.
17331         (lower_lastprivate_clauses): Adjust call to lower_omp.
17332         (lower_reduction_clauses): Ditto.
17333         (expand_omp_taskreg): Nullify non-cfg body of child_fn.
17334         (lower_omp_sections): Don't explicitely count sequence length,
17335         nullify lowered bodies earlier, ensure stmts are part of only
17336         one sequence, adjust call to lower_omp.
17337         (lower_omp_single): Ensure stmts are part of only one sequence,
17338         adjust call to lower_omp.
17339         (lower_omp_master): Ditto.
17340         (lower_omp_ordered): Ditto.
17341         (lower_omp_critical): Ditto.
17342         (lower_omp_for): Ditto.
17343         (lower_omp_taskreg): Ditto, tidy.
17344         (lower_omp_1): Adjust calls to lower_omp.
17345         (execute_lower_omp): Ditto.
17346         (lower_omp): Adjust to take pointer to sequence.
17347         (diagnose_sb_2): Use walk_gimple_seq_mod.
17348         (diagnose_omp_structured_block_errors): Ditto and set possibly
17349         changed function body.
17350         * gimple-low.c (lower_function_body): Set function body after
17351         it stabilizes.
17352         (lower_sequence): Adjust to take pointer to sequence.
17353         (lower_omp_directive): Ensure stmt isn't put twice into the
17354         sequence, adjust call to lower_sequence.
17355         (lower_stmt): Adjust calls to lower_sequence.
17356         (lower_gimple_bind): Ditto.
17357         (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
17358         * tree-nested.c (walk_body): Take pointer to sequence, use
17359         walk_gimple_seq_mod.
17360         (walk_function): Adjust call to walk_body, set possibly changed body.
17361         (walk_gimple_omp_for): Adjust calls to walk_body.
17362         (convert_nonlocal_omp_clauses): Ditto.
17363         (convert_nonlocal_reference_stmt): Ditto.
17364         (convert_local_omp_clauses): Ditto.
17365         (convert_local_reference_stmt): Ditto.
17366         (convert_tramp_reference_stmt): Ditto.
17367         (convert_gimple_call): Ditto.
17368         (convert_nl_goto_reference): Use local iterator copy.
17369         * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
17370         but taking pointer to sequence, ensure gsi_start is called with
17371         callers lvalue.
17372         (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
17373         asserting that the sequence head didn't change.
17374         (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
17375         walk_gimple_seq_mod.
17376         * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
17377         (execute_lower_tm): Ditto, and set possibly changed body.
17378         * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
17379         call gsi_start with that lvalue.
17380         (replace_goto_queue_stmt_list): Ditto.
17381         (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
17382         (replace_goto_queue): Ditto.
17383         (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
17384         (lower_try_finally_onedest): Ditto.
17385         (lower_try_finally_copy): Ditto.
17386         (lower_try_finally_switch): Ditto.
17387         (lower_try_finally): Ditto.
17388         (lower_eh_filter): Ditto.
17389         (lower_eh_must_not_throw): Ditto.
17390         (lower_cleanup): Ditto.
17391         (lower_eh_constructs_2): Ditto.
17392         (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
17393         (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
17394         set possibly changed body.
17395         (optimize_double_finally): Call gsi_start with lvalue.
17396
17397         * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
17398         (gimple_split_block): Ditto.
17399         (gimple_merge_blocks): Use gsi_start_phis.
17400         (move_stmt_r): Use walk_gimple_seq_mod.
17401         * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
17402         * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
17403         (rebuild_cgraph_edges): Ditto.
17404         (cgraph_rebuild_references): Ditto.
17405         * ipa-prop.c (ipa_analyze_params_uses): Ditto.
17406         * tree-inline.c (copy_phis_for_bb): Ditto.
17407         * tree-ssa-dce.c: Ditto.
17408
17409         * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
17410
17411 2012-05-02  Kirill Yukhin  <kirill.yukhin@intel.com>
17412             Andi Kleen  <ak@linux.intel.com>
17413
17414         * coretypes.h (MEMMODEL_MASK): New.
17415         * builtins.c (get_memmodel): Add val. Call target.memmodel_check
17416         and return new variable.
17417         (expand_builtin_atomic_exchange):  Mask memmodel values.
17418         (expand_builtin_atomic_compare_exchange): Ditto.
17419         (expand_builtin_atomic_load): Ditto.
17420         (expand_builtin_atomic_store): Ditto.
17421         (expand_builtin_atomic_clear): Ditto.
17422         * doc/extend.texi: Mention port-dependent memory model flags.
17423         * config/i386/cpuid.h (bit_HLE): New.
17424         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
17425         HLE support.
17426         * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
17427         * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
17428         (ix86_target_string)<-mhle>: New.
17429         (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
17430         * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
17431         (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
17432         (ix86_option_override_internal) <PTA_HLE>: New switch, set it
17433         enabled for generic, generic64 and core-avx2.
17434         (ix86_print_operand): Generate HLE lock prefixes.
17435         (ix86_memmodel_check): New.
17436         (TARGET_MEMMODEL_CHECK): Ditto.
17437         * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
17438         (IX86_HLE_ACQUIRE): Ditto.
17439         (IX86_HLE_RELEASE): Ditto.
17440         * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
17441         * config/i386/i386.opt (mhle): Ditto.
17442         * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
17443         success model to instruction emitter.
17444         (atomic_fetch_add<mode>): Ditto.
17445         (atomic_exchange<mode>): Ditto.
17446         (atomic_add<mode>): Ditto.
17447         (atomic_sub<mode>): Ditto.
17448         (atomic_<code><mode>): Ditto.
17449         (*atomic_compare_and_swap_doubledi_pic): Ditto.
17450         (atomic_compare_and_swap_single<mode>): Define and use argument
17451         for success model.
17452         (atomic_compare_and_swap_double<mode>): Ditto.
17453         * configure.ac: Check if assembler support HLE prefixes.
17454         * configure: Regenerate.
17455         * config.in: Ditto.
17456
17457 2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>
17458
17459         PR middle-end/53153
17460         * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
17461         split out from ...
17462         (gimplify_switch_expr): ... here.
17463         * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
17464         * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
17465         to clean up case labels with values outside the index type range.
17466         (simplify_gimple_switch): Call it if something changed.
17467         Remove strange and unnecessary assert.
17468
17469 2012-05-02  Richard Guenther  <rguenther@suse.de>
17470
17471         * fold-const.c (div_if_zero_remainder): sizetypes no longer
17472         sign-extend.
17473         (int_const_binop_1): New worker for int_const_binop with
17474         overflowable parameter.  Pass it through to force_fit_type_double.
17475         (int_const_binop): Wrap around int_const_binop_1 with overflowable
17476         equal to one.
17477         (size_binop_loc): Call int_const_binop_1 with overflowable equal
17478         to minus one, forcing overflow detection for even unsigned types.
17479         (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
17480         (fold_binary_loc): Call try_move_mult_to_index with signed offset.
17481         * stor-layout.c (initialize_sizetypes): sizetypes no longer
17482         sign-extend.
17483         (layout_type): For zero-sized arrays ignore overflow on the
17484         size calculations.
17485         * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
17486         (bit_value_binop_1): Likewise.
17487         * tree.c (double_int_to_tree): Likewise.
17488         (double_int_fits_to_tree_p): Likewise.
17489         (force_fit_type_double): Likewise.
17490         (host_integerp): Likewise.
17491         (int_fits_type_p): Likewise.
17492         * varasm.c (output_constructor_regular_field): Sign-extend the
17493         field-offset to cater for negative offsets produced by the Ada
17494         frontend.
17495         * omp-low.c (extract_omp_for_data): Convert the loop step to
17496         signed for pointer adjustments.
17497
17498 2012-05-02  Richard Guenther  <rguenther@suse.de>
17499
17500         * tree.c (valid_constant_size_p): New function.
17501         * tree.h (valid_constant_size_p): Declare.
17502         * cfgexpand.c (expand_one_var): Adjust check for too large
17503         variables by using valid_constant_size_p.
17504         * varasm.c (assemble_variable): Likewise.
17505
17506         * c-decl.c (grokdeclarator): Properly check for sizes that
17507         cover more than half of the address-space.
17508
17509 2012-05-02  Jakub Jelinek  <jakub@redhat.com>
17510
17511         PR tree-optimization/53163
17512         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
17513         return value from compute_all_dependences.
17514
17515         PR rtl-optimization/53160
17516         * ree.c (combine_reaching_defs): Handle the case where cand->insn
17517         has been modified by ree pass already.
17518
17519 2012-05-01  Ian Lance Taylor  <iant@google.com>
17520
17521         PR c/37303
17522         * c-decl.c (build_compound_literal): Make the decl readonly if it
17523         an array of a readonly type.
17524         * gimplify.c (gimplify_compound_literal_expr): Add fallback
17525         parameter.  Change all callers.  If the decl is not addressable
17526         and is not an l-value, make it readonly.
17527
17528 2012-05-01  Bernd Schmidt  <bernds@codesourcery.com>
17529
17530         * ira.c (allocated_reg_info_size): New static variable.
17531         (expand_reg_info): Manage it. Call
17532         setup_preferred_alternate_classes_for_new_pseudos.
17533         (ira): Don't do it here.  Remove local allocated_reg_info_size,
17534         set the global before calling find_moveable_pseudos.
17535         (find_moveable_pseudos): Call expand_reg_info rather than
17536         resize_reg_info.
17537
17538 2012-05-01  Richard Henderson  <rth@redhat.com>
17539
17540         * common.opt (fsync-libcalls): New.
17541         * doc/invoke.texi: Document it.
17542         * optabs.c (init_sync_libfuncs): Honor it.
17543
17544 2012-05-01  Kenneth Zadeck  <zadeck@naturalbridge.com>
17545             Richard Sandiford  <r.sandiford@uk.ibm.com>
17546
17547         PR rtl-optimization/52543
17548         * Makefile.in (lower-subreg.o, target-globals.o): Depend on
17549         lower-subreg.h.
17550         * lower-subreg.h: New file.
17551         * target-globals.h (this_target_lower_subreg): Declare.
17552         (target_globals): Add lower_subreg;
17553         (restore_target_globals): Restore this_target_lower_subreg.
17554         * target-globals.c: Include it.
17555         (default_target_globals): Add default_target_lower_subreg.
17556         (save_target_globals): Initialize target_lower_subreg.
17557         * rtl.h (init_lower_subreg): Added declaration.
17558         * toplev.c (backend_init_target): Call initializer for lower-subreg
17559         pass.
17560         * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
17561         (default_target_lower_subreg): New variable.
17562         (this_target_lower_subreg): Likewise.
17563         (twice_word_mode, choices): New macros.
17564         (shift_cost, compute_splitting_shift, compute_costs)
17565         (init_lower_subreg): New functions.
17566         (resolve_simple_move): Add speed_p argument.  Check choices.
17567         (find_pseudo_copy): Don't check the mode size here.
17568         (resolve_simple_move): Assert the mode size.
17569         (find_decomposable_shift_zext): Add speed_p argument and return
17570         a bool.  Check choices.
17571         (resolve_shift_zext): Add comment.
17572         (dump_shift_choices, dump_choices): New functions.
17573         (decompose_multiword_subregs): Dump list of profitable
17574         transformations.  Add code to skip non profitable transformations.
17575         Update calls to simple_move and find_decomposable_shift_zext.
17576
17577 2012-05-01  Ian Bolton  <ian.bolton@arm.com>
17578             Sameera Deshpande  <sameera.deshpande@arm.com>
17579             Greta Yorsh  <greta.yorsh@arm.com>
17580
17581         * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
17582         (thumb1_unexpanded_epilogue): ...this.
17583         * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
17584         (thumb1_unexpanded_epilogue): ...this.
17585         * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
17586         (thumb1_unexpanded_epilogue): ...this.
17587
17588 2012-05-01  Richard Earnshaw  <rearnsha@arm.com>
17589
17590         * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
17591         comparing enumeration values.  Update comments.
17592
17593 2012-05-01  Alan Modra  <amodra@gmail.com>
17594
17595         PR target/53038
17596         * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
17597         load_cr_save, add_crlr_cfa_restore): New functions.
17598         (rs6000_restore_saved_cr): Rename to..
17599         (restore_saved_cr): ..this.  Add cfa_restore notes for cr.
17600         (rs6000_emit_epilogue): Use new functions.  Adjust condition
17601         for emitting lr and cr cfa_restore.  Emit cfa_restores for fp
17602         regs when using out-of-line restore only when shrink wrapping.
17603
17604 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
17605
17606         PR middle-end/53136
17607         * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
17608         calls to cgraph_node_name in xstrdup.
17609         (ipa_make_edge_direct_to_target): Ditto.
17610         * cgraph.c (dump_cgraph_node): Ditto.
17611         * tree-sra.c (convert_callers_for_node): Ditto.
17612         * lto-symtab.c (lto_cgraph_replace_node): Ditto.
17613         * ipa-cp.c (perhaps_add_new_callers): Ditto.
17614         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
17615         (cgraph_materialize_all_clones): Ditto.
17616         * ipa-inline.c (report_inline_failed_reason): Ditto.
17617         (want_early_inline_function_p): Ditto.
17618         (edge_badness): Ditto.
17619         (update_edge_key): Ditto.
17620         (flatten_function): Ditto.
17621         (ipa_inline): Ditto.
17622         (inline_always_inline_functions): Ditto.
17623         (early_inline_small_functions): Ditto.
17624
17625 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
17626
17627         PR target/53141
17628         * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
17629         constraints 0 and 1.
17630
17631 012-04-30  Jan Hubicka  <jh@suse.cz>
17632
17633         * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
17634         (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
17635         (cgraph_add_to_same_comdat_group): Remove.
17636         (cgraph_add_asm_node): Move to cgraphunit.c.
17637         (cgraph_make_decl_local): Move to symtab.c
17638         (cgraph_make_node_local_1): Update.
17639         (cgraph_can_remove_if_no_direct_calls_and): Update.
17640         (used_from_object_file_p): Update.
17641         (resolution_used_from_other_file_p): Move to symtab.c
17642         (cgraph_used_from_object_file_p): move to symtab.c
17643         (verify_cgraph_node): Verify same comdat groups.
17644         * cgraph.h (cgraph_asm_node): Rename to ...
17645         (asm_node): ... this one.
17646         (cgraph_asm_nodes): Rename to ...
17647         (asm_nodes): ... this one.
17648         (symtab_add_to_same_comdat_group): New function.
17649         (symtab_dissolve_same_comdat_group_list): New function.
17650         (symtab_used_from_object_file_p): Declare.
17651         (symtab_make_decl_local): Declare.
17652         (cgraph_add_to_same_comdat_group): Remove.
17653         (cgraph_add_asm_node): Remove.
17654         (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
17655         Remove.
17656         (cgraph_finalize_compilation_unit): Rename to ...
17657         (finalize_compilation_unit): ... this one.
17658         (cgraph_optimize): Rename to ....
17659         (compile): ... this one.
17660         (add_asm_node): Declare.
17661         (fixup_same_cpp_alias_visibility): Declare.
17662         (cgraph_make_decl_local): Remove.
17663         (varpool_assemble_pending_decls): Rename to ...
17664         (varpool_output_variables): ... this one.
17665         (varpool_remove_unreferenced_decls): Remove.
17666         * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
17667         (preserve_function_body_p): Make static.
17668         * toplev.c (compile_file): Update comments; update.
17669         * cgraphunit.c: Update comments.
17670         (cgraph_expand_all_functions): Rename to ...
17671         (expand_all_functions): ... this one; update.
17672         (cgraph_mark_functions_to_output): Rename to ...
17673         (mark_functions_to_output): ... this one; cleanup.
17674         (cgraph_output_pending_asms): Remove prototype.
17675         (asm_nodes, asm_last_node): New static vars.
17676         (cgraph_process_new_functions): Update.
17677         (cgraph_reset_node): Cleanup; add comment.
17678         (cgraph_add_new_function): Update.
17679         (cgraph_output_pending_asms): Rename to ...
17680         (output_asm_statements): ... this one.
17681         (add_asm_node): New function.
17682         (fixup_same_cpp_alias_visibility): New function based on code
17683         in cgraph_analyze_function.
17684         (cgraph_analyze_function): Use it.
17685         (cgraph_order_sort): Update.
17686         (cgraph_output_in_order): Update.
17687         (cgraph_function_versioning): Update.
17688         (cgraph_optimize): Rename to ...
17689         (compile): ... this one; initialize streamer hooks here.
17690         (cgraph_finalize_compilation_unit): Rename to ...
17691         (finalize_compilation_unit): ... this one; do not initialize streamer
17692         hook here.
17693         * lto-streamer-out.c (lto_output_toplevel_asms): Update.
17694         * dwarf2out.c: Update ocmment.
17695         * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
17696         * method.c (use_thunk): Likewise.
17697         * semantics.c (maybe_add_lambda_conv_op): Likewise.
17698         * decl2.c (maybe_emit_vtables): Likewise.
17699         (cp_write_global_declarations): Use finalize_compilation_unit.
17700         * parser.c (cp_parser_asm_definition): Use add_asm_node.
17701         * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
17702         * c-decl.c (c_write_global_declarations): Use
17703         finalize_compilation_unit.
17704         * langhooks.c (write_global_declarations): Update.
17705         * ipa.c (cgraph_externally_visible_p): Update.
17706         (dissolve_same_comdat_group_list): Remove.
17707         (function_and_variable_visibility): Update.
17708         * symtab.c: Inlcude lto-streamer.h and rtl.h
17709         (ld_plugin_symbol_resolution_names): New.
17710         (symtab_add_to_same_comdat_group): New.
17711         (symtab_dissolve_same_comdat_group_list): New.
17712         (resolution_used_from_other_file_p): Move here from cgraph.c
17713         (symtab_used_from_object_file_p): New.
17714         (symtab_make_decl_local): New.
17715         * passes.c (register_pass): Update comments.
17716         * c-parser.c (c_parser_asm_definition): Update.
17717         * varpool.c (varpool_analyze_node): Use
17718         fixup_same_cpp_alias_visibility.
17719         (varpool_remove_unreferenced_decls): Make static.
17720         (varpool_assemble_pending_decls): Rename to ...
17721         (varpool_output_variables): ... this one; call
17722         varpool_remove_unreferenced_decls.
17723         (varpool_used_from_object_file_p): Remove.
17724
17725 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
17726
17727         PR c++/51033
17728         * c-typeck.c (build_array_ref): Call
17729         convert_vector_to_pointer_for_subscript.
17730         * doc/extend.texi (Vector Extensions): Subscripting not just for C.
17731
17732 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
17733
17734         * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
17735         to compile-time "mode == <MODE>mode" checks.
17736         (and splitter): Ditto.
17737
17738 2012-04-30  Richard Henderson  <rth@redhat.com>
17739
17740         * config/arm/arm.md (UNSPEC_LL): New.
17741         * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
17742         (arm_load_exclusivedi): Use %H0.
17743
17744 2012-04-30  Jason Merrill  <jason@redhat.com>
17745
17746         * dwarf2out.c (comdat_symbol_id): Add const.
17747         (union die_symbol_or_type_node): Add const to die_symbol.
17748         (output_die_symbol, output_die, output_comp_unit): Adjust.
17749
17750 2012-04-30  Andrew Stubbs  <ams@codesourcery.com>
17751
17752         * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
17753         * config/arm/neon.md (negdi2_neon): New insn.
17754         Also add splitters for core and NEON registers.
17755
17756 2012-04-30  Andrew Stubbs  <ams@codesourcery.com>
17757
17758         * config/arm/arm.c (neon_valid_immediate): Allow const_int.
17759         (arm_print_operand): Add 'x' format.
17760         * config/arm/constraints.md (Dn): Allow const_int.
17761         * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
17762         Use 'x' format to print constants.
17763         * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
17764         * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
17765         is enabled.
17766         (movdi_vfp_cortexa8): Likewise.
17767
17768 2012-04-30  Ian Bolton  <ian.bolton@arm.com>
17769             Sameera Deshpande  <sameera.deshpande@arm.com>
17770             Greta Yorsh  <greta.yorsh@arm.com>
17771
17772         * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
17773         * config/arm/arm.c (ldm_stm_operation_p): New function.
17774         * config/arm/predicates.md (load_multiple_operation): Update predicate.
17775         (store_multiple_operation): Likewise.
17776
17777         * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
17778         * config/arm/arm.c (ldm_stm_operation_p): New parameters.
17779         * config/arm/predicates.md (load_multiple_operation): Add arguments.
17780         (store_multiple_operation): Likewise.
17781
17782 2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
17783
17784         * config/i386/i386.md (and<mode>3): Expand masking operations with
17785         0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
17786         (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
17787
17788 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
17789
17790         Add -Wvarargs option
17791         * builtins.c (fold_builtin_next_arg):  Use OPT_Wvarargs as an
17792         argument for the various warning_at calls.
17793         * docs/invoke.texi: Update the documentation.
17794
17795 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
17796
17797         Switch -ftrack-macro-expansion=2 on by default.
17798         * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
17799         by default.
17800
17801         Fix va_start related location
17802         * builtins.c (fold_builtin_next_arg): Unwinds to the first
17803         location in real source code.
17804
17805         Make conversion warnings work on NULL with -ftrack-macro-expansion
17806         * input.h (expansion_point_location_if_in_system_header): Declare
17807         new function.
17808         * input.c (expansion_point_location_if_in_system_header): Define it.
17809
17810         Fix -Wuninitialized for -ftrack-macro-expansion
17811         * tree-ssa.c (warn_uninit): Use the spelling location of the variable
17812         declaration.  Use linemap_location_before_p for source locations.
17813
17814         Strip "<built-in>" loc from displayed expansion context
17815         * input.c (expand_location_1): When expanding to spelling location
17816         in a context of a macro expansion, skip reserved system header
17817         locations.  Update comments.  * tree-diagnostic.c
17818         (maybe_unwind_expanded_macro_loc): Likewise.
17819
17820         Make expand_location resolve to locus in main source file
17821         * input.c (expand_location_1): New.  Takes a parameter to choose
17822         whether to resolve the location to spelling or expansion point.
17823         Was factorized from ...
17824         (expand_location): ... here.
17825         (expand_location_to_spelling_point): New.  Implemented in terms of
17826         expand_location_1.
17827         * diagnostic.c (diagnostic_build_prefix): Use the new
17828         expand_location_to_spelling_point instead of expand_location.
17829
17830         Fix PCH crash on GTYed pointer-to-scalar field of a struct
17831         * gengtype.c (write_types_process_field): Force second argument of
17832         the call to the PCH object hierarchy walker to be 'x'.
17833
17834 2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>
17835
17836         * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
17837         predicate to discriminate types.
17838
17839 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17840
17841         * doc/invoke.texi (Wmissing-format-attribute): Document as an
17842         alias of Wsuggest-attribute=format.
17843         * c-typeck.c (convert_for_assignment): Replace
17844         Wmissing-format-attribute with Wsuggest-attribute=format.
17845         (digest_init): Likewise.
17846
17847 2012-04-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17848
17849         * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
17850         * common.opt (Wmissing-noreturn): Alias of
17851         -Wsuggest-attribute=noreturn.
17852
17853 2012-04-29  Hans-Peter Nilsson  <hp@axis.com>
17854
17855         PR target/53156
17856         * config/cris/cris.md (andqu): New peephole2.
17857         (andu): Tweak head comment.
17858
17859 2012-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
17860             Steven Bosscher  <steven@gcc.gnu.org>
17861             Maxim Kuvyrkov  <maxim@codesourcery.com>
17862
17863         PR tree-optimization/38785
17864         * common.opt (ftree-partial-pre): New option.
17865         * doc/invoke.texi: Document it.
17866         * opts.c (default_options_table): Initialize flag_tree_partial_pre.
17867         * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
17868         benefit speed path.
17869         (execute_pre): Use flag_tree_partial_pre.
17870
17871 2012-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17872
17873         PR target/52999
17874         * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
17875         in constant pool.
17876
17877 2012-04-27  Ollie Wild  <aaw@google.com>
17878
17879         * doc/invoke.texi (Wliteral-suffix): Document new option.
17880
17881 2012-04-27  Tom Tromey  <tromey@redhat.com>
17882
17883         * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
17884         (dwarf_tag_name): Use get_DW_TAG_name.
17885         (dwarf_attr_name): Use get_DW_AT_name.
17886         (dwarf_form_name): Use get_DW_FORM_name.
17887         * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
17888
17889 2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
17890
17891         * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
17892         arguments are -1 and 0, by negating the result of the conditional.
17893
17894 2012-04-27  Paolo Bonzini  <bonzini@gnu.org>
17895
17896         PR target/53138
17897         * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
17898
17899 2012-04-27  Richard Guenther  <rguenther@suse.de>
17900
17901         * tree-flow.h (is_hidden_global_store): Remove.
17902         * tree-ssa-sink.c (is_hidden_global_store): Likewise.
17903         * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
17904         (stmt_may_clobber_global_p): Likewise.
17905         * tree-ssa-alias.c (ref_may_alias_global_p): New function.
17906         (stmt_may_clobber_global_p): Likewise.
17907         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
17908         stmt_may_clobber_global_p.
17909         * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
17910
17911 2012-04-27  Steven Bosscher  <steven@gcc.gnu.org>
17912
17913         * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
17914         place.
17915
17916         * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
17917         reorganize some fields and update comments.  Rename bit_test_uniq
17918         and bit_test_count to uniq resp. count.  Remove bit_test_bb.
17919         (collect_switch_conv_info): New function, collects info about a
17920         GIMPLE_SWITCH into a struct switch_conv_info.
17921         (check_range): Simplify to use pre-recorded info.  Fix think-o in
17922         range-branch ratio check.
17923         (check_process_case): Remove function.
17924         (check_all_empty_except_final): New function, verifies that all
17925         non-final basic blocks are empty.
17926         (process_switch): Simplify to use pre-recorded info.  Call
17927         collect_switch_conv_info to do that.  Assert that degenerate switch
17928         statements have been cleaned up.
17929
17930 2012-04-27  Marc Glisse  <marc.glisse@inria.fr>
17931
17932         PR middle-end/27139
17933         * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
17934
17935 2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17936
17937         PR c/53130
17938         * c-typeck.c (pop_init_level): Use %qD instead of %qT.
17939
17940 2012-04-27  Tom de Vries  <tom@codesourcery.com>
17941
17942         PR tree-optimization/51879
17943         * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
17944         * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
17945         of ...
17946         (defs_to_varying): ... here.  Don't set use_processed.
17947         (visit_reference_op_call): Handle gimple_vdef.
17948         Handle case that lhs is NULL_TREE.
17949         (visit_use): Use mark_use_processed.  Handle calls with side-effect
17950         using visit_reference_op_call.
17951
17952 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
17953
17954         * sched-deps.c (fixup_sched_groups): Rename to...
17955         (chain_to_prev_insn): ...this.
17956         (chain_to_prev_insn_p): New function.
17957         (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
17958
17959 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
17960
17961         * sched-int.h (_haifa_insn_data): Move priority_status.
17962         Add model_index.
17963         (INSN_MODEL_INDEX): New macro.
17964         * haifa-sched.c (insn_delay): New function.
17965         (sched_regno_pressure_class): Update commentary.
17966         (mark_regno_birth_or_death): Pass the liveness bitmap and
17967         pressure array as arguments, instead of using curr_reg_live and
17968         curr_reg_pressure.  Only update the pressure if the bit in the
17969         liveness set has changed.
17970         (initiate_reg_pressure_info): Always trust the live-in set for
17971         SCHED_PRESSURE_MODEL.
17972         (initiate_bb_reg_pressure_info): Update call to
17973         mark_regno_birth_or_death.
17974         (dep_list_size): Take the list as argument.
17975         (calculate_reg_deaths): New function, extracted from...
17976         (setup_insn_reg_pressure_info): ...here.
17977         (MODEL_BAR): New macro.
17978         (model_pressure_data, model_insn_info, model_pressure_limit)
17979         (model_pressure_group): New structures.
17980         (model_schedule, model_worklist, model_insns, model_num_insns)
17981         (model_curr_point, model_before_pressure, model_next_priority):
17982         New variables.
17983         (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
17984         (MODEL_INSN_INFO, MODEL_INSN): New macros.
17985         (model_index, model_update_limit_points_in_group): New functions.
17986         (model_update_limit_points, model_last_use_except): Likewise.
17987         (model_start_update_pressure, model_update_pressure): Likewise.
17988         (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
17989         (model_excess_cost, model_dump_pressure_points): Likewise.
17990         (model_set_excess_costs): Likewise.
17991         (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
17992         SCHED_PRIORITY_MODEL.  Use insn_delay.  Use the order in the model
17993         schedule as an alternative tie-breaker.  Update the call to
17994         dep_list_size.
17995         (ready_sort): Call model_set_excess_costs.
17996         (update_register_pressure): Update call to mark_regno_birth_or_death.
17997         Rely on that function to check liveness rather than doing it here.
17998         (model_classify_pressure, model_order_p, model_add_to_worklist_at)
17999         (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
18000         (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
18001         (model_record_pressure, model_record_pressures): New functions.
18002         (model_record_final_pressures, model_add_successors_to_worklist)
18003         (model_promote_predecessors, model_choose_insn): Likewise.
18004         (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
18005         (model_start_schedule, model_finalize_pressure_group): Likewise.
18006         (model_end_schedule): Likewise.
18007         (schedule_insn): Say when we're scheduling the next instruction
18008         in the model schedule.
18009         (schedule_insn): Handle SCHED_PRESSURE_MODEL.
18010         (queue_to_ready): Do not add instructions that are
18011         MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
18012         Always allow the next instruction in the model schedule to be added.
18013         (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
18014         and delay for SCHED_PRESSURE_MODEL too.
18015         (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
18016         SCHED_PRIORITY_MODEL, but also take the DFA into account.
18017         (schedule_block): Call model_start_schedule and model_end_schedule.
18018         Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
18019         (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
18020         to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
18021         region_ref_regs.
18022         (sched_finish): Update accordingly.
18023         (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
18024         to SCHED_PRESSURE_MODEL.
18025         (add_jump_dependencies): Update call to dep_list_size.
18026         (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
18027         (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
18028         to SCHED_PRESSURE_MODEL.
18029         * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
18030         allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
18031         (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
18032         handling to SCHED_PRESSURE_MODEL.
18033
18034 2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>
18035
18036         * common.opt (fsched-pressure-algorithm=): New option.
18037         * flag-types.h (sched_pressure_algorithm): New enum.
18038         * sched-int.h (sched_pressure_p): Replace with...
18039         (sched_pressure): ...this new variable.
18040         * haifa-sched.c (sched_pressure_p): Replace with...
18041         (sched_pressure): ...this new variable.
18042         (sched_regno_pressure_class, rank_for_schedule, ready_sort)
18043         (update_reg_and_insn_max_reg_pressure, schedule_insn)
18044         (debug_ready_list, prune_ready_list, schedule_block, sched_init)
18045         (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
18046         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
18047         (sched_analyze_insn): Likewise.
18048         * sched-rgn.c (schedule_region): Likewise.
18049         * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
18050
18051 2012-04-26  Bernd Schmidt  <bernds@codesourcery.com>
18052
18053         * PR middle-end/52997
18054         * ira.c (find_moveable_pseudos): Call resize_reg_info.
18055
18056         PR middle-end/52940
18057         * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
18058         * expr.c (convert_move): Honor unsignedp when extending partial int
18059         modes.
18060         * genmodes.c (complete_mode): Don't clear component field of partial
18061         int modes.
18062         (emit_mode_inner): Don't emit it however.
18063         (calc_wider_mode): Partial int modes widen to their component.
18064
18065 2012-04-26  David S. Miller  <davem@davemloft.net>
18066
18067         * config/sparc/niagara4.md: New file.
18068         * config/sparc/sparc.md: Include it.
18069         * config/sparc/sparc.c (niagara4_costs): New processor costs.
18070         (sparc_option_override): Use it.
18071         (sparc_use_sched_lookahead): Return 2 for niagara4.
18072         (sparc_issue_rate): Likewise.
18073
18074         * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
18075         (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
18076         (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
18077         fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
18078         (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
18079         alignaddrldi_vis): Set type to gsr.
18080         (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
18081         (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
18082         cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
18083         v<vis3_shift_patname><mode>3, fmean16_vis,
18084         fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
18085         fucmp<code>8<P:mode>_vis): Set type to fga.
18086         * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
18087         * config/sparc/niagara.md: Likewise.
18088         * config/sparc/niagara2.md: Likewise.
18089         * config/sparc/ultra3.md: Likewise, and fix type matching for
18090         us3_ialuX reservation.
18091
18092 2012-04-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18093
18094         * reload.c (find_reloads): Change the loop nesting when trying an
18095         alternative with swapped operands.
18096
18097 2012-04-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18098
18099         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
18100         comment. Delete unused parameter first_exp_point_map.
18101         (virt_loc_aware_diagnostic_finalizer): Update call.
18102
18103 2012-04-26  Michael Hope  <michael.hope@linaro.org>
18104             Richard Earnshaw  <rearnsha@arm.com>
18105
18106         * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
18107         (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
18108         (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
18109         (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
18110
18111 2012-04-25  Sriraman Tallam  <tmsriram@google.com>
18112
18113         * doc/extend.texi: Document avx2 support.
18114         * config/i386/i386.c (fold_builtin_cpu): Add avx2.
18115
18116 2012-04-26  Hans-Peter Nilsson  <hp@axis.com>
18117
18118         PR target/53120
18119         * config/cris/cris.md ("*andhi_lowpart_v32")
18120         ("*andqi_lowpart_v32"): Change first input-only operand from
18121         a (match_operand ...) to (match_dup 0).  Drop alternatives with
18122         const_int-matching constraints for redundancy.
18123         ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto.  Drop
18124         three-operand alternative.
18125
18126 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
18127
18128         PR target/53110
18129         * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
18130         instead expand it as zero extension.
18131
18132 2012-04-25  H.J. Lu  <hongjiu.lu@intel.com>
18133
18134         PR debug/52857
18135         * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
18136
18137 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
18138
18139         * common.opt (flag_debug_types_section): Default to 0.
18140         (dwarf_version): Default to 4.
18141         (dwarf_record_gcc_switches): Default to 1.
18142         (dwarf_strict): Default to 0.
18143         * toplev.c (process_options): Don't handle dwarf_strict
18144         or dwarf_version here.
18145         * config/vxworks.c (vxworks_override_options): Don't
18146         test whether dwarf_strict or dwarf_version are negative,
18147         instead test !global_options_set.x_dwarf_*.
18148         * config/darwin.c (darwin_override_options): Default to
18149         dwarf_version 2.
18150         * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
18151         and -fno-debug-types-section are now the default.
18152
18153 2012-04-25  Jan Hubicka  <jh@suse.cz>
18154
18155         * cgraphunit.c: Update toplevel comment.
18156         (tree_rest_of_compilation): Merge into cgraph_expand_function.
18157         (cgraph_analyze_function): Make static.
18158         (cgraph_decide_is_function_needed): Make static.
18159         (cgraph_add_new_function): Use expand_function instead of
18160         rest_of_compilation.
18161         (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
18162         verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
18163         Move to cgraph.c
18164         (cgraph_inline_p): Remove.
18165         (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
18166         (init_cgraph): Add comment.
18167         * cgraphbuild.c (record_reference, mark_address, mark_load,
18168         mark_store): Do not call analyze_expr hook.
18169         * cgraph.c: Update toplevel comment.
18170         (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
18171         verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
18172         Move fere from cgraphunit.c
18173         (cgraph_mark_force_output_node): Move to cgraph.h
18174         * cgraph.h: Reorder so the comments match the function placement.
18175         (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
18176         (cgraph_mark_force_output_node): Move here from cgraph.c
18177         * tree.c (free_lang_data): Do not clear analyze_expr hook.
18178         * ipa-inline-transform.c (preserve_function_body_p): New function.
18179         (inline_transform): Update.
18180         * langhooks.c (lhd_callgraph_analyze_expr): Remove.
18181         * langhooks.h (lang_hooks_for_callgraph): Remove.
18182         (lang_hooks): Remove callgraph.
18183         * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
18184         * varpool.c: Remove out of date comment.
18185         * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
18186         (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
18187
18188 2012-04-25  Jan Hubicka  <jh@suse.cz>
18189
18190         PR middle-end/53089
18191         * cgraphunit.c (referred_to_p): Move ahead in file to avoid
18192         forward declaration.
18193         (cgraph_finalize_function): Finalize them here.
18194         * symtab.c (dump_symtab): Dump ctors and dtors.
18195
18196 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
18197
18198         PR middle-end/52979
18199         * stor-layout.c (get_best_mode): Don't return mode with bitsize
18200         larger than maxbits.  Don't compute maxbits modulo align.
18201         Also check that unit bytes long store at bitpos / unit * unit
18202         doesn't affect bits beyond bitregion_end.
18203         * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
18204         would not fit into bitregion_start ... bitregion_end + 1 bit region.
18205         (store_split_bit_field): Decrease unit close to end of bitregion_end
18206         if access is restricted in order to avoid mutual recursion.
18207
18208         PR tree-optimization/53058
18209         * double-int.h (double_int_max_value, double_int_min_value): New
18210         prototypes.
18211         * double-int.c (double_int_max_value, double_int_min_value): New
18212         functions.
18213         * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
18214         or GT_EXPR with double_int_max_value instead of double_int_mask.
18215
18216 2012-04-25  Richard Guenther  <rguenther@suse.de>
18217
18218         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
18219         * tree-vect-loop.c (vect_transform_loop): Adjust.
18220         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
18221         the maximum number of iterations for the epilogue loop.
18222         (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
18223
18224 2012-04-25  Jakub Jelinek  <jakub@redhat.com>
18225
18226         PR c/52880
18227         * c-typeck.c (set_nonincremental_init,
18228         set_nonincremental_init_from_string): Pass true instead of false
18229         as IMPLICIT to add_pending_init.
18230
18231 2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18232
18233         * c-typeck.c (pop_init_level): Improve diagnostics.
18234
18235 2012-04-25  Uros Bizjak  <ubizjak@gmail.com>
18236
18237         * compare-elim.c (try_eliminate_compare): Also handle operands with
18238         implicit extensions.
18239
18240 2012-04-25  Alan Modra  <amodra@gmail.com>
18241
18242         * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
18243         V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
18244         SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
18245         (no_global_regs_above): Delete.
18246         (no_global_regs): New function.
18247         (rs6000_savres_strategy): Handle vector regs.  Use proper lr_save_p
18248         value for load multiple test.
18249         (savres_routine_syms): Increase size.
18250         (rs6000_savres_routine_name, rs6000_savres_routine_sym,
18251         ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
18252         rather than a number of boolean flags.  Update all callers.
18253         (rs6000_savres_routine_name): Generate vector save/restore names.
18254         (rs6000_savres_routine_sym): Handle vector regs.  Delete forward decl.
18255         (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
18256         (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
18257         and using_store_multiple.  Expand uses.  Don't always use r11 as
18258         frame reg when needed for out-of-line saves.  Set up initial offset
18259         for out-of-line vector saves when buying stack frame.  Handle pointer
18260         reg setup for out-of-line fp save.  Emit call to out-of-line vector
18261         save function.  Choose r11 or r12 for vrsave reg when available for
18262         better scheduling.
18263         (rs6000_output_function_prologue): Don't emit .extern for ELF.
18264         (rs6000_emit_epilogue): Choose a better frame reg when restoring
18265         from back-chain to suit out-of-line vector restore functions.  Emit
18266         call to out-of-line vector restore function.  Adjust register used
18267         for cr restore.  Tweak pointer register setup for gpr restore.
18268         * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
18269         FIXED_R13.
18270         * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
18271         (V_SAVE_INLINE): Define.
18272         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
18273
18274 2012-04-25  Alan Modra  <amodra@gmail.com>
18275
18276         * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
18277         out-of-line save/restore for large frames.  Don't disable
18278         out-of-line saves on ABI_AIX when using static chain reg.
18279         (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
18280         clobber static chain reg, and tweak for out-of-line gpr saves
18281         that use r1.
18282
18283 2012-04-25  Alan Modra  <amodra@gmail.com>
18284
18285         * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
18286         (rs6000_emit_prologue): Use the above to catch register overlap.
18287
18288 2012-04-25  Alan Modra  <amodra@gmail.com>
18289
18290         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
18291         decl.  Move logic selecting update reg to callers.  Update all callers.
18292         (rs6000_emit_allocate_stack): Add copy_off param.
18293         (emit_frame_save): Don't handle reg+reg addressing.
18294         (ptr_regno_for_savres): New function, extracted from..
18295         (rs6000_emit_savres_rtx): ..here.  Add lr_offset param.
18296         (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
18297         Set frame_reg_rtx to r11 whenever r11 is needed, and merge
18298         frame offset adjustment for out-of-line save with copy from sp.
18299         Simplify condition controlling whether cr is saved early or
18300         late.  Use ptr_regno_for_savres to verify correct reg is set
18301         up for out-of-line saves.  Pass the actual pointer reg used to
18302         rs6000_emit_savres_rtx so rtl matches insns in out-of-line
18303         function.  Rearrange spe vars so code is similar to that
18304         elsewhere in this function.  Don't update frame_off when spe
18305         save code will restore r11.  Use emit_frame_save for spe and
18306         gpr saves.  Consolidate darwin out-of-line gpr setup with that
18307         for other abis.  Don't assume frame_offset is zero and frame
18308         reg is sp when setting up altivec reg saves, and calculate
18309         exact offset requirement.
18310         (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off.  Tidy
18311         spe restore code.  Consolidate darwin out-of-line gpr setup
18312         with that for other abis.
18313
18314 2012-04-25  Alan Modra  <amodra@gmail.com>
18315
18316         * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
18317         REG_FRAME_RELATED_EXPR note when the instruction exactly matches
18318         the replacement.
18319         (emit_frame_save): Delete frame_ptr param.  Rename total_size to
18320         frame_reg_to_sp.
18321         (rs6000_emit_prologue): Add sp_off.  Update rs6000_frame_related
18322         and emit_frame_save calls.  Cope with possibly missing note.
18323
18324 2012-04-24  Sriraman Tallam  <tmsriram@google.com>
18325
18326         * config/i386/i386.c (build_processor_model_struct): New function.
18327         (make_var_decl): New function.
18328         (fold_builtin_cpu): New function.
18329         (ix86_fold_builtin): New function.
18330         (make_cpu_type_builtin): New function.
18331         (ix86_init_platform_type_builtins): New function.
18332         (ix86_expand_builtin): Expand new builtins by folding them.
18333         (ix86_init_builtins): Make new builtins to detect CPU type.
18334         (TARGET_FOLD_BUILTIN): New macro.
18335         (IX86_BUILTIN_CPU_INIT): New enum value.
18336         (IX86_BUILTIN_CPU_IS): New enum value.
18337         (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
18338         * config/i386/i386-builtin-types.def: New function type.
18339         * testsuite/gcc.target/builtin_target.c: New testcase.
18340         * doc/extend.texi: Document builtins.
18341
18342 2012-04-24  Olivier Hainque  <hainque@adacore.com>
18343
18344         * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
18345         * toplev.c (process_options): Default to dwarf_version 2.
18346         * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
18347         and dwarf_version 2.
18348
18349 2012-04-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18350
18351         * tree-pretty-print.h (default_tree_printer): Do not declare.
18352         * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
18353         intl.h.
18354         (default_tree_diagnostic_starter): Make static.
18355         (default_tree_printer): Move to here. Make static.
18356         (tree_diagnostics_defaults): New.
18357         * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
18358         * tree.c (free_lang_data): Use tree_diagnostics_defaults.
18359         * toplev.c: Do not include tree-pass.h.
18360         (default_tree_printer): Move from here.
18361         (general_init): Use tree_diagnostics_defaults.
18362
18363 2012-04-24  Chao-ying Fu  <fu@mips.com>
18364
18365         * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
18366         (mips*-*-linux*): Append mips/linux-common.h to tm_file.
18367         * config/mips/gnu-user.h
18368         (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
18369         (GNU_USER_TARGET_LINK_SPEC): New define.
18370         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
18371         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
18372         (GNU_USER_TARGET_MATHFILE_SPEC): New define.
18373         (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
18374         GNU_USER_TARGET_ENDFILE_SPEC.
18375         * config/mips/gnu-user64.h (LIB_SPEC): Remove.
18376         (GNU_USER_TARGET_LINK_SPEC): New define.
18377         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
18378         * config/mips/linux-common.h: New file.
18379
18380 2012-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18381
18382         PR target/47197
18383         * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
18384         (altivec_build_resolved_builtin): Call fully_fold_convert.
18385
18386 2012-04-24  Georg-Johann Lay  <avr@gjlay.de>
18387
18388         PR target/53065
18389         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
18390
18391 2012-04-24  Richard Guenther  <rguenther@suse.de>
18392
18393         PR tree-optimization/53085
18394         * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
18395         stores.
18396
18397 2012-04-24  Richard Guenther  <rguenther@suse.de>
18398
18399         * tree-if-conv.c (main_tree_if_conversion): Move bb under
18400         ENABLE_CHECKING.
18401
18402 2012-04-24  Jim Meyering  <meyering@redhat.com>
18403
18404         * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
18405         absence of an define_enum call.
18406
18407 2012-04-24  Richard Guenther  <rguenther@suse.de>
18408
18409         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
18410         the epilogue loop is not re-used as unvectorized version
18411         record the its maximum number of iterations.
18412
18413 2012-04-24  Andrew Pinski  <apinski@cavium.com>
18414
18415         * tree-ssa-forwprop.c (simplify_bitwise_binary):
18416         Don't directly use def1/def2.
18417
18418 2012-04-24  Richard Guenther  <rguenther@suse.de>
18419
18420         PR tree-optimization/53098
18421         * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
18422         comparison sign.
18423
18424 2012-04-24  Andrew Pinski  <apinski@cavium.com>
18425
18426         PR tree-opt/33512
18427         * tree-ssa-forwprop.c (defcodefor_name): New function.
18428         (simplify_bitwise_binary): Use defcodefor_name instead of manually
18429         Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
18430         Simplify "(~X | Y) & X" to "X & Y" and
18431         "(~X & Y) | X" to "X | Y".
18432
18433 2012-04-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18434
18435         * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
18436         validate_change to add clobbers if IN_GROUP is nonzero.
18437         (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
18438         * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
18439         prototype.
18440         * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
18441         set to false.
18442         * config/s390/s390.c (insn_invalid_p): Likewise.
18443
18444 2012-04-24  Jakub Jelinek  <jakub@redhat.com>
18445
18446         PR middle-end/53084
18447         * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
18448         (output_addressed_constants): Likewise.
18449
18450         PR middle-end/52999
18451         * varasm.c (get_section): Don't ICE for section conflicts with
18452         built-in section kinds.
18453
18454 2012-04-23  DJ Delorie  <dj@redhat.com>
18455
18456         * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
18457         (LIBSTDCXX): Change to CPP2.
18458
18459 2012-04-23  H.J. Lu  <hongjiu.lu@intel.com>
18460
18461         PR bootstrap/52878
18462         * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
18463         extra_masks.
18464
18465 2012-04-23  Uros Bizjak  <ubizjak@gmail.com>
18466
18467         * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
18468         (*addsi_2_zext): Ditto.
18469         (*add<mode>_3): Ditto.
18470         (*addsi_3_zext): Ditto.
18471         (*add<mode>_5): Ditto.
18472
18473 2012-04-23  Andrew Pinski  <apinski@cavium.com>
18474
18475         * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
18476         (C & B) to (A OP0) & B.
18477
18478 2012-04-23  Martin Jambor  <mjambor@suse.cz>
18479
18480         * expr.c (expand_expr_real_1): Remove setting parent's alias set for
18481         temporaries created for a bitfield (reverting revision 122014).
18482
18483 2012-04-23  Richard Guenther  <rguenther@suse.de>
18484
18485         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
18486         the condition using is_gimple_condexpr and avoid the not necessary
18487         boolification.
18488         (set_prologue_iterations): Likewise.
18489         (vect_loop_versioning): Likewise.
18490
18491 2012-04-23  Richard Guenther  <rguenther@suse.de>
18492
18493         PR tree-optimization/53070
18494         * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
18495         (main_tree_if_conversion): Verify we succeeded in that.
18496
18497 2012-04-23  Jan Hubicka  <jh@suse.cz>
18498
18499         * lto-symtab.c (lto_cgraph_replace_node): Do not call
18500         mark_reahcable_node.
18501         * cgraph.c (cgraph_remove_node): Do not clear reachable.
18502         (cgraph_mark_reachable_node): Remove.
18503         (cgraph_mark_force_output_node): Do not set reachable.
18504         (dump_cgraph_node): Do not dump reachable.
18505         (cgraph_create_virtual_clone): Do not set reachable.
18506         * cgraph.h (cgraph_node): Remove reachable flag.
18507         (varpool_node): Remove reachable flag.
18508         (cgraph_mark_if_needed): Remove.
18509         (cgraph_mark_reachable_node): Remove.
18510         * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
18511         * cgraphunit.c (cgraph_finalize_function): Do not mark node as
18512         reachable.
18513         (cgraph_add_new_function): Likewise.
18514         (cgraph_mark_if_needed): Remove.
18515         (cgraph_analyze_function): Do not set target as reachable.
18516         (process_function_and_variable_attributes): Do not care about
18517         dllexport.
18518         (cgraph_analyze_functions): Do not set reachable flags.
18519         (cgraph_mark_functions_to_output): Do not check reachability.
18520         (cgraph_copy_node_for_versioning): Do not set reachable flag.
18521         (dbxout_expand_expr): Update.
18522         * c-decl.c (merge_decls): Do not track changed externs.
18523         * ipa.c: Include pointer-set.h
18524         (enqueue_cgraph_node): Use reachable pointer set.
18525         (process_references): Likewise.
18526         (cgraph_remove_unreachable_nodes): Likewise.
18527         (whole_program_function_and_variable_visibility): Do not recompute
18528         reachable.
18529         * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
18530
18531 2012-04-23  Georg-Johann Lay  <avr@gjlay.de>
18532
18533         * doc/extend.texi (AVR Named Address Spaces): Fix typos.
18534
18535 2012-04-23  Richard Guenther  <rguenther@suse.de>
18536
18537         PR c/53060
18538         * c-typeck.c (build_binary_op): Fix typo.
18539
18540 2012-04-23  Jakub Jelinek  <jakub@redhat.com>
18541
18542         PR tree-optimizations/52891
18543         * tree-vect-patterns.c (adjust_bool_pattern): Use
18544         build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
18545         but with non-standard precision.
18546
18547 2012-04-22  Jan Hubicka  <jh@suse.cz>
18548
18549         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
18550         tree refs.
18551
18552 2012-04-22  Jan Hubicka  <jh@suse.cz>
18553
18554         * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
18555         * cgraphbuild.c (record_reference, record_type_list, mark_address,
18556         mark_load, mark_store): Do not mark varpool nodes as needed.
18557         * cgraph.c (cgraph_new_nodes): Remove.
18558         (cgraph_create_function_alias): Do not mark nodes as reachable.
18559         (cgraph_add_thunk): Likewise.
18560         (cgraph_mark_reachable_node): Do not manage the queue.
18561         * cgraph.h (cgraph_node): Remove next_needed.
18562         (varpool_nodes_queue): Remove next_needed and prev_needed.
18563         (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
18564         (cgraph_new_nodes): Declare.
18565         (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
18566         (varpool_analyze_pending_decls): Remove.
18567         (varpool_analyze_node): New.
18568         (varpool_mark_needed_node): Remove.
18569         (varpool_first_variable, varpool_next_variable): New inlines.
18570         (varpool_first_static_initializer, varpool_next_static_initializer):
18571         Update.
18572         (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
18573         (varpool_first_defined_variable): New inline.
18574         (varpool_next_defined_variable): New inline
18575         (FOR_EACH_VARIABLE): Reimplement.
18576         (FOR_EACH_DEFINED_VARIABLE): Reimplement.
18577         * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
18578         needed flag.
18579         * cgraphunit.c (cgraph_new_nodes): Declare here.
18580         (enqueue_node): New function.
18581         (cgraph_process_new_functions): update for new
18582         node set; when constructing cgraph enqueue node for processing.
18583         (cgraph_add_new_function): Use new node set.
18584         (process_function_and_variable_attributes): Do not set varpool needed
18585         flags.
18586         (referred_to_p): New function.
18587         (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
18588         when varpool is in construction.
18589         (cgraph_analyze_functions): Rewrite.
18590         (cgraph_expand_all_functions): Update.
18591         (cgraph_output_in_order): Do not analyze pending decls; do not set
18592         needed flags.
18593         (cgraph_optimize): Do not analyze pending decls.
18594         * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
18595         in other partition; do not mark node as needed.
18596         * dwarf2out.c (reference_to_unused): Use analyzed flag.
18597         (premark_types_used_by_global_vars_helper): Likewise.
18598         * ipa.c (process_references): Do not call varpool_mark_needed_node.
18599         (cgraph_remove_unreachable_nodes): Do not rely on varpool and
18600         cgrpah queues.
18601         (function_and_variable_visibility): Do not mark node as needed.
18602         (whole_program_function_and_variable_visibility): Likewise.
18603         * Makefile.in (gt-varpool.h): No longer needed.
18604         * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
18605         (ipa_write_summaries): Do not use needed flag.
18606         * varpool.c: Do not include gt-varpool.h
18607         (x_varpool_nodes_queue, x_varpool_last_needed_node,
18608         x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
18609         x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
18610         Remove.
18611         (varpool_remove_node): Do not update the lists.
18612         (dump_varpool_node): Do not dump needed flag.
18613         (varpool_enqueue_needed_node): Remove.
18614         (varpool_mark_needed_node): Remove.
18615         (varpool_reset_queue): Remove.
18616         (varpool_finalize_decl): Move to cgraphunit.c
18617         (varpool_analyze_node): New functions based on former
18618         varpool_analyze_pending_decls.
18619         (varpool_analyze_pending_decls): Remove.
18620         (varpool_assemble_decl): Do not update the lists.
18621         (enqueue_node): New function.
18622         (varpool_remove_unreferenced_decls): Rewrite.
18623         (varpool_empty_needed_queue): Remove.
18624         (add_new_static_var): Do not mark node as needed.
18625         (varpool_create_variable_alias): Handle expansion state
18626         creation.
18627         * except.c (output_ttype): Do not mark node as needed.
18628         * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
18629         * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
18630         Likewise.
18631         * tree-switch-conversion.c (build_one_array): Likewise.
18632
18633 2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18634
18635         PR c/44774
18636         * doc/invoke.texi (pedantic): Rename to Wpedantic.
18637         * common.opt (Wpedantic): New.
18638         (pedantic): Alias Wpedantic.
18639         * diagnostic.c (warning_at): Likewise.
18640         * c-decl.c (diagnose_mismatched_decls): Likewise.
18641         (build_array_declarator): Likewise.
18642         (mark_forward_parm_decls):
18643         (check_bitfield_type_and_width): Likewise.
18644         (grokdeclarator): Likewise.
18645         (grokfield): Likewise.
18646         (finish_struct): Likewise.
18647         (build_enumerator): Likewise.
18648         (store_parm_decls_oldstyle): Likewise.
18649         (declspecs_add_qual): Likewise.
18650         (declspecs_add_type): Likewise.
18651         (finish_declspecs): Likewise.
18652         * c-typeck.c (composite_type): Likewise.
18653         (comp_target_types): Likewise.
18654         (build_array_ref): Likewise.
18655         (pointer_diff): Likewise.
18656         (build_unary_op): Likewise.
18657         (build_conditional_expr): Likewise.
18658         (build_c_cast): Likewise.
18659         (convert_for_assignment): Likewise.
18660         (maybe_warn_string_init): Likewise.
18661         (digest_init): Likewise.
18662         (pop_init_level): Likewise.
18663         (set_init_index): Likewise.
18664         (c_finish_goto_label): Likewise.
18665         (c_finish_return): Likewise.
18666         (do_case): Likewise.
18667         (build_binary_op): Likewise.
18668         * c-parser.c (static): Likewise.
18669         (c_parser_external_declaration): Likewise.
18670         (c_parser_declaration_or_fndef): Likewise.
18671         (c_parser_static_assert_declaration_no_se): Likewise.
18672         (c_parser_enum_specifier): Likewise.
18673         (c_parser_struct_or_union_specifier): Likewise.
18674         (c_parser_struct_declaration): Likewise.
18675         (c_parser_alignas_specifier): Likewise.
18676         (c_parser_braced_init): Likewise.
18677         (c_parser_initelt): Likewise.
18678         (c_parser_compound_statement_nostart): Likewise.
18679         (c_parser_conditional_expression): Likewise.
18680         (c_parser_alignof_expression): Likewise.
18681         (c_parser_postfix_expression): Likewise.
18682         (c_parser_postfix_expression_after_paren_): Likewise.
18683         (c_parser_objc_class_instance_variables): Likewise.
18684         (c_parser_objc_method_definition): Likewise.
18685         (c_parser_objc_methodprotolist): Likewise.
18686
18687 2012-04-22  Ian Lance Taylor  <iant@google.com>
18688
18689         * godump.c (go_output_typedef): Dump size of structs.
18690
18691 2012-04-22  Razya Ladelsky  <razya@il.ibm.com>
18692
18693         Correcting transform_to_exit_first_loop + fix to PR46886
18694         * tree-parloops.c (transform_to_exit_first_loop): Remove
18695         setting of number of iterations according to the loop pattern.
18696         Duplicate from entry to exit->src instead of loop->latch.
18697         (pallelize_loops): Remove the condition preventing do-while loops.
18698         * tree-cfg.c (bool bb_in_region_p): New.
18699         (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
18700         Adjust redirection of the duplicated iteration.
18701
18702 2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>
18703
18704         PR bootstrap/53021
18705         * rtl.def (ADDRESS): Use "i" rather than "w".
18706         * rtl.h (find_base_term): Delete.
18707         (may_be_sp_based_p): Declare.
18708         * rtl.c (rtx_code_size): Remove ADDRESS special case.
18709         * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
18710         (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
18711         * alias.c: ...here.
18712         (find_base_term): Make static.
18713         (may_be_sp_based_p): New function.
18714         * dse.c (record_store): Use it.
18715         * store-motion.c (store_killed_in_insn): Likewise.
18716
18717 2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>
18718
18719         * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
18720
18721 2012-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18722
18723         PR 35441
18724         * c-typeck.c (inform_declaration): New.
18725         (build_function_call_vec):  Do not pretty-print
18726         expressions when caret is enabled.
18727         (convert_arguments): Use inform_declaration.
18728
18729 2012-04-20  Jim Meyering  <meyering@redhat.com>
18730
18731         * genmodes.c (make_complex_modes): Don't truncate a mode name of
18732         length 7 or more when prepending a "C".  Suggested by Richard Guenther.
18733
18734 2012-04-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18735
18736         PR rtl-optimization/44214
18737         * fold-const.c (exact_inverse): New function.
18738         (fold_binary_loc): Fold vector and complex division by constant into
18739         multiply by recripocal with flag_reciprocal_math; fold vector division
18740         by constant into multiply by reciprocal with exact inverse.
18741
18742 2012-04-20  Jan Hubicka  <jh@suse.cz>
18743
18744         * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
18745         force flags.
18746         * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
18747         (cgraph_remove_node): Update.
18748         (cgraph_mark_needed_node): Remove.
18749         (cgraph_mark_force_output_node): New.
18750         (dump_cgraph_node): Do not dump needed flag.
18751         (cgraph_node_cannot_be_local_p_1): Update.
18752         (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
18753         * cgraph.h (symtab_node_base): Add force_output flag.
18754         (cgraph_node): Remove needed flag.
18755         (varpool_node): Remove force_output flag.
18756         (cgraph_mark_needed_node): Remove.
18757         (cgraph_mark_force_output_node): New.
18758         (cgraph_only_called_directly_or_aliased_p,
18759         varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
18760         * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
18761         * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
18762         (cgraph_add_new_function): Update.
18763         (cgraph_mark_if_needed): Update.
18764         (verify_cgraph_node): Update.
18765         (cgraph_analyze_function): Alias target is reachable.
18766         (process_function_and_variable_attributes): Update: externally_visible
18767         flag makes function reachable.
18768         (cgraph_analyze_functions): Update dumping.
18769         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
18770         input_overwrite_node, input_varpool_node): Update streaming.
18771         * lto-streamer-out.c (produce_symtab): Use force_output.
18772         * ipa.c (process_references): Weakrefs must be processed.
18773         (cgraph_remove_unreachable_nodes): Likewise; update for new
18774         force_output flag.
18775         (varpool_externally_visible_p): Weakrefs are externally visible
18776         even if they are not.
18777         (function_and_variable_visibility): Update; when processing alias
18778         pair force the targets to be output.
18779         (whole_program_function_and_variable_visility): Use
18780         mark_reachable_node.
18781         * trans-mem.c (ipa_tm_mark_needed_node): Remove
18782         (ipa_tm_mark_force_output_node): New function.
18783         (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
18784         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
18785         aliases.
18786         * varasm.c (mark_decl_referenced): Update.
18787         (find_decl_and_mark_needed): Remove.
18788         (find_decl): New function.
18789         (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
18790         alias targets as needed.
18791         (dump_tm_clone_pairs): Update.
18792         * tree-inline.c (copy_bb): Update check.
18793         * symtab.c (dump_symtab_base): Dump force_output.
18794         * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
18795         * passes.c (execute_todo): Fix dumping.
18796         * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
18797         (varpool_analyze_pending_decls): Alias target is reachable.
18798         (varpool_create_variable_alias): Finalize weakrefs.
18799
18800 2012-04-20  Jakub Jelinek  <jakub@redhat.com>
18801
18802         PR bootstrap/53021
18803         * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
18804         UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
18805         * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
18806         macros instead of constants.
18807         * dse.c (record_store): Check for SP ADDRESS by comparing
18808         XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
18809         XEXP to be stack_pointer_rtx.
18810
18811 2012-04-20  Richard Guenther  <rguenther@suse.de>
18812
18813         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
18814         update_call_from_tree when propagating into a call.
18815
18816 2012-04-20  Alan Modra  <amodra@gmail.com>
18817
18818         * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
18819         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.  Rename
18820         sp_offset to frame_off.  Move world save code earlier.
18821
18822 2012-04-20  Richard Guenther  <rguenther@suse.de>
18823
18824         PR tree-optimization/53050
18825         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
18826         Do only one transform on COND_EXPRs at the same time.
18827
18828 2012-04-19  Jan Hubicka  <jh@suse.cz>
18829
18830         * symtab.c (dump_symtab_base): Revert accidental checkin.
18831
18832 2012-04-20  Alan Modra  <amodra@gmail.com>
18833
18834         PR target/53040
18835         * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
18836         static chain, set REST_INLINE_FPRS too.
18837
18838 2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
18839
18840         * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
18841         nodes.
18842
18843 2012-04-20  Richard Guenther  <rguenther@suse.de>
18844
18845         * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
18846         loops that can never run more often than the vectorization factor.
18847
18848 2012-04-19  Jan Hubicka  <jh@suse.cz>
18849
18850         * symtab.c (dump_symtab_base): Fix dumping of asm lists.
18851
18852 2012-04-19  David Edelsohn  <dje.gcc@gmail.com>
18853
18854         * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
18855
18856 2012-04-19  Jim Meyering  <meyering@redhat.com>
18857
18858         * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
18859         We verified above that the string(including trailing NUL) fits in buf,
18860         so just use memcpy.
18861
18862 2012-04-19  Richard Guenther  <rguenther@suse.de>
18863
18864         * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
18865         for dumping DECL_SECTION_NAME.
18866
18867 2012-04-19  Michael Matz  <matz@suse.de>
18868
18869         PR middle-end/52977
18870         * tree.h (VECTOR_CST_NELTS): Use part number of types again.
18871         (struct tree_vector): Adjust GTY length.
18872         * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
18873
18874         * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
18875         members.
18876         (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
18877         caller emitted the length calulation already.
18878         (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
18879         before handling any of the fields for structs.
18880
18881 2012-04-19  Richard Guenther  <rguenther@suse.de>
18882
18883         PR tree-optimization/53031
18884         * tree-vrp.c (adjust_range_with_scev): Revert back to
18885         using max_loop_iterations.
18886
18887 2012-04-19  Michael Matz  <matz@suse.de>
18888
18889         * diagnostic.c (emit_diagnostic): Move va_end call after user
18890         of the va_list.
18891         (warning, warning_at, pedwarn, permerror): Ditto.
18892
18893 2012-04-19  Richard Guenther  <rguenther@suse.de>
18894
18895         * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
18896         array access.
18897
18898 2012-04-19  Georg-Johann Lay  <avr@gjlay.de>
18899
18900         PR target/53033
18901         * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
18902         the case *(X+const).
18903
18904 2012-04-19  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18905
18906         * config/arm/sync.md (sync_optab): Change ior attribute to "or".
18907
18908 2012-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18909
18910         PR c/52283/37985
18911         * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
18912         * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
18913
18914 2012-04-19  Richard Guenther  <rguenther@suse.de>
18915
18916         PR rtl-optimization/44688
18917         * loop-iv.c (determine_max_iter): Only return max_iter.
18918         (iv_number_of_iterations): Also use the recorded loop bound
18919         on the maximum number of iterations.
18920         * loop-unroll.c (decide_unroll_runtime_iterations): Use
18921         max_iter to avoid unrolling loops that do not roll.
18922         (decide_unroll_stupid): Likewise.
18923
18924 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
18925
18926         * targhooks.c (default_case_values_threshold): Fix code style nit.
18927
18928         * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
18929         case range and type folding from here...
18930         * gimplify.c (gimplify_switch_expr): ... to here.  Expect NULL_TREE
18931         type, as documented in tree.def.
18932
18933 2012-04-18  Jan Hubicka  <jh@suse.cz>
18934
18935         * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
18936         Declare.
18937         * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
18938         cgraph hash and same comdat groups.
18939         (cgraph_optimize): Verify symbol table.
18940         * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
18941         (dissolve_same_comdat_group_list): Work on symtab nodes.
18942         (function_and_variable_visibility): Dissolve variable same comdat group
18943         lists, too.
18944         * symtab.c: Include timevar.h
18945         (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
18946
18947 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
18948
18949         * tree-switch-conversion.c (info): Remove global pass info.
18950         (check_range, check_process_case, check_final_bb, create_temp_arrays,
18951         free_temp_arrays, gather_default_values, build_constructors,
18952         array_value_type, build_one_array, build_arrays, gen_def_assigns,
18953         fix_phi_nodes, gen_inbound_check): Pass info around from ...
18954         (process_switch): ... here.  Unify message format.  Return a const
18955         char pointer to the failure reason message.
18956         (do_switchconv): Unify message format.  Update process_switch usage.
18957
18958         * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
18959         * tree-cfg.c (edge_to_cases): Fix documentation.
18960
18961 2012-04-18  Uros Bizjak  <ubizjak@gmail.com>
18962
18963         * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
18964
18965 2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18966
18967         PR tree-optimization/52976
18968         * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
18969         (possibly_move_powi): New function.
18970         (rewrite_expr_tree): Call possibly_move_powi.
18971         (rewrite_expr_tree_parallel): Likewise.
18972         (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
18973         call add_to_ops_vec instead.
18974
18975 2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18976
18977         PR tree-optimization/52976
18978         * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
18979         (decrement_power): Likewise.
18980         (propagate_op_to_single_use): Likewise.
18981         (zero_one_operation): Handle __builtin_pow* calls in linearized
18982         expression trees; factor logic into propagate_op_to_single_use.
18983         (undistribute_ops_list): Allow operands with repeat counts > 1.
18984
18985 2012-04-18  Richard Guenther  <rguenther@suse.de>
18986
18987         PR tree-optimization/44688
18988         * cfgloop.h (record_niter_bound): Declare.
18989         * tree-ssa-loop-niter.c (record_niter_bound): Export.
18990         Update the estimation with the upper bound here...
18991         (estimate_numbers_of_iterations_loop): ... instead of here.
18992         Do not forcefully reset a recorded upper bound.
18993         * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
18994         Record the maximum number of loop iterations of the prologue loop.
18995
18996 2012-04-18  Jan Hubicka  <jh@suse.cz>
18997
18998         * lto-symtab.c (lto_cgraph_replace_node): Update.
18999         * cgraphbuild.c (record_reference, record_type_list,
19000         record_eh_tables, mark_address, mark_load, mark_store): Update.
19001         * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
19002         cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
19003         Update.
19004         * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
19005         (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
19006         * reload.c: Fix typo in comment.
19007         * rtlanal.c: Likewise.
19008         * tree-emultls.c (gen_emutls_addr): Update.
19009         * ipa-reference.c (analyze_function): Update.
19010         * cgraphunit.c (cgraph_analyze_function,
19011         cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
19012         Update.
19013         * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
19014         (ipa_remove_reference): Likewise.
19015         (ipa_remove_all_refering): Rename to ...
19016         (ipa_remove_all_referring): ... this one; update.
19017         (ipa_dump_references): Update.
19018         (ipa_dump_referring): Update.
19019         (ipa_clone_references): Update.
19020         (ipa_clone_refering): Rename to ...
19021         (ipa_clone_referring): ... this one; update.
19022         (ipa_ref_cannot_lead_to_return): Update.
19023         (ipa_ref_has_aliases_p): Update.
19024         * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
19025         forward typedefs.
19026         (ipa_ref_type): Remove.
19027         (ipa_ref_ptr_u): Remove.
19028         (ipa_ref): Remove referencing, refered, refered_index, refering_type
19029         and refered_type; add referring, referred and referred_index.
19030         (ipa_ref_list): Rename refering to referring.
19031         (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
19032         ipa_clone_references, ipa_clone_referring): Update prototypes.
19033         * lto-cgraph.c (referenced_from_other_partition_p): Update.
19034         (lto_output_ref): Update.
19035         (add_references): Update.
19036         (input_varpool_node): Update.
19037         (input_refs): Update.
19038         * ipa-ref-inline.h (ipa_ref_node): Update.
19039         (ipa_ref_varpool_node): Update.
19040         (ipa_ref_referring_node): Update.
19041         (ipa_ref_referring_varpool_node): Update.
19042         (ipa_ref_referring_ref_list): Update.
19043         (ipa_ref_referred_ref_list): Update.
19044         (ipa_ref_list_first_referring): Update.
19045         (ipa_empty_ref_list): Update.
19046         (ipa_ref_list_refering_iterate): Rename to ...
19047         (ipa_ref_list_referring_iterate): ... this one.
19048         * cse.c: Update comment.
19049         * ipa-utils.c (ipa_reverse_postorder): Update.
19050         * tree-ssa-alias.c: Update.
19051         * ipa-inline.c (reset_edge_caches): Update.
19052         (update_caller_keys): Update.
19053         * ipa-inline.h: Update comments.
19054         * jump.c: Update comment.
19055         * alias.c: Likewise.
19056         * ipa.c (process_references): Update.
19057         (cgraph_remove_unreachable_nodes): Likewise.
19058         (ipa_discover_readonly_nonaddressable_var): Likewise.
19059         (cgraph_address_taken_from_non_vtable_p): Likewise.
19060         * trans-mem.c (ipa_tm_execute): Update.
19061         * simplify-rtx.c: Fix comment.
19062         * rtl.c: Fix comment.
19063         * symtab.c (symtab_unregister_node): Update.
19064         * varpool.c (dump_varpool_node): Update.
19065         (varpool_analyze_pending_decls): Update.
19066         (assemble_aliases): Update.
19067         (varpool_for_node_and_aliases): Update.
19068
19069 2012-04-18  Richard Guenther  <rguenther@suse.de>
19070
19071         * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
19072         use_undefined_p parameter.
19073         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
19074         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
19075         Likewise.
19076         (estimate_numbers_of_iterations): Likewise.
19077         (estimated_loop_iterations): Adjust.
19078         (max_loop_iterations): Likewise.
19079         (scev_probably_wraps_p): Likewise.
19080         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
19081         * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
19082         not max_loop_iterations.
19083         (execute_vrp): Remove explicit number of iterations estimation.
19084
19085 2012-04-18  Enkovich Ilya  <ilya.enkovich@intel.com>
19086
19087         * config/i386/linux-common.h: New.
19088
19089         * config.gcc: Add i386/linux-common.h before
19090         all i386/linux.h and i386/linux64.h usages.
19091
19092         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
19093         (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
19094         * config/i386/gnu-user64.h: Likewise.
19095
19096         * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
19097         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
19098         (GNU_USER_TARGET_MATHFILE_SPEC): New.
19099         (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
19100
19101 2012-04-18  Jan Hubicka  <jh@suse.cz>
19102
19103         * cgraph.c (cgraph_node_name): Remove.
19104         (dump_cgraph_node): Use dump_symtab_base; reformat.
19105         * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
19106         debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
19107         Declare.
19108         (cgraph_node_name, varpool_node_name): Remove.
19109         (cgraph_node_asm_name, varpool_node_asm_name,
19110         cgraph_node_name, varpool_node_name): New.
19111         * tree-pass.h (TODO_dump_cgraph): Rename to ...
19112         (TODO_dump_symtab): ... this one.
19113         * ipa-cp (pass_ipa_cp): Update.
19114         * ia-reference.c (generate_summary, read_write_all_from_decl,
19115         propagate, ipa_reference_read_optimization_summary): Update.
19116         * cgraphunit.c (cgraph_analyze_functions): Update.
19117         (cgraph_optimize): Update.
19118         * ipa-ref.c (ipa_dump_references): Update.
19119         (ipa_dump_refering): Update.
19120         * ipa-inline.c (pass_ipa_inline): Update.
19121         * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
19122         * ipa.c (pass_ipa_function_visibility,
19123         pass_ipa_whole_program_visibility): Update.
19124         * tree-sra.c (pass_early_ipa_sra): Update.
19125         * symtab.c: Include langhooks.h
19126         (symtab_node_asm_name): New.
19127         (symtab_node_name): New.
19128         (symtab_type_names): New static var.
19129         (dump_symtab_base): New.
19130         (dump_symtab_node, dump_symtab): New.
19131         (debug_symtab_node,  debug_symtab): New.
19132         * tree-ssa-structalias.c: Dump symbol table.
19133         * pases.c (execute_todo): Handle TODO_dump_symtab instead
19134         of TODO_dump_cgraph.
19135         * varpoo.c (varpool_node_name): Remove.
19136         (dump_varpool_node): Use dump_symtab_base; reformat.
19137
19138 2012-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19139
19140         * doc/invoke.texi (Language Independent Options): @item should be
19141         before @opindex.
19142
19143 2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
19144
19145         PR bootstrap/53021
19146         * rtl.c (rtx_code_size): Handle ADDRESS.
19147
19148 2012-04-17  Tom de Vries  <tom@codesourcery.com>
19149
19150         * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
19151         is not a STMT_LIST.
19152
19153 2012-04-17  Uros Bizjak  <ubizjak@gmail.com>
19154
19155         PR target/53020
19156         * config/i386/sync.md (atomic_<code><mode>): Rename to
19157         atomic_<logic><mode>.
19158
19159 2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
19160
19161         * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
19162         * alias.c (reg_base_value): Expand and update comment.
19163         (arg_base_value): New variable.
19164         (unique_id): Move up file.
19165         (unique_base_value, unique_base_value_p, known_base_value_p): New.
19166         (find_base_value): Use arg_base_value and known_base_value_p.
19167         (record_set): Document REG_NOALIAS handling.  Use unique_base_value.
19168         (find_base_term): Use known_base_value_p.
19169         (base_alias_check): Use unique_base_value_p.
19170         (init_alias_target): Initialize arg_base_value.  Use unique_base_value.
19171         (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
19172
19173 2012-04-17  Pat Haugen <pthaugen@us.ibm.com>
19174
19175         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
19176
19177 2012-04-17  Michael Matz  <matz@suse.de>
19178
19179         PR tree-optimization/18437
19180         * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
19181         (STMT_VINFO_STRIDE_LOAD_P): New accessor.
19182         (vect_check_strided_load): Declare.
19183         * tree-vect-data-refs.c (vect_check_strided_load): New function.
19184         (vect_analyze_data_refs): Use it to accept strided loads.
19185         * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
19186
19187 2012-04-17  Richard Guenther  <rguenther@suse.de>
19188
19189         PR middle-end/53011
19190         * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
19191         loops when redirecting an entry or latch edge.
19192
19193 2012-04-17  Bernd Schmidt  <bernds@codesourcery.com>
19194
19195         * sel-sched.c (sel_global_init): Revert previous change.
19196
19197 2012-04-17  Richard Guenther  <rguenther@suse.de>
19198
19199         * tree-flow.h (array_at_struct_end_p): Move declaration ...
19200         * tree.h (array_at_struct_end_p): ... here.
19201         * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
19202         * expr.c (array_at_struct_end_p): ... here.  Rewrite.
19203
19204 2012-04-17  Steven Bosscher  <steven@gcc.gnu.org>
19205
19206         * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
19207         COST_TABLE): Remove.
19208         (estimate_case_costs): Remove.
19209         (expand_case): Do not call estimate_case_costs
19210         to set use_cost_table.
19211         (balance_case_nodes): Do not use use_cost_table.
19212
19213 2012-04-16  Jan Hubicka  <jh@suse.cz>
19214
19215         * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
19216         (hash_node, eq_node): Remove.
19217         (cgraph_create_node): Do not handle hashtable.
19218         (cgraph_get_node): Remove.
19219         (cgraph_insert_node_to_hashtable): Remove.
19220         (hash_node_by_assembler_name): Remove.
19221         (eq_assembler_name): Remove.
19222         (cgraph_node_for_asm): Rewrite.
19223         (cgraph_find_replacement_node): Break out from ...
19224         (cgraph_remove_node): ... here; do not maintain hashtables.
19225         (change_decl_assembler_name): Remove.
19226         (cgraph_clone_node): Do not maintain hashtables.
19227         * cgraph.h (const_symtab_node): New typedef.
19228         (cgraph_insert_node_to_hashtable): Remove.
19229         (symtab_get_node, symtab_node_for_asm,
19230         symtab_insert_node_to_hashtable): Declare.
19231         (cgraph_find_replacement_node): Declare.
19232         (cgraph_get_node, varpool_get_node): Turn into inlines.
19233         (cgraph, varpool): Work sanely on NULL pointers.
19234         (FOR_EACH_SYMBOL): New walker.
19235         * ipa-inline-transform.c (save_inline_function_body): Use
19236         symtab_insert_node_to_hashtable.
19237         * symtab.c: Include ggc.h and diagnostics.h
19238         (symtab_hash, assembler_name_hash): New static vars;
19239         (hash_node, eq_node, hash_node_by_assembler_name,
19240         eq_assembler_name, insert_to_assembler_name_hash,
19241         unlink_from_assembler_name_hash): New.
19242         (symtab_register_node): Update hashtables.
19243         (symtab_insert_node_to_hashtable): New.
19244         (symtab_unregister_node): Update hashtables.
19245         (symtab_get_node): New.
19246         (symtab_node_for_asm): New.
19247         (change_decl_assembler_name): New.
19248         * Makefile.in (symtab.o): Needs GTY.
19249         * varpool.c (varpool_hash): Remove.
19250         (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
19251         (varpool_node): Rewrite using varpool_get_node.
19252         (varpool_remove_node): DO not maintain hashtables.
19253         (varpool_node_for_asm): Rewrite.
19254
19255 2012-04-16  Sandra Loosemore  <sandra@codesourcery.com>
19256
19257         * doc/invoke.texi:  Copy-edit to put verbs in the present tense
19258         when describing the current behavior of GCC.
19259
19260 2012-04-16  Richard Sandiford  <rdsandiford@googlemail.com>
19261
19262         * genemit.c (gen_exp): Remove ADDRESS handling.
19263         * genoutput.c (scan_operands): Likewise.
19264         * genpeep.c (match_rtx): Likewise.
19265         * genrecog.c (add_to_sequence): Likewise.
19266
19267 2012-04-16  David Edelsohn  <dje.gcc@gmail.com>
19268
19269         * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
19270
19271 2012-04-16  Martin Jambor  <mjambor@suse.cz>
19272
19273         * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
19274         bit-fields.
19275
19276 2012-04-16  Ulrich Weigand  <ulrich.weigand@linaro.org>
19277
19278         PR target/51819
19279         * config/arm/arm.c (arm_print_operand): Fix invalid alignment
19280         hints for 'A' operand types.
19281
19282 2012-04-16  Jan Hubicka  <jh@suse.cz>
19283
19284         * cgraph.h (symtab_node_base): Add next and previous pointers.
19285         (cgraph_node): Remove next and preivous pointers.
19286         (varpool_node): Likewise; remove next/previous GTY marker;
19287         it is not type safe.
19288         (symtab_node_def): Update GTY marker
19289         (x_cgraph_nodes, cgraph_nodes): Remove.
19290         (symtab_nodes): New function.
19291         (cgraph_order): Rename to ...
19292         (symtab_order): ... this one.
19293         (symtab_register_node, symtab_unregister_node, symtab_remove_node):
19294         Declare.
19295         (x_varpool_nodes, varpool_nodes): Remove.
19296         (FOR_EACH_STATIC_VARIABLE): Update.
19297         (symtab_function_p, symtab_variable_p): New function.
19298         (FOR_EACH_VARIABLE): Update.
19299         (varpool_first_variable, varpool_next_variable): New functions.
19300         (FOR_EACH_VARIABLE): Update.
19301         (cgraph_first_defined_function): Update.
19302         (cgraph_next_defined_function, cgraph_next_defined_function): Update.
19303         (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
19304         (cgraph_first_function, cgraph_next_function): New.
19305         (FOR_EACH_FUNCTION): Update.
19306         (cgraph_first_function_with_gimple_body,
19307         cgraph_next_function_with_gimple_body): Update.
19308         * symtab.c: New file.
19309         * cgraph.c: Update copyright dates.
19310         (x_cgraph_nodes, cgraph_order): Remove.
19311         (NEXT_FREE_NODE): Update.
19312         (SET_NEXT_FREE_NODE): New.
19313         (cgraph_create_node_1): Remove common code.
19314         (cgraph_create_node): Remove common code; call symtab_register_node.
19315         (cgraph_remove_node): Remove common code; call symtab_unregister-node.
19316         (cgraph_add_asm_node): Update.
19317         (cgraph_clone_node): Register new node.
19318         * cgraphunit.c (process_function_and_variable_attributes): Update.
19319         (cgraph_analyze_functions): Update.
19320         (cgraph_analyze_functions): Update.
19321         (cgraph_output_in_order): Update.
19322         * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
19323         Update.
19324         * ipa-inline.c (recursive_inlining): Update.
19325         * lto-streamer-in.c (lto_input_toplevel_asms): Update.
19326         * ipa.c (cgraph_remove_unreachable_nodes): Update.
19327         * Makefile.in: Add symtab.o
19328         * varpool.c (x_varpool_nodes): Remove
19329         (varpool_node): Remove common code; call symtab_register_node.
19330         (varpool_remove_node): Remove common code; call symtab_unregister_node.
19331
19332 2012-04-16  Richard Guenther  <rguenther@suse.de>
19333
19334         PR middle-end/52977
19335         * tree.h (VECTOR_CST_NELTS): Adjust.
19336         (struct tree_vector): Add explicit length field.
19337         (make_vector_stat): Declare.
19338         (make_vector): Define.
19339         * tree.c (make_vector_stat): New function.
19340         (build_vector_stat): Use it.
19341         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
19342
19343 2012-04-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19344
19345         PR tree-optimization/52976
19346         * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
19347         (undistribute_ops_list): Ops with repeat counts aren't eligible for
19348         undistribution.
19349         (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
19350
19351 2012-04-16  Jan Hubicka  <jh@suse.cz>
19352
19353         * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
19354         New macros.
19355         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
19356         walkers to walk cgraph and varpool.
19357         * cgraph.c (cgraph_node_for_asm): Likewise.
19358         (dump_cgraph): Likewise.
19359         * value-prof.c (init_node_map): Likewise.
19360         * tree.c (free_lang_data_in_cgraph): Likewise.
19361         * tree-emutls.c: (ipa_lower_emutls): Likewise.
19362         * ipa-reference.c (generate_summary, propagate): Likewise.
19363         * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
19364         cgraph_mark_functions_to_output, cgraph_output_in_order,
19365         output_weakrefs, cgraph_materialize_all_clones,
19366         cgraph_optimize): Likewise.
19367         * lto-cgraph.c (merge_profile_summaries): Likewise.
19368         (input_cgraph): Likewise.
19369         * ipa-pure-const.c (generate_summary): Likewise.
19370         (propagate): Likwise.
19371         * ipa-utils.c (ipa_reduced_postorder): Likewise.
19372         (ipa_free_postorder_info): Likewise.
19373         (ipa_reverse_postorder): Likewise.
19374         * ipa-inline.c (ipa_inline): Likewise.
19375         * matrix-reorg.c (find_matrices_decl): Likewise.
19376         (matrix_reorg): Likewise.
19377         * tree-vectorizer.c (increase_alignment): Likewise.
19378         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
19379         (function_and_variable_visibility): Likewise.
19380         (whole_program_function_and_variable_visibility): Likewise.
19381         (ipa_cdtor_merge): Likewise.
19382         * trans-mem.c (ipa_tm_execute): Likewise.
19383         * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
19384         * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
19385         (ipa_print_all_params): Likewise.
19386         (ipa_update_after_lto_read): Likewise.
19387         * tree-profie.c (tree_profiling): Likewise.
19388         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
19389         * passes.c (dump_passes): Likewise.
19390         (do_per_function): Likewise.
19391         (ipa_write_summaries): Likewise.
19392         * varpool.c (dump_varpool): Likewise.
19393         (varpool_node_for_asm): Likewise.
19394         (varpool_assemble_pending_decls): Likewise.
19395
19396 2012-04-16  Richard Guenther  <rguenther@suse.de>
19397
19398         PR tree-optimization/52975
19399         * tree-if-conv.c (predicate_bbs): Do not simplify inverted
19400         condition but always mark it with TRUTH_NOT_EXPR.
19401
19402 2012-04-16  Richard Guenther  <rguenther@suse.de>
19403
19404         PR tree-optimization/52975
19405         * tree-ssa-forwprop.c (combine_cond_exprs): New function.
19406         (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
19407         and VEC_COND_EXPRs.  Also combine into VEC_COND_EXPRs condition.
19408         * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
19409
19410 2012-04-14  Uros Bizjak  <ubizjak@gmail.com>
19411
19412         * config/i386/sse.md (ssse3_plusminus): New code iterator.
19413         (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
19414         avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
19415         (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
19416         ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
19417         (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
19418         ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
19419
19420         (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
19421         avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
19422         (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
19423         ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
19424         (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
19425         ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
19426
19427         (xop_plus): New code iterator.
19428         (macs): New code attribute.
19429         (macds): Ditto.
19430         (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
19431         xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
19432         iterator.
19433         (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
19434         xop_plus code iterator.
19435         (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
19436         xop_plus code iterator.
19437         (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
19438         xop_plus code iterator.
19439         (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
19440         xop_plus code iterator.
19441
19442         (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
19443         any_extend code iterator.
19444         (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
19445         any_extend code iterator.
19446         (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
19447         any_extend code iterator.
19448         (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
19449         any_extend code iterator.
19450         (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
19451         any_extend code iterator.
19452         (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
19453         any_extend code iterator.
19454
19455 2012-04-14  Tom de Vries  <tom@codesourcery.com>
19456
19457         * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
19458         call to delete_insn.  Remove code to reorder BASIC_BLOCK note and
19459         DELETED_LABEL note, and move it to ...
19460         * cfgrtl.c (delete_insn): ... here.  Change return type to void.
19461         (delete_insn_and_edges): Likewise.
19462         (delete_insn_chain): Handle new return type of delete_insn.  Delete
19463         chain backwards rather than forwards.
19464         * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
19465         void.
19466         * cfglayout.c (fixup_reorder_chain): Delete unused label.
19467
19468 2012-04-14  Jan Hubicka  <jh@suse.cz>
19469
19470         * cgraph.h: Update copyrights;
19471         (symtab_node): Turn to union typedef.
19472         (symtab_node_base): New structure.
19473         (symtab_type): Add SYMTAB_SYMBOL tag.
19474         (cgraph_node): Annotate some pinters with nested_ptr.
19475         (varpool_node): Likewise.
19476         (cgraph_local_info): Remove lto_file_data
19477         and externally_visible.
19478         (cgraph_node): Remove decl; same_comdat_group list;
19479         aux; ref_list; order; address_taken; reachable_from_other_parittion,
19480         in_other_partition; resolution.
19481         (varpool_node): Remove decl; same_comdat_group;
19482         ref_list; lto_file_data; aux; order; resolution; externally_visible;
19483         used_from_other_partition; in_other_partition.
19484         (symtab_node_def): New union.
19485         (cgraph, varpool): Update.
19486         (varpool_first_static_initializer, varpool_next_static_initializer,
19487         cgraph_only_called_directly_or_aliased_p,
19488         varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
19489         varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
19490         varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
19491         field references.
19492         * cgraph.c: Likewise.
19493         (cgraph_hash, assembler_name_hash): Turn into symtab_node.
19494         * cgraphbuild.c: Likewise.
19495         * lto-symtab.c: Likewise.
19496         * c-gimplify.c: Likewise.
19497         * value-prof.c: Likewise.
19498         * tree.c: Likewise.
19499         * ipa-cp.c: Likewise.
19500         * tree-emutls.c: Likewise.
19501         * ipa-inline-transform.c: Likwise.
19502         * ipa-reference.c: Likewise.
19503         * cgraphunit.c: Likewise.
19504         * ipa-ref.c: Likewise.
19505         * lto-cgraph.c: Likewise.
19506         * ipa-ref-inline.h: Likewise.
19507         * ipa-pure-const.c: Likewise.
19508         * lto-streamer-out.c: Likewise.
19509         * ipa-utils.c: Likewise.
19510         * ipa-inline.c: Likewise.
19511         * matrix-reorg.c: Likewise.
19512         * tree-eh.c: Likewise.
19513         * tree-vectorizer.c: Likewise.
19514         * ipa-split.c: Likewise.
19515         * ipa.c: Likewise.
19516         * trans-mem.c: Likewise.
19517         * ipa-inline-analysis.c: Likewise.
19518         * gimplify.c: Likewise.
19519         * cfgexpand.c: Likewise.
19520         * tree-sra.c: Likewise.
19521         * ipa-prop.c: Likewise.
19522         * varasm.c: Likewise.
19523         * tree-nested.c: Likewise.
19524         * tree-inline.c: Likewise.
19525         * tree-profile.c: Likewise.
19526         * tree-ssa-structalias.c: Likewise.
19527         * passes.c: Likewise.
19528         * varpool.c: Likewise.
19529
19530 2012-04-14  Tom de Vries  <tom@codesourcery.com>
19531
19532         * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
19533         same_succ_hash, with local_def inlined.  Use SINGLE_SSA_DEF_OPERAND.
19534         Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.  Remove use
19535         of find_edge.
19536         (gsi_advance_fw_nondebug_nonlocal): New function.
19537         (local_def): Removed function.
19538         (same_succ_hash): Use stmt_local_def.
19539         (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
19540         (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
19541
19542 2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>
19543
19544         * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
19545         and __ILP32__ for x32.
19546
19547 2012-04-13  Martin Jambor  <mjambor@suse.cz>
19548
19549         PR middle-end/52939
19550         * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
19551         fold_ctor_reference returns a zero constant.
19552
19553 2012-04-13  Enkovich Ilya  <ilya.enkovich@intel.com>
19554
19555         * config.gcc: Add i386/gnu-user-common.h before all
19556         i386/gnu-user.h and i386/gnu-user64.h usages.
19557
19558         * config/i386/gnu-user-common.h: New.
19559
19560         * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
19561         (CC1_SPEC): Likewise.
19562         (ENDFILE_SPEC): Likewise.
19563         (DEFAULT_PCC_STRUCT_RETURN): Likewise.
19564         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
19565         (TARGET_OS_CPP_BUILTINS): Likewise.
19566         (LIBGCC2_HAS_TF_MODE): Likewise.
19567         (LIBGCC2_TF_CEXT): Likewise.
19568         (TF_SIZE): Likewise.
19569         (TARGET_ASM_FILE_END): Likewise.
19570         (STACK_CHECK_MOVING_SP): Likewise.
19571         (STACK_CHECK_STATIC_BUILTIN): Likewise.
19572         * config/i386/gnu-user64.h: Likewise.
19573
19574 2012-04-13  Martin Jambor  <mjambor@suse.cz>
19575
19576         * expr.c (expand_expr_real_1): Pass type, not the expression, to
19577         set_mem_attributes for a memory temporary. Do not call the function
19578         for the memory temporary created for a bitfield.
19579
19580 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
19581
19582         PR debug/48866
19583         * df.h (enum debug_temp_where): New.
19584         (dead_debug_init, dead_debug_finish) Declare.
19585         (dead_debug_add, dead_debug_insert_temp): Declare.
19586         (struct dead_debug_use, struct dead_debug): Moved from...
19587         * df-problems.c: ... here.
19588         (df_set_unused_notes_for_mw): Bind debug uses of unused regno
19589         to a debug temp.
19590         (df_create_unused_note): Likewise.
19591         (df_set_dead_notes_for_mw): Move comment where it belongs.
19592         (dead_debug_init): Export.
19593         (dead_debug_reset_uses): New, factored out of...
19594         (dead_debug_finish): ...this.  Export.
19595         (dead_debug_reset): Remove.
19596         (dead_debug_add): Export.
19597         (dead_debug_insert_before): Rename to...
19598         (dead_debug_insert_temp): ... this.  Add where argument.  Export.
19599         Locate stored value for BEFORE_WITH_VALUE.  Avoid repeat inserts.
19600         Return insertion count.
19601         (df_note_bb_compute): Adjust.
19602         * dce.c (word_dce_process_block): Adjust dead debug uses.
19603         (dce_process_block): Likewise.
19604
19605 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
19606
19607         * df-problems.c (df_note_bb_compute): Do not take note of
19608         debug uses for whose REGs we won't emit DEAD or UNUSED notes.
19609
19610 2012-04-13  Alexandre Oliva  <aoliva@redhat.com>
19611
19612         PR debug/51570
19613         * var-tracking.c (expand_depth): New type.
19614         (onepart_aux, expand_loc_callback_data): Change depth type to it.
19615         (loc_exp_dep_alloc): Adjust initializer.
19616         (update_depth): Use new type.  Add entryvals.
19617         (vt_expand_var_loc_chain): Take note of expansions with
19618         ENTRY_VALUEs, but don't accept them right away.  Run an optional
19619         second pass accepting the minimum ENTRY_VALUE count found in the
19620         first pass.
19621         (vt_expand_loc_callback, INIT_ELCD): Adjust.
19622
19623 2012-04-13  Tom de Vries  <tom@codesourcery.com>
19624
19625         * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
19626         parameters vuse and vuse_escaped.
19627         (find_duplicate): Init vuse1, vuse2 and vuse_escaped.  Pass to
19628         gsi_advance_bw_nondebug_nonlocal.  Return if vuse_escaped and
19629         vuse1 != vuse2.
19630
19631 2012-04-13  Richard Guenther  <rguenther@suse.de>
19632
19633         PR tree-optimization/52969
19634         * tree-if-conv.c (predicate_mem_writes): Properly gimplify
19635         the condition for the COND_EXPR and handle predicate negation
19636         by swapping the COND_EXPR arms.
19637
19638 2012-04-13  Nick Clifton  <nickc@redhat.com>
19639
19640         * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
19641         TODO_dump_func flag.
19642
19643 2012-04-13  Andrey Belevantsev  <abel@ispras.ru>
19644
19645         PR rtl-optimization/52203
19646         PR rtl-optimization/52715
19647
19648         Revert the 2012-03-07 fix for PR 52203.
19649         * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
19650         the insn does not modify DFA right before issuing, adjust
19651         issue_rate accordingly.
19652
19653 2012-04-13  Richard Guenther  <rguenther@suse.de>
19654
19655         PR c/52549
19656         * c-typeck.c (pointer_diff): Remove bogus assert.
19657
19658 2012-04-13  Richard Guenther  <rguenther@suse.de>
19659
19660         PR c/52862
19661         * convert.c (convert_to_pointer): Remove special-casing of zero.
19662
19663 2012-04-13  Joey Ye  <joey.ye@arm.com>
19664
19665         * config/arm/constraints.md (Pe): New constraint.
19666         * config/arm/arm.md: New split for imm 256-510.
19667
19668 2012-04-13  Terry Guo  <terry.guo@arm.com>
19669
19670         * config/arm/arm-cores.def: Added core cortex-m0plus.
19671         * config/arm/arm-tune.md: Regenerated.
19672         * config/arm/arm-tables.opt: Regenerated.
19673         * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
19674
19675 2012-04-13  Alan Modra  <amodra@gmail.com>
19676
19677         PR target/52828
19678         * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
19679         tie regs on destination of sets.  Delete forward declaration.
19680         (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
19681         (rs6000_emit_prologue): Likewise.
19682         (rs6000_emit_epilogue): Likewise.  Use in place of gen_frame_tie
19683         and gen_stack_tie.
19684         (is_mem_ref): Use tie_operand to recognise stack ties.
19685         * config/rs6000/predicates.md (tie_operand): New.
19686         * config/rs6000/rs6000.md (restore_stack_block): Generate new
19687         stack tie rtl.
19688         (restore_stack_nonlocal): Likewise.
19689         (stack_tie): Update.
19690         (frame_tie): Delete.
19691
19692 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19693
19694         * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
19695         HOST_WIDE_INT_PRINT_DEC in format strings.
19696
19697 2012-04-12  Uros Bizjak  <ubizjak@gmail.com>
19698
19699         PR target/52932
19700         * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
19701         argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
19702         * config/i386/sse.md (UNSPEC_VPERMVAR): New.
19703         (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
19704         (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
19705         (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
19706         avx2_permvarv8si using VI4F_256 mode iterator.
19707         * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
19708         Update builtin type to V8SF_FTYPE_V8SF_V8SI.
19709         (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
19710         gen_avx2_permvarv8sf.
19711         (expand_vec_perm_pshufb): Ditto.
19712
19713 2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19714
19715         PR target/52775
19716         * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
19717         the list of options to enable the FCFID instruction.
19718         (TARGET_EXTRA_BUILTINS): Adjust comment.
19719
19720 2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19721
19722         PR tree-optimization/18589
19723         * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
19724         (operand_entry): Add count field.
19725         (add_repeat_to_ops_vec): New function.
19726         (completely_remove_stmt): Likewise.
19727         (remove_def_if_absorbed_call): Likewise.
19728         (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
19729         (acceptable_pow_call): New function.
19730         (linearize_expr_tree): Look for builtin pow/powi calls and add operand
19731         entries with repeat counts when found.
19732         (repeat_factor_d): New struct and associated typedefs.
19733         (repeat_factor_vec): New static vector variable.
19734         (compare_repeat_factors): New function.
19735         (get_reassoc_pow_ssa_name): Likewise.
19736         (attempt_builtin_powi): Likewise.
19737         (reassociate_bb): Call attempt_builtin_powi.
19738         (fini_reassoc): Two new calls to statistics_counter_event.
19739
19740 2012-04-12  Richard Guenther  <rguenther@suse.de>
19741
19742         * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
19743         * cgraph.h (tree_rest_of_compilation): Remove.
19744         * cgraph.c (cgraph_add_new_function): Move ...
19745         * cgraphunit.c (cgraph_add_new_function): ... here.
19746         (tree_rest_of_compilation): Make static.
19747         (cgraph_expand_function): Do not set cgraph_function_flags_ready.
19748         * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
19749         gate_all_early_local_passes, execute_all_early_local_passes,
19750         pass_early_local_passes, gate_all_early_optimizations,
19751         pass_all_early_optimizations): Move ...
19752         * passes.c (gate_all_optimizations, pass_all_optimizations,
19753         gate_all_early_local_passes, execute_all_early_local_passes,
19754         pass_early_local_passes, gate_all_early_optimizations,
19755         pass_all_early_optimizations): ... here.
19756         * tree-optimize.c (execute_free_datastructures): Remove.
19757         * tree-flow.h (execute_free_datastructures): Remove.
19758         * tree-optimize.c (execute_init_datastructures,
19759         pass_init_datastructures): Move ...
19760         * tree-ssa.c (execute_init_datastructures,
19761         pass_init_datastructures): ... here.
19762         * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
19763         execute_free_datastructures.
19764
19765 2012-04-12  Bernd Schmidt  <bernds@codesourcery.com>
19766
19767         * dbgcnt.def (ira_move): New counter.
19768         * ira-int.h (ira_create_new_reg): Declare function.
19769         (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
19770         * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
19771         no longer static.  All callers changed.
19772         * ira.c: Include "dbgcnt.h".
19773         (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
19774         move_unallocated_pseudos): New static functions.
19775         (first_moveable_pseudo, last_moveable_pseudo): New global variables.
19776         (pseudo_replaced_reg, pseudo_move_insn): New static variables.
19777         (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
19778         * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
19779         to the pseudos generated in find_moveable_pseudos.
19780         * Makefile.in (ira.o): Add $(DBGCNT_H).
19781
19782 2012-04-12  Richard Guenther  <rguenther@suse.de>
19783
19784         PR tree-optimization/52943
19785         * tree-chrec.h (chrec_is_positive): Remove.
19786         * tree-scalar-evolution.c (chrec_is_positive): Move ...
19787         * tree-data-ref.c (chrec_is_positive): ... here.  Make static.
19788         Return false for a constant zero instead of negative.
19789         (analyze_siv_subscript_cst_affine): Handle zero difference
19790         in the initial condition explicitely.
19791
19792 2012-04-12  Richard Guenther  <rguenther@suse.de>
19793
19794         * tree-parloops.c (parallelize_loops): Also consult the upper
19795         bound for the number of iterations.
19796         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
19797         (loop_prefetch_arrays): Likewise.
19798
19799 2012-04-12  Richard Guenther  <rguenther@suse.de>
19800
19801         * cfgloop.h (estimated_loop_iterations_int): Ditch
19802         'conservative' parameter.
19803         (max_stmt_executions_int): Likewise.
19804         (estimated_loop_iterations): Likewise.
19805         (max_stmt_executions): Likewise.
19806         (max_loop_iterations): Declare.
19807         (max_loop_iterations_int): Likewise.
19808         (estimated_stmt_executions): Likewise.
19809         (estimated_stmt_executions_int): Likewise.
19810         * tree-ssa-loop-niter.c (estimated_loop_iterations):
19811         Split parts to ...
19812         (max_loop_iterations): ... this.
19813         (estimated_loop_iterations_int): Split parts to ...
19814         (max_loop_iterations_int): ... this.
19815         (max_stmt_executions_int): Split parts to ...
19816         (estimated_stmt_executions_int): ... this.
19817         (max_stmt_executions): Split parts to ...
19818         (estimated_stmt_executions): ... this.
19819         * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
19820         * predict.c (predict_loops): Likewise.
19821         * tree-data-ref.c (max_stmt_executions_tree): Likewise.
19822         (analyze_siv_subscript_cst_affine): Likewise.
19823         (compute_overlap_steps_for_affine_1_2): Likewise.
19824         (analyze_subscript_affine_affine): Likewise.
19825         (init_omega_for_ddr_1): Likewise.
19826         * tree-parloops.c (parallelize_loops): Likewise.
19827         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19828         (may_eliminate_iv): Likewise.
19829         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
19830         (loop_prefetch_arrays): Likewise.
19831         * tree-vrp.c (adjust_range_with_scev): Likewise.
19832
19833 2012-04-12  Oleg Endo  <olegendo@gcc.gnu.org>
19834
19835         * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
19836         * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
19837         Fix line width.
19838         (dump_table): Use bool type for need_align and have_df variables.
19839         (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
19840         (regs_used): Remove register modifier.
19841         (barrier_align): Move variables slot, credit, jump_to_next
19842         into if block above for loop.  Use bool type for jump_to_next.
19843         (sh_function_arg): Use NULL_RTX instead of 0.
19844
19845 2012-04-11  Andreas Schwab  <schwab@linux-m68k.org>
19846
19847         * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
19848         (bswapsi2): New expander.
19849
19850 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
19851
19852         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
19853         0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
19854
19855 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
19856
19857         PR rtl-optimization/52876
19858         * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
19859         Don't call mark_reg_pointer for incompatible pointer sign extension.
19860
19861         * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
19862         directly.
19863
19864 2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>
19865
19866         * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
19867         comparisons against TYPE_PRECISION.
19868         * tree-ssa-forwprop.c (combine_conversions): Likewise.
19869
19870 2012-04-11  Xinliang David Li  <davidxl@google.com>
19871
19872         * tree-passes.h: Remove TODO_dump_func.
19873         * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
19874         * trans-mem.c: Remove TODO_dump_func.
19875         * ira.c: Remove TODO_dump_func.
19876
19877 2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>
19878
19879         * config/i386/i386.c (ix86_option_override_internal): Check
19880         SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
19881         after TARGET_64BIT is updated.
19882
19883 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
19884
19885         * config/sh/sh.h: Remove old secondary reload code.
19886
19887 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
19888
19889         * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
19890         (ready_reorder): ... this function.
19891
19892 2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>
19893
19894         * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
19895         sched_init calls.
19896
19897         * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
19898         insns so that no other insn is queued for a time before them.
19899
19900         * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
19901         unknown.
19902
19903 2012-04-11  Richard Guenther  <rguenther@suse.de>
19904
19905         PR middle-end/52621
19906         * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
19907         consider loop nesting.
19908         (evolution_function_is_univariate_p): Properly check the remainder
19909         for chrecs.
19910
19911 2012-04-11  Richard Guenther  <rguenther@suse.de>
19912
19913         PR middle-end/52918
19914         * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
19915
19916 2012-04-11  Nick Clifton  <nickc@redhat.com>
19917
19918         * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
19919         information, if requested.
19920
19921         * config/rx/rx.c (rx_expand_prologue): Likewise.
19922
19923 2012-04-11  Peter Bergner  <bergner@vnet.ibm.com>
19924             Michael Matz  <matz@suse.de>
19925
19926         PR target/16458
19927         * rtlanal.c (unsigned_reg_p): New function.
19928         Update copyright notice dates.
19929         * rtl.h (unsigned_reg_p): Prototype it.
19930         Update copyright notice dates.
19931         * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
19932         Update comment.
19933         * expr.c (expand_expr_real_1): Set register attributes.
19934         * stmt.c (expand_case): Likewise.
19935
19936 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
19937
19938         PR target/50751
19939         * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
19940         consider_sh2a and allow_zero.
19941         * config/sh/sh.c (sh_legitimate_index_p): Likewise.
19942         (disp_addr_displacement): New function.
19943         (sh_address_cost): Use disp_addr_displacement function instead
19944         of DISP_ADDR_OFFSET.
19945         (sh_legitimate_address_p): Adapt to changed
19946         sh_legitimate_index_p declaration.
19947         (sh_find_mov_disp_adjust): Remove HImode check.
19948         (sh_secondary_reload): Add HImode case.  Use satisfies_constraint_Sdd,
19949         disp_addr_displacement and max_mov_insn_displacement.
19950         (max_mov_insn_displacement): Remove HImode check.
19951         * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
19952         DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
19953         * config/sh/constraints.md (K05, K13): New constraints.
19954         (K12): Correct comment.
19955         (Sdd): Do not use DISP_ADDR_P macro.
19956         (Snd, Sbw): Use satisfies_constraint_Sdd.
19957         * config/sh/sh.md (extendhisi2): Remove constraints from expander.
19958         (*extendhisi2_compact, movhi_i): Remove.
19959         (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
19960         *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
19961         *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
19962         *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
19963         (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
19964         *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
19965         *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
19966         CONST_OK_FOR_Kxx.
19967         Add new peepholes for HImode displacement addressing.
19968
19969 2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>
19970
19971         * config/sh/sh.h (SIDI_OFF): Remove.
19972         * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
19973         DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
19974         or operand_subword.
19975
19976 2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>
19977
19978         PR target/52624
19979         * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
19980         (PowerPC AltiVec/VSX Built-in Functions): Remove it.
19981         * doc/md.texi (Standard Names): Add bswap.
19982         * builtin-types.def (BT_UINT16): New primitive type.
19983         (BT_FN_UINT16_UINT16): New function type.
19984         * builtins.def (BUILT_IN_BSWAP16): New.
19985         * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
19986         (expand_builtin) <BUILT_IN_BSWAP16>: New case.  Pass TARGET_MODE to
19987         expand_builtin_bswap.
19988         (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
19989         (fold_builtin_1): Likewise.
19990         (is_inexpensive_builtin): Likewise.
19991         * optabs.c (expand_unop): Deal with bswap in HImode specially.  Add
19992         missing bits for bswap to libcall code.
19993         * tree.c (build_common_tree_nodes): Build uint16_type_node.
19994         * tree.h (enum tree_index): Add TI_UINT16_TYPE.
19995         (uint16_type_node): New define.
19996         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
19997         * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
19998         above builtin.
19999         (rs6000_init_builtins): Likewise.
20000         * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
20001
20002 2012-04-11  Tristan Gingold  <gingold@adacore.com>
20003
20004         * doc/extend.texi (Type Attributes): Move paragraph.
20005
20006 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20007
20008         PR 24985
20009         * diagnostic.h (show_caret): Declare.
20010         (caret_max_width): Declare.
20011         (diagnostic_show_locus): Declare.
20012         * diagnostic.c (diagnostic_initialize): Initialize to false.
20013         (diagnostic_show_locus): New.
20014         (diagnostic_report_diagnostic): Call it.
20015         (getenv_columns): New.
20016         (adjust_line): New.
20017         (diagnostic_set_caret_max_width): New.
20018         * input.c (read_line): New.
20019         (location_get_source_line): New.
20020         * input.h (location_get_source_line): Declare.
20021         * toplev.c (general_init): Initialize show_caret from options.
20022         * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
20023         * opts.c (common_handle_option): Likewise.
20024         * pretty-print.h (pp_get_prefix): New.
20025         (pp_base_get_prefix): New.
20026         * common.opt (fdiagnostics-show-caret): New option.
20027         * doc/invoke.texi (fdiagnostics-show-caret): Document it.
20028
20029 2012-04-11  Richard Guenther  <rguenther@suse.de>
20030
20031         PR rtl-optimization/52881
20032         * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
20033
20034 2012-04-11  Richard Guenther  <rguenther@suse.de>
20035
20036         PR tree-optimization/52912
20037         * tree-ssa-threadupdate.c (thread_block): Tell the cfg
20038         manipulation code we are threading through a loop header
20039         to an exit destination.
20040
20041 2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20042
20043         * tree.h (warn_if_unused_value): Move declaration from here.
20044         * stmt.c (warn_if_unused_value): Move definition from here.
20045
20046 2012-04-10  Michael Matz  <matz@suse.de>
20047
20048         * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
20049         grouped_stores.
20050         (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
20051         (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
20052         (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
20053         (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
20054         (vect_strided_store_supported): Rename to vect_grouped_store_supported.
20055         (vect_strided_load_supported): Rename to vect_grouped_load_supported.
20056         (vect_transform_strided_load): Rename to vect_transform_grouped_load.
20057         (vect_record_strided_load_vectors): Rename to
20058         vect_record_grouped_load_vectors.
20059         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
20060         Rename use of above macros.
20061         (vect_verify_datarefs_alignment): Ditto.
20062         (vector_alignment_reachable_p): Ditto.
20063         (vect_peeling_hash_get_lowest_cost): Ditto.
20064         (vect_enhance_data_refs_alignment): Ditto.
20065         (vect_analyze_group_access): Ditto and rename stride to groupsize.
20066         (vect_analyze_data_ref_access): Rename "strided" to "grouped".
20067         (vect_strided_store_supported): Rename to vect_grouped_store_supported.
20068         (vect_strided_load_supported): Rename to vect_grouped_load_supported.
20069         (vect_transform_strided_load): Rename to vect_transform_grouped_load.
20070         (vect_record_strided_load_vectors): Rename to
20071         vect_record_grouped_load_vectors.
20072         * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
20073         (destroy_loop_vec_info): Ditto.
20074         (vect_transform_loop): Ditto and rename strided_store to grouped_store.
20075         * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
20076         (vect_analyze_slp): Ditto.
20077         (new_bb_vec_info): Ditto.
20078         (destroy_bb_vec_info): Ditto.
20079         (vect_schedule_slp_instance): Ditto and rename strided_store to
20080         grouped_store.
20081         * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
20082         vect_cost_group_size.
20083         (vect_model_store_cost): Rename use of above macros and call
20084         to vect_cost_strided_group_size.
20085         (vect_model_load_cost): Ditto.
20086         (vectorizable_store): Ditto, rename strided_store to grouped_store
20087         and calls to renamed tree-vectorizer.h functions.
20088         (vectorizable_load): Ditto.
20089         (vect_transform_stmt): Rename use of above macros and strided_store
20090         to grouped_store.
20091
20092 2012-04-10  Jan Hubicka  <jh@suse.cz>
20093
20094         * cgraph.h: Remove misledaing comment on ipa-ref.h.
20095         (symtab_type): New enum.
20096         (symtab_node): New structure.
20097         (cgraph_node, varpool_node): Add symbol base type.
20098         (cgraph, varpool): New accestor functions.
20099         * cgraph.c (cgraph_create_node_1): Set symbol type.
20100         * varpool.c (varpool_node): Set symbol type.
20101
20102 2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
20103             Richard Sandiford  <rdsandiford@googlemail.com>
20104
20105         * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
20106
20107 2012-04-10  Richard Guenther  <rguenther@suse.de>
20108
20109         PR middle-end/52888
20110         * gimple-low.c (gimple_check_call_args): Properly account for
20111         compatible aggregate types.
20112
20113 2012-04-10  Richard Guenther  <rguenther@suse.de>
20114
20115         * toplev.h (tree_rest_of_compilation): Remove.
20116         * tree-optimize.c (tree_rest_of_compilation): Likewise.
20117         * cgraph.h (tree_rest_of_compilation): Declare.
20118         * tree-optimize.c (tree_rest_of_compilation): Move ...
20119         * cgraphunit.c (tree_rest_of_compilation): ... here.
20120         * cgraph.c (cgraph_add_new_function): Adjust.
20121         * Makefile.in (tree-optimize.o): Adjust.
20122         (cgraphunit.o): Likewise.
20123
20124 2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
20125
20126         PR tree-optimization/52870
20127         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
20128         presumed pattern statement is within the same loop or basic block.
20129
20130 2012-04-10  Tristan Gingold  <gingold@adacore.com>
20131
20132         * gengtype.c (main): Make uintptr_t a known type.
20133
20134 2012-04-10  Richard Guenther  <rguenther@suse.de>
20135
20136         * tree-pass.h (tree_lowering_passes): Remove.
20137         * tree-optimize.c (tree_lowering_passes): Remove.
20138         * cgraph.c (cgraph_add_new_function): Inline relevant parts
20139         of tree_lowering_passes, avoid redundant call of early local passes.
20140         * cgraphunit.c (cgraph_lower_function): Fold into ...
20141         (cgraph_analyze_function): ... its single caller.  Inline
20142         relevant parts of tree_lowering_passes.
20143
20144 2012-04-09  H.J. Lu  <hongjiu.lu@intel.com>
20145
20146         PR other/52777
20147         * config/pa/pa.opt: Remove SIO and GNU_LD.
20148
20149 2012-04-09  Jan Hubicka  <jh@suse.cz>
20150
20151         PR lto/52722
20152         PR lto/51765
20153         PR lto/52634
20154         * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
20155         boundary, add its target too.
20156         * lto.c (add_references_to_partition): Add also aliased nodes.
20157         (add_cgraph_node_to_partition,
20158         add_varpool_node_to_partition): Work on nodes, not functions/variables;
20159         when adding alias, add also the aliased object.
20160
20161 2012-04-09  Uros Bizjak  <ubizjak@gmail.com>
20162
20163         PR target/52883
20164         * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
20165         VOIDmode immediate operands.
20166         * config/i386/constraints.md (Wz): New constraint.
20167         * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
20168
20169 2012-04-09  Eric Botcazou  <ebotcazou@adacore.com>
20170
20171         PR target/52717
20172         * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
20173         the DECL generated for the special GOT helper.
20174
20175 2012-04-09  Oleg Endo  <olegendo@gcc.gnu.org>
20176
20177         * config/sh/constraints.md: Update list of constraints in
20178         comment block.
20179         (Sr0): Remove unused memory constraint.
20180
20181 2012-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20182
20183         * tree-pretty-print.h: Update comment.
20184
20185 2012-04-08  Oleg Endo  <olegendo@gcc.gnu.org>
20186
20187         * config/sh/sh.md: Use braced string notation where applicable.
20188         (*prefetch_i4, prefetch_m2a): Merge into ...
20189         (*prefetch): ... this new insn.
20190
20191 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
20192
20193         * config/sh/sh.h (high_life_started): Remove
20194         * config/sh/predicates.md (general_movdst_operand): Use
20195         'reload_in_progress' instead of 'high_life_started'.
20196         * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
20197         divsi_inv_fp): Likewise.
20198
20199 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
20200
20201         * config/sh/sh-protos.h (prepare_move_operands): Return void
20202         instead of int.
20203         * config/sh/sh.c (prepare_move_operands): Likewise.
20204         * config/sh/sh.md: Remove return value checks of prepare_move_operands.
20205
20206 2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>
20207
20208         * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
20209         general_movsrc_operand, general_movdst_operand, arith_reg_operand,
20210         fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
20211         logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
20212         commutative_float_operator, noncommutative_float_operator,
20213         sh_handle_pragma): Remove.
20214
20215 2012-04-06  Sandra Loosemore  <sandra@codesourcery.com>
20216
20217         * doc/invoke.texi:  Clean up Texinfo markup throughout the file.
20218         Use @option markup on command-line options.  Use @samp markup on
20219         literal keywords to options.  Use @code markup on code fragments.
20220         Use other markup in preference to quotation marks in the text.
20221         Add markup to some passages without any.
20222
20223 2012-04-06  Mike Stump  <mikestump@comcast.net>
20224
20225         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
20226
20227 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
20228
20229         * config/sh/sh.c (hi_const): Remove.
20230         (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
20231         of hi_const.
20232
20233 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
20234
20235         * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
20236         to bool.
20237         * config/sh/sh.c (sh_expand_t_scc): Likewise.
20238         * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
20239         calling sh_expand_t_scc.
20240
20241 2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>
20242
20243         * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
20244         nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
20245         sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
20246         reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
20247         sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
20248         sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
20249         check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
20250         sh2a_is_function_vector_call): Use bool as return type.
20251         (sh_pass_in_reg_p): Remove.
20252         * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
20253         flow_dependent_p, sh2a_function_vector_p, expand_block_move,
20254         expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
20255         sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
20256         sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
20257         sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
20258         fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
20259         sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
20260         sh_loads_bankedreg_p): Use bool as return type.
20261         (nonpic_symbol_mentioned_p): Use bool as return type.  Remove
20262         'register' modifier.
20263
20264 2012-04-06  Matt Turner  <mattst88@gmail.com>
20265
20266         * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
20267
20268 2012-04-06  Eric Botcazou  <ebotcazou@adacore.com>
20269
20270         * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
20271         of the destination isn't also a FP_REGS register.
20272
20273 2012-04-05  Teresa Johnson  <tejohnson@google.com>
20274             H.J. Lu  <hongjiu.lu@intel.com>
20275
20276         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
20277         * config/i386/i386.md (move immediate to memory peephole2):
20278         Add cases for HImode move when LCP stall avoidance is needed.
20279         * config/i386/i386.c (initial_ix86_tune_features): Initialize
20280         X86_TUNE_LCP_STALL entry.
20281
20282 2012-04-05  Uros Bizjak  <ubizjak@gmail.com>
20283
20284         PR target/52882
20285         * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
20286         CONST_INT operands, zero-extended with AND.
20287
20288 2012-04-05  Oleg Endo  <olegendo@gcc.gnu.org>
20289
20290         PR target/50751
20291         * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
20292         first argument instead of mode size.  Move displacement calculations
20293         to ...
20294         (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
20295         ... these new functions.
20296         (disp_adjust): Remove max_mov_disp field.
20297         (sh_legitimate_index_p): Use max_mov_insn_displacement and
20298         mov_insn_alignment_mask.
20299         (sh_address_cost): Use max_mov_insn_displacement.
20300
20301 2012-04-05  Andrew Stubbs  <ams@codesourcery.com>
20302
20303         * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
20304         (arch_enabled): Handle new arch types.
20305         (one_cmpldi2): Add NEON support.
20306
20307 2012-04-05  Richard Guenther  <rguenther@suse.de>
20308
20309         * gimple.c (walk_gimple_op): Compute val_only for the LHS
20310         of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
20311         (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
20312         * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
20313         ... here and make static.
20314         * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
20315         Remove.
20316
20317 2012-04-05  Richard Guenther  <rguenther@suse.de>
20318
20319         * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
20320         basic-block before removing it.
20321
20322 2012-04-05  Richard Guenther  <rguenther@suse.de>
20323
20324         * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
20325         version namespace as we release the freelist.
20326
20327 2012-04-05  Richard Guenther  <rguenther@suse.de>
20328
20329         * tree-nrv.c (tree_nrv): Release VDEFs.
20330         * tree-sra.c (sra_modify_constructor_assign): Likewise.
20331         (sra_modify_assign): Likewise.
20332         * tree-vect-stmts.c (vect_remove_stores): Likewise.
20333         * tree-vect-loop.c (vect_transform_loop): Likewise.
20334         * tree-ssa-dom.c (optimize_stmt): Likewise.
20335         * tree-vect-slp.c (vect_schedule_slp): Likewise.
20336         * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
20337
20338 2012-04-05  Richard Guenther  <rguenther@suse.de>
20339
20340         * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
20341         cleanup.
20342         * gimple.h (gsi_remove): Adjust.
20343         * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
20344         * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
20345         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
20346         * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
20347         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
20348         * tree-ssa-pre.c (eliminate): Likewise.
20349
20350 2012-04-04  Mike Stump  <mikestump@comcast.net>
20351
20352         * doc/rtl.texi (const_double): Document as sign-extending.
20353         * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
20354         * emit-rtl.c (immed_double_int_const): Refine to state the
20355         value is signed.
20356         * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
20357         CONST_DOUBLE integers.
20358         (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
20359         negative values are converted.  Fix conversions bigger than
20360         HOST_BITS_PER_WIDE_INT.
20361         (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
20362         (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
20363         * explow.c (plus_constant_mode): Add.
20364         (plus_constant): Implement with plus_constant_mode.
20365         * rtl.h (plus_constant_mode): Add.
20366
20367 2012-04-04  Richard Guenther  <rguenther@suse.de>
20368
20369         PR tree-optimization/52808
20370         * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
20371         * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
20372
20373 2012-04-04  Tristan Gingold  <gingold@adacore.com>
20374
20375         * expr.c (expand_expr_real_2): Handle larger sizetype in
20376         POINTER_PLUS_EXPR.
20377
20378 2012-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
20379
20380         * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
20381         to m2a-single instead of m2e.
20382
20383 2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
20384
20385         * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
20386         Change type of BITOFFSET to signed.  Make sure the lower bound of
20387         the computed range is non-negative by adjusting OFFSET and BITPOS.
20388         (expand_assignment): Adjust call to get_bit_range.
20389
20390 2012-04-03  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
20391
20392         * h8300/h8300.c (h8300_current_function_monitor_function_p):
20393         New function. Added to check monitor functions.
20394         (h8300_option_override): Modified to generate error/warning
20395         messages for invalid combinations of different command line
20396         options.
20397         * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
20398         save EXR on stack for monitor function in case of H8S target
20399         when "-mno-exr" is passed.
20400         * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
20401         Add prototype.
20402         * doc/invoke.texi: Document H8S options.
20403
20404 2012-04-03  Tristan Gingold  <gingold@adacore.com>
20405
20406         * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
20407         of gcc_AC_FUNC_MMAP_BLACKLIST.
20408         * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
20409         * Makefile.in (aclocal_deps): Add mmap.m4.
20410         * configure: Regenerate.
20411         * aclocal.m4: Regenerate.
20412
20413 2012-04-03  Richard Guenther  <rguenther@suse.de>
20414
20415         PR tree-optimization/52808
20416         * tracer.c (tail_duplicate): Return whether we have duplicated
20417         any block.
20418         (tracer): If we have duplicated any block, cleanup the CFG.
20419         * cfghooks.c (duplicate_block): If we duplicated a loop
20420         header but not its loop, destroy the loop because it now has
20421         multiple entries.
20422         * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
20423         the cfg manipulation routines we are not creating a multiple
20424         entry loop.
20425
20426 2012-04-03  Tristan Gingold  <gingold@adacore.com>
20427
20428         * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
20429         'byte' alignment.
20430         (vms_c_common_override_options): Allow parameterless variadic
20431         functions.
20432
20433 2012-04-03  Jakub Jelinek  <jakub@redhat.com>
20434
20435         PR tree-optimization/52835
20436         * tree-data-ref.c (build_rdg): Return NULL if
20437         compute_data_dependences_for_loop failed.
20438
20439 2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>
20440
20441         * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
20442         for REAL_CST as well.
20443         (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
20444         In the bitfield case, if the value is a REAL_CST, convert it first to
20445         an INTEGER_CST.
20446
20447 2012-04-02  H.J. Lu  <hongjiu.lu@intel.com>
20448
20449         * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
20450         for --with-abi={x32|mx32} or --with-multilib-list=mx32.
20451         (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
20452
20453         * config/i386/biarchx32.h: New.
20454
20455 2012-04-02  Anatoly Sokolov  <aesok@post.ru>
20456
20457         * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
20458         * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
20459         (arm_preferred_reload_class): New function.
20460
20461 2012-04-02  Richard Guenther  <rguenther@suse.de>
20462
20463         PR tree-optimization/52756
20464         * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
20465         (thread_through_loop_header): After threading through the loop latch
20466         remove the split part from the loop and clear further threading
20467         opportunities that would create a multiple entry loop.
20468
20469 2012-04-02  Richard Guenther  <rguenther@suse.de>
20470
20471         PR rtl-optimization/52800
20472         * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
20473         CLEANUP_CFG_CHANGED.
20474
20475 2012-04-02  Richard Guenther  <rguenther@suse.de>
20476
20477         PR middle-end/52803
20478         * loop-init.c (gate_handle_loop2): Destroy loops here if
20479         we don't enter RTL loop optimizers.
20480
20481 2012-04-02  Uros Bizjak  <ubizjak@gmail.com>
20482
20483         Partially revert:
20484         2012-03-29  Richard Guenther  <rguenther@suse.de>
20485
20486         * rtl.h (extended_count): Remove.
20487         * combine.c (extended_count): Remove.
20488
20489 2012-04-02  Dodji Seketeli  <dodji@redhat.com>
20490
20491         PR c++/40942
20492         * pt.c (more_specialized_fn):  Don't apply decay conversion to
20493         types of function parameters.
20494
20495 2012-04-02  Tristan Gingold  <gingold@adacore.com>
20496
20497         * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
20498         (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
20499         (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
20500         (ggc_pch_this_base): Use uintptr_t instead of size_t.
20501
20502 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
20503
20504         PR bootstrap/52784
20505         * config/i386/i386.c (ix86_option_override_internal): Don't
20506         check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
20507
20508 2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>
20509
20510         * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
20511         (stmt_can_make_abnormal_goto): Use it.
20512         (is_ctrl_altering_stmt): Likewise.
20513
20514 2012-03-30  Naveen H.S  <naveen.S@kpitcummins.com>
20515             Kaz Kojima  <kkojima@gcc.gnu.org>
20516
20517         * config/sh/sh.c (push_regs): Skip banked registers when
20518         resbank attribute is specified.
20519         (sh_expand_epilogue): Likewise.
20520
20521 2012-03-30  Richard Henderson  <rth@redhat.com>
20522
20523         PR debug/52727
20524         * combine-stack-adj.c (prev_active_insn_bb): New.
20525         (next_active_insn_bb): New.
20526         (force_move_args_size_note): New.
20527         (combine_stack_adjustments_for_block): Use it.
20528
20529 2012-03-30  Richard Henderson  <rth@redhat.com>
20530
20531         * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
20532         (ix86_expand_vector_init_duplicate): Initialize it.
20533         (expand_vec_perm_palignr): Likewise.
20534         (ix86_expand_vec_perm_const): Likewise.
20535         (ix86_vectorize_vec_perm_const_ok): Likewise.
20536         (expand_vec_perm_blend): Use it.
20537         (expand_vec_perm_vpermil): Likewise.
20538         (expand_vec_perm_pshufb): Likewise.
20539         (expand_vec_perm_1): Likewise.
20540         (expand_vec_perm_pshuflw_pshufhw): Likewise.
20541         (expand_vec_perm_interleave2): Likewise.
20542         (expand_vec_perm_vpermq_perm_1): Likewise.
20543         (expand_vec_perm_vperm2f128): Likewise.
20544         (expand_vec_perm_interleave3): Likewise.
20545         (expand_vec_perm_vperm2f128_vblend): Likewise.
20546         (expand_vec_perm_vpshufb2_vpermq): Likewise.
20547         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
20548         (expand_vec_perm_broadcast): Likewise.
20549         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
20550
20551 2012-03-30  Richard Henderson  <rth@redhat.com>
20552
20553         * dwarf2out.c (gen_variable_die): Initialize off.
20554
20555 2012-03-30  Tristan Gingold  <gingold@adacore.com>
20556
20557         * config/vms/vms-f.c: New file.
20558         * config/vms/t-vms (vms-f.o): New rule.
20559         * config.gcc (*-*-*vms*): Define fortran_target_objs.
20560
20561 2012-03-30  Richard Guenther  <rguenther@suse.de>
20562
20563         PR tree-optimization/52754
20564         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
20565         propagate arbitrary addresses into really plain dereferences.
20566
20567 2012-03-30  Richard Guenther <rguenther@suse.de>
20568
20569         PR middle-end/52772
20570         * except.c (emit_to_new_bb_before): Move loop updating ...
20571         (dw2_build_landing_pads): ... here.  Use a proper block for
20572         querying the loop father.
20573
20574 2012-03-30  Tristan Gingold  <gingold@adacore.com>
20575
20576         * config/ia64/ia64.c (ia64_section_type_flags): Remove
20577         common_object attribute handling.
20578         (SECTION_VMS_OVERLAY): Remove
20579         (ia64_vms_common_object_attribute): Replace abort with an assert.
20580         Do not set DECL_SECTION_NAME.
20581         (ia64_vms_output_aligned_decl_common): Handle common_object
20582         attribute.
20583         (ia64_vms_elf_asm_named_section): Remove.
20584         * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
20585
20586 2012-03-30  Richard Guenther  <rguenther@suse.de>
20587
20588         PR middle-end/52786
20589         * double-int.c (rshift_double): Remove not needed cast.
20590
20591 2012-03-30  Richard Guenther  <rguenther@suse.de>
20592
20593         * tree-affine.h (print_aff): Remove.
20594         * tree-affine.c (print_aff): Make static.
20595         * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
20596         (get_references_in_stmt): Likewise.
20597         (print_direction_vector): Likewise.
20598         (print_dir_vectors): Likewise.
20599         (print_dist_vectors): Likewise.
20600         (dump_subscript): Likewise.
20601         (dump_ddrs): Likewise.
20602         (dump_dist_dir_vectors): Likewise.
20603         (dump_data_references): Likewise.
20604         (dump_data_dependence_relation): Likewise.
20605         (dump_data_dependence_direction): Likewise.
20606         (dump_rdg_vertex): Likewise.
20607         (dump_rdg_component): Likewise.
20608         (debug_ddrs): Declare.
20609         (struct data_ref_loc_d): Move ...
20610         * tree-data-ref.c (struct data_ref_loc_d): ... here.
20611         (get_references_in_stmt): Make static.
20612         (dump_data_references): Likewise.
20613         (dump_subscript): Likewise.
20614         (print_direction_vector): Likewise.
20615         (print_dir_vectors): Likewise.
20616         (print_dist_vectors): Likewise.
20617         (dump_data_dependence_relation): Likewise.
20618         (dump_dist_dir_vectors): Likewise.
20619         (dump_ddrs): Likewise.
20620         (dump_rdg_vertex): Likewise.
20621         (dump_rdg_component): Likewise.
20622         (debug_ddrs): New function.
20623         (access_matrix_get_index_for_parameter): Remove.
20624
20625 2012-03-30  Tristan Gingold  <gingold@adacore.com>
20626
20627         * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
20628         (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
20629         (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
20630         (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
20631         (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
20632         (vms_patch_builtins): Handle new flags
20633         * config/vms/vms-crtlmap.map: Completed using nm on
20634         c and math system libraries.
20635         * config/vms/make-crtlmap.awk: Handle any number of flags.
20636
20637 2012-03-30  Martin Jambor  <mjambor@suse.cz>
20638
20639         * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
20640         is a builtin_stack_save in a dominating BB.
20641
20642 2012-03-29  Uros Bizjak  <ubizjak@gmail.com>
20643
20644         * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
20645         crossing 128bit lane boundary.
20646
20647 2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20648
20649         * ira-color.c (setup_left_conflict_sizes_p): Process all
20650         conflicting objects.
20651
20652 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
20653
20654         PR tree-optimization/52760
20655         * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
20656         shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
20657
20658 2012-03-29  Richard Guenther  <rguenther@suse.de>
20659
20660         * cgraph.h (cgraph_materialize_all_clones): Remove.
20661         (reset_inline_failed): Likewise.
20662         * cgraphunit.c (cgraph_materialize_all_clones): Make static.
20663         * cgraphbuild.c (reset_inline_failed): Remove.
20664         * rtl.h (cse_main): Remove.
20665         (extended_count): Likewise.
20666         * cse.c (dump_class): Mark as DEBUG_FUNCTION.
20667         (cse_main): Make static.
20668         * combine.c (extended_count): Remove.
20669         (dump_combine_stats): Mark as DEBUG_FUNCTION.
20670         * basic-block.h (reorder_basic_blocks): Remove.
20671         * bb-reorder.c (reorder_basic_blocks): Make static.
20672         * Makefile.in (dse.o): Remove dse.h dependency.
20673         * dse.h: Remove.
20674         * dse.c (gate_dse): Remove.
20675         (clear_alias_mode_eq): Likewise.
20676         (clear_alias_mode_hash): Likewise.
20677         (dse_record_singleton_alias_set): Likewise.
20678         (dse_invalidate_singleton_alias_set): Likewise.
20679
20680 2012-03-29  H.J. Lu  <hongjiu.lu@intel.com>
20681
20682         * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
20683         crtbegin_so%O%s for -shared.
20684         (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
20685
20686 2012-03-29  Richard Guenther  <rguenther@suse.de>
20687
20688         * tree-flow.h (struct pre_expr_d): Remove forward declaration.
20689         (add_to_value): Remove.
20690         (print_value_expressions): Likewise.
20691         * tree-ssa-pre.c (add_to_value): Make static.
20692         (print_value_expressions): Likewise.
20693         * gimple.h (gimple_adjust_this_by_delta): Remove.
20694         * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
20695
20696 2012-03-29  Richard Guenther  <rguenther@suse.de>
20697
20698         PR middle-end/50708
20699         * double-int.h (rshift_double): Remove.
20700         * double-int.c (lshift_double): Use absu_hwi to make count positive.
20701         (rshift_double): Make static, take unsigned count argument,
20702         remove handling of negative count argument.
20703         (double_int_rshift): Dispatch to lshift_double.
20704
20705 2012-03-28  H.J. Lu  <hongjiu.lu@intel.com>
20706
20707         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
20708         OPTION_MASK_ABI_64.
20709
20710         * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
20711         (SPEC_X32): Likewise.
20712         (MULTILIB_DEFAULTS): Likewise.
20713
20714         * config/i386/i386.c (isa_opts): Remove -m64.
20715         (ix86_target_string): Properly handle -m32/-m64/-mx32.
20716         (ix86_option_override_internal): Properly
20717         set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
20718         handle -m32, -m64 and -mx32.
20719
20720         * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
20721         with OPTION_ABI_X32.  Moved after TARGET_LP64.
20722         (TARGET_LP64): Changed to OPTION_ABI_64.
20723
20724         * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
20725         (mx32): Replace ISA_X32 with ABI_X32.
20726
20727 2012-03-28  Eric Botcazou  <ebotcazou@adacore.com>
20728
20729         * tree.c (tree_size) <VECTOR_CST>: New case.
20730
20731 2012-03-28  Uros Bizjak  <ubizjak@gmail.com>
20732
20733         * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
20734         (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
20735
20736 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
20737
20738         PR middle-end/52691
20739         * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
20740         __builtin_va_start to __builtin_next_arg if the latter is
20741         builtin_decl_explicit_p rather than when it is not.
20742
20743         PR middle-end/52750
20744         * tree-vect-generic.c (vector_element): Perform multiplication
20745         for pos in bitsizetype type instead of idx type.
20746
20747 2012-03-28  Richard Guenther  <rguenther@suse.de>
20748
20749         * loop-init.c (loop_optimizer_init): If loops are preserved
20750         perform incremental initialization of required loop features.
20751         (loop_optimizer_finalize): If loops are to be preserved only
20752         clean up optional loop features.
20753         (rtl_loop_done): Forcefully free loops here.
20754         * cgraph.c (cgraph_release_function_body): Forcefully free loops.
20755         * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
20756         to existing loops.
20757         (construct_init_block): Likewise.
20758         (construct_exit_block): Likewise.
20759         (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state.  Cleanup
20760         the CFG after expanding.
20761         * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
20762         If we needed to calculate them, free them afterwards.
20763         * tree-pass.h (PROP_loops): New define.
20764         * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
20765         * basic-block.h (CLEANUP_CFG_CHANGED): New.
20766         * cfgcleanup.c (merge_blocks_move): Protect loop latches.
20767         (cleanup_cfg): If we did something and have loops around, fix them up.
20768         * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
20769         with CLEANUP_CFG_CHANGED.
20770         * cfghooks.c (merge_blocks): If we merge a loop header into
20771         its predecessor, update the loop structure.
20772         (duplicate_block): If we copy a loop latch, adjust loop state
20773         to note we may have multiple latches.
20774         (delete_basic_block): Mark loops for fixup if we remove a loop.
20775         * cfganal.c (forwarder_block_p): Protect loop latches, headers
20776         and preheaders.
20777         * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
20778         (cfg_layout_can_merge_blocks_p): Likewise.
20779         * cprop.c (bypass_block): If we create a loop with multiple
20780         entries, mark it for removal.
20781         * except.c (emit_to_new_bb_before): Add the new basic-block
20782         to existing loops.
20783         * tree-eh.c (lower_resx): Likewise.
20784         * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
20785         (expand_omp_taskreg): Likewise.
20786         * tree-inline.c (initialize_cfun): Likewise.
20787         * tree-mudflap.c (add_bb_to_loop): Prototype.
20788         (mf_build_check_statement_for): Properly add new basic-blocks
20789         to existing loops.
20790         * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
20791         if we remove a loop.
20792         (thread_through_loop_header): Likewise.
20793         * trans-mem.c (tm_log_emit_save_or_restores): Properly add
20794         new basic-blocks to existing loops.
20795         (expand_transaction): Likewise.
20796         * Makefile.in (except.o): Add $(CFGLOOP_H).
20797         (expr.o): Likewise.
20798         (cgraph.o): Likewise.
20799         (cprop.o): Likewise.
20800         (cfgexpand.o): Likewise.
20801         (cfganal.o): Likewise.
20802         (trans-mem.o): Likewise.
20803         (tree-eh.o): Likewise.
20804
20805 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
20806
20807         PR target/52692
20808         * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
20809         (avr_builtin_decl): New static function.
20810         (struct avr_builtin_description, avr_bdesc): Move up.
20811         Add GTY marker. Add field fndecl. Remove redundant field id.
20812         (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
20813         (avr_expand_builtin): Code cleanup because .id is removed.
20814
20815 2012-03-28  Georg-Johann Lay  <avr@gjlay.de>
20816
20817         PR target/52737
20818         * config.gcc (tm_file): Remove avr/multilib.h.
20819
20820         * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
20821
20822         * config/avr/genmultilib.awk: Remove code to generate multilib.h.
20823         (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
20824         * config/avr/t-avr: Remove generation of multilib.h.
20825         * config/avr/t-multilib: Regenerate.
20826         * config/avr/multilib.h: Remove.
20827         * config/avr/avr.opt (-msp8): New option.
20828         (avr_sp8): New variable.
20829         * config/avr/driver-avr.c (avr_device_to_sp8): New function.
20830         * config/avr/avr.h (AVR_HAVE_SPH): New define.
20831         (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
20832         (avr_device_to_sp8): New prototype.
20833         (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
20834         (DRIVER_SELF_SPECS): New define.
20835         * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
20836         __AVR_SP8__, __AVR_HAVE_SPH__.
20837         * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
20838         AVR_HAVE_8BIT_SP to decide if SP_H is present.
20839         (avr_file_start): Ditto.
20840
20841 2012-03-28  Jakub Jelinek  <jakub@redhat.com>
20842
20843         PR target/52736
20844         * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
20845         instead of 8 in adjust_address.
20846
20847 2012-03-27  Aurelien Buhrig  <aurelien.buhrig.gcc@gmail.com>
20848
20849         PR middle-end/51893
20850         * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
20851         targets.
20852
20853 2012-03-27  Oleg Endo  <olegendo@gcc.gnu.org>
20854
20855         PR target/50751
20856         * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
20857         Rearrange conditional logic.  Move displacement address calculations
20858         to ...
20859         (sh_find_mov_disp_adjust): ... this new function.
20860
20861 2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>
20862
20863         * config/arm/arm.opt (mapcs): Remove MaskExists.
20864         * config/cris/linux.opt (mno-gotplt): Likewise.
20865         * config/i386/i386.opt (mhard-float): Likewise.
20866         (msse4): Likewise.
20867         (mno-sse4): Likewise.
20868         * config/m68k/m68k.opt (mhard-float): Likewise.
20869         * config/mep/mep.op (mcop32): Likewise.
20870         * config/pa/pa-hpux.opt (msio): Likewise.
20871         * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
20872         * config/picochip/picochip.opt (mlittle): Likewise.
20873         * config/sh/sh.opt (mrenesas): Likewise.
20874         * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
20875         * config/sparc/sparc.opt (mhard-float): Likewise.
20876         * config/v850/v850.opt (mv850es): Likewise.
20877         * config/vax/vax.opt (mg-float): Likewise.
20878
20879 2012-03-27  Martin Jambor  <mjambor@suse.cz>
20880
20881         PR middle-end/52693
20882         * tree-sra.c (sra_modify_assign): Do not call
20883         load_assign_lhs_subreplacements when working with an unscalarizable
20884         region.
20885
20886 2012-03-27  Uros Bizjak  <ubizjak@gmail.com>
20887
20888         PR target/52698
20889         * config/i386/i386-protos.h (ix86_legitimize_reload_address):
20890         New prototype.
20891         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
20892         * config/i386/i386.c: Include reload.h.
20893         (ix86_legitimize_reload_address): New function.
20894
20895 2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>
20896
20897         * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
20898         hasn't been allocated.  Define a target macro for Mask and
20899         InverseMask if it hasn't been defined.  Remove MaskExists handling.
20900
20901         * doc/options.texi: Remove MaskExists.
20902
20903 2012-03-27  Chung-Lin Tang  <cltang@codesourcery.com>
20904
20905         PR target/52667
20906         * config/sh/sh.c (find_barrier): Add equality check of last_got
20907         to avoid going above orig insn. Update comments.
20908
20909 2012-03-27  Richard Guenther  <rguenther@suse.de>
20910
20911         PR middle-end/52720
20912         * fold-const.c (try_move_mult_to_index): Handle &x.array more
20913         explicitely.
20914
20915 2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>
20916
20917         * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
20918         of a unit before computing the offset in units.
20919         * expr.c (get_bit_range): Return the null range if the enclosing record
20920         is part of a larger bit field.
20921
20922 2012-03-27  Tristan Gingold  <gingold@adacore.com>
20923
20924         * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
20925         * config/ia64/ia64.md: Remove mode in template.
20926         Sign extend operand in expand_simple_binop.
20927         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
20928         CASE_VECTOR_MODE instead of TARGET_ILP32.
20929         (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
20930
20931 2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>
20932
20933         * varasm.c (assemble_external): #if 0 out the new assert from the
20934         previous commit, it breaks the Java and Go front ends.
20935
20936 2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>
20937
20938         * toplev.c (check_global_declaration_1): Do not call assemble_external.
20939         * expr.c (emit_block_move_libcall_fn): Likewise.
20940         (clear_storage_libcall_fn): Likewise.
20941         (expand_expr_addr_expr_1): Likewise.
20942         (expand_expr_real_1): Likewise.
20943         * calls.c (rtx_for_function_call): Likewise.
20944
20945         * varasm.c (assemble_external): Assert this function is only called
20946         during or after expanding to RTL.
20947
20948 2012-03-26  Martin Jambor  <mjambor@suse.cz>
20949
20950         PR tree-optimization/50052
20951         * tree-sra.c (tree_non_aligned_mem_p): Removed.
20952         (tree_non_aligned_mem_for_access_p): Likewise.
20953         (build_accesses_from_assign): Removed strict alignment requirements
20954         checks.
20955         (access_precludes_ipa_sra_p): Likewise.
20956
20957 2012-03-26  Richard Guenther  <rguenther@suse.de>
20958
20959         PR tree-optimization/52701
20960         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
20961         compute and set the evolution part of PHI nodes.
20962
20963 2012-03-26  Richard Guenther  <rguenther@suse.de>
20964
20965         PR tree-optimization/52721
20966         * tree-vect-stmts.c (vect_init_vector): Handle scalars.
20967
20968 2012-03-26  Ulrich Weigand  <ulrich.weigand@linaro.org>
20969
20970         PR tree-optimization/52686
20971         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
20972         WIDEN_LSHIFT_EXPR.
20973
20974 2012-03-26  Tristan Gingold  <gingold@adacore.com>
20975
20976         * config/alpha/vms.h (LINK_SPEC): Simplify.
20977         (STARTFILE_SPEC): Remove -mvms-return-codes handling.
20978         (NAME__MAIN, SYMBOL__MAIN): Remove.
20979         (VMS_DEBUG_MAIN_POINTER): Remove.
20980         * config/ia64/vms.h: Likewise.
20981         * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
20982         code to vms.c.  Call vms_start_function.
20983         * config/ia64/ia64.c (ia64_start_function): Likewise.
20984         * config/vms/vms-protos.h (vms_start_function): Declare.
20985         * config/vms/vms.c (vms_start_function): New function.
20986         * config/vms/vms.h (MATH_LIBRARY): Define.
20987         (VMS_DEBUG_MAIN_POINTER): Define.
20988
20989 2012-03-26  Eric Botcazou  <ebotcazou@adacore.com>
20990
20991         PR rtl-optimization/52629
20992         * reload1.c (count_pseudo): Short-circuit common case.
20993         (count_spilled_pseudo): Return early for pseudos without hard regs.
20994         Assert that the pseudo has got a hard reg before manipulating it.
20995
20996 2012-03-24  Jan Hubicka  <jh@suse.cz>
20997
20998         PR lto/51663
20999         * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
21000         (decide_is_variable_needed): Do not handle toplevel reorder here.
21001         * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
21002         * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
21003         even at -O0.
21004
21005 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21006
21007         * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
21008         and str_bitsize instead of more convoluted expressions.
21009
21010 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21011
21012         PR target/52610
21013         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
21014
21015 2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21016
21017         PR target/52656
21018         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
21019
21020 2012-03-23  Martin Jambor  <mjambor@suse.cz>
21021
21022         * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
21023
21024 2012-03-23  Richard Guenther  <rguenther@suse.de>
21025
21026         PR tree-optimization/52678
21027         * tree-vectorizer.h (struct _stmt_vec_info): Add
21028         loop_phi_evolution_part member.
21029         (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
21030         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
21031         STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
21032         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
21033         Use the cached evolution part and the PHI nodes value from
21034         the loop preheader edge instead of re-analyzing the evolution.
21035
21036 2012-03-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
21037
21038         * config/mips/mips-tables.opt: Update.
21039         * config/mips/mips.md (processor): Add xlp.
21040         * config/mips/mips-cpus.def: Add xlp.
21041         * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
21042         5KF for now.
21043         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
21044         * doc/invoke.texi: Mention XLP.
21045
21046 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
21047
21048         PR middle-end/52547
21049         * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
21050         on any new_local_var_chain vars declared during recursing on
21051         GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
21052
21053 2012-03-22  Uros Bizjak  <ubizjak@gmail.com>
21054
21055         * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
21056         (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
21057         (ASM_OUTPUT_LOCAL): Ditto.
21058         (ASM_OUTPUT_COMMON): Remove.
21059         * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
21060         * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
21061
21062 2012-03-22  Jan Hubicka  <jh@suse.cz>
21063
21064         PR middle-end/51737
21065         * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
21066         parameter.
21067         * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
21068         * ipa-inline-transform.c (save_inline_function_body): Remove
21069         copied clone if needed.
21070         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
21071
21072 2012-03-22  Richard Guenther  <rguenther@suse.de>
21073
21074         PR middle-end/52666
21075         * fold-const.c (fold_ternary_loc): Fix typo.
21076
21077 2012-03-22  Georg-Johann Lay  <avr@gjlay.de>
21078
21079         PR target/52496
21080         * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
21081         (unspecv): Add UNSPECV_MEMORY_BARRIER.
21082         (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
21083         (delay_cycles_1, delay_cycles_2): Ditto.
21084         (delay_cycles_3, delay_cycles_4): Ditto.
21085         (nopv, *nopv): Ditto.
21086         (sleep, *sleep): Ditto.
21087         (wdr, *wdr): Ditto.
21088
21089 2012-03-22  Richard Guenther  <rguenther@suse.de>
21090
21091         PR tree-optimization/52548
21092         * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
21093         because of clobbers.
21094         (prune_clobbered_mems): New function.
21095         (compute_antic_aux): Use it to prune ANTIC_OUT.
21096         (compute_partial_antic_aux): Use it to prune PA_IN.
21097         (compute_avail): Only insert expressions into EXP_GEN that are not
21098         invalidated when translated up to the beginning of the block.
21099
21100 2012-03-22  Richard Guenther  <rguenther@suse.de>
21101
21102         PR tree-optimization/52638
21103         * tree-vect-stmts.c (vect_init_vector_1): New function, split
21104         out from ...
21105         (vect_init_vector): ... here.  Handle scalar vector inits.
21106         (vect_get_vec_def_for_operand): Adjust.
21107         (vectorizable_load): Likewise.
21108
21109 2012-03-22  Uros Bizjak  <ubizjak@gmail.com>
21110
21111         * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
21112         (alpha*-*-freebsd*): Ditto.
21113         (alpha*-*-netbsd*): Ditto.
21114         (alpha*-*-openbsd*): Ditto.
21115         * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
21116         (DWARF2_DEBUGGING_INFO): Remove.
21117         (PREFERRED_DEBUGGING_TYPE): Remove.
21118         (ASM_FINAL_SPEC): Remove.
21119         (IDENT_ASM_OP): Remove.
21120         (ASM_OUTPUT_IDENT): Remove.
21121         (SKIP_ASM_OP): Remove.
21122         (ASM_OUTPUT_SKIP): Remove.
21123         (ALIGN_ASM_OP): Remove.
21124         (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
21125         (ASM_OUTPUT_CASE_LABEL): Remove.
21126         (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
21127         (COMMON_ASM_OP): Remove.
21128         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
21129         (ASCII_DATA_ASM_OP): Remove.
21130         (READONLY_DATA_SECTION_ASM_OP): Remove.
21131         (INIT_SECTION_ASM_OP): Remove.
21132         (FINI_SECTION_ASM_OP): Remove.
21133         (ASM_SECTION_START_OP): Remove.
21134         (ASM_OUTPUT_SECTION_START_FILE): Remove.
21135         (TARGET_ASM_NAMED_SECTION): Remove.
21136         (TARGET_ASM_SELECT_SECTION): Remove.
21137         (MAKE_DECL_ONE_ONLY): Remove.
21138         (TYPE_ASM_OP): Remove.
21139         (SIZE_ASM_OP): Remove.
21140         (ASM_WEAKEN_LABEL): Remove.
21141         (TYPE_OPERAND_FMT): Remove.
21142         (ASM_DECLARE_RESULT): Remove.
21143         (ASM_DECLARE_OBJECT_NAME): Remove.
21144         (ASM_FINISH_DECLARE_OBJECT): Remove.
21145         (ELF_ASCII_ESCAPES): Remove.
21146         (ELF_STRING_LIMIT): Remove.
21147         (STRING_ASM_OP): Remove.
21148         (ASM_OUTPUT_EXTERNAL): Remove.
21149         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
21150         * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
21151         before define.
21152         (ASM_DECLARE_FUNCTION_NAME): Ditto.
21153         (ASM_DECLARE_FUNCTION_SIZE): Ditto.
21154         (ASM_GENERATE_INTERNAL_LABEL): Ditto.
21155         (ASM_OUTPUT_SKIP): Ditto.
21156         (READONLY_DATA_SECTION_ASM_OP): Remove.
21157         (USER_LABEL_PREFIX): Remove.
21158         (ASM_OUTPUT_ASCII): Remove.
21159         (ASM_OUTPUT_CASE_LABEL): Remove.
21160         (NO_DOLLAR_IN_LABEL): Undefine.
21161
21162 2012-03-22  Richard Guenther  <rguenther@suse.de>
21163
21164         PR tree-optimization/52459
21165         * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
21166         PHI insertion for calls.
21167
21168 2012-03-21  Steven Bosscher  <steven@gcc.gnu.org>
21169
21170         * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
21171         find_sets_in_insn, canonicalize_insn): Split out from ...
21172         (cse_insn): ... here.
21173         (invalidate_from_clobbers): Take an insn instead of the pattern.
21174
21175 2012-03-21  Oleg Endo  <olegendo@gcc.gnu.org>
21176
21177         PR target/52479
21178         * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
21179         * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
21180         * config/sh/sh.md (sindf2, cosdf2): Remove.
21181
21182 2012-03-21  Kaz Kojima  <kkojima@gcc.gnu.org>
21183
21184         PR target/52642
21185         * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
21186         prologue for unwinder and profiler.
21187
21188 2012-03-21  Andreas Tobler  <andreast@fgznet.ch>
21189
21190         * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
21191         Introduce emul_name to select the right linker emulation for
21192         powerpc64-*-freebsd*.
21193         * configure: Regenerate.
21194         * config.gcc: Add bits to support powerpc64-*-freebsd*.
21195         * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
21196         * config/rs6000/freebsd64.h: New file.
21197         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
21198         POWERPC_FREEBSD.
21199         (rs6000_savres_strategy): Likewise.
21200         (rs6000_savres_routine_name): Likewise.
21201         (rs6000_elf_file_end): Likewise.
21202         * config/rs6000/t-freebsd64: New file.
21203         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
21204         rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
21205
21206         * config/rs6000/freebsd64.h: Remove duplicated entries from last
21207         commit.
21208         * config/rs6000/t-freebsd64: Likewise.
21209
21210 2012-03-21  Georg-Johann Lay  <avr@gjlay.de>
21211
21212         PR rtl-optimization/52543
21213         PR target/52461
21214         * config/avr/avr-protos.h (avr_load_lpm): New prototype.
21215         * config/avr/avr.c (avr_mode_dependent_address_p): New function.
21216         (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
21217         (avr_load_libgcc_p): Restrict to __flash loads.
21218         (avr_out_lpm): Only handle 1-byte loads from __flash.
21219         (avr_load_lpm): New function.
21220         (avr_find_unused_d_reg): Remove.
21221         (avr_out_lpm_no_lpmx): Remove.
21222         (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
21223         * config/avr/avr.md (unspec): Add UNSPEC_LPM.
21224         (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
21225         (load_<mode>, load_<mode>_clobber): New insns.
21226         (mov<mode>): For multi-byte move from non-generic
21227         16-bit address spaces: Expand to load_<mode> resp.
21228         load_<mode>_clobber.
21229         (load<mode>_libgcc): Remove expander.
21230         (split-lpmx): Remove split.
21231
21232 2012-03-21  Richard Earnshaw  <rearnsha@arm.com>
21233
21234         * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
21235         * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
21236         All callers changed.
21237         (Fixed_core_reg): New feature.
21238         (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg.  Allow fmrrd in
21239         disassembly.
21240         * neon-testgen.ml: Handle Fixed_core_reg.
21241
21242 2012-03-21  Andrew Stubbs  <ams@codesourcery.com>
21243
21244         * config/arm/arm.c (thumb2_reorg): Add complete support
21245         for 16-bit instructions.
21246         * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
21247
21248 2012-03-21  Richard Guenther  <rguenther@suse.de>
21249
21250         PR tree-optimizer/52636
21251         * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
21252         to the appropriate type.
21253
21254 2012-03-21  Richard Guenther  <rguenther@suse.de>
21255
21256         * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
21257         dependencies.
21258         * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
21259         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
21260         * passes.c (init_optimization_passes): Remove pass_init_function,
21261         pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
21262         * tree-pass.h (pass_init_function): Remove.
21263         (pass_jump): Remove.
21264         (pass_initial_value_sets): Remove.
21265         (pass_unshare_all_rtl): Remove.
21266         * integrate.c (pass_initial_value_sets): Remove.
21267         * emit-rtl.c (pass_unshare_all_rtl): Remove.
21268         * tree.h (init_function_for_compilation): Remove.
21269         * function.c (init_function_for_compilation): Remove.
21270         (pass_init_function): Remove.
21271         * cfgcleanup.c (rest_of_handle_jump): Remove.
21272         (pass_jump): Remove.
21273
21274 2012-03-20  Jason Merrill  <jason@redhat.com>
21275
21276         * tree-streamer-in.c (streamer_alloc_tree): Call
21277         ggc_alloc_zone_cleared_tree_node instead of
21278         ggc_alloc_zone_cleared_tree_node_stat.
21279
21280 2012-03-20  Jonathan Wakely  <jwakely.gcc@gmail.com>
21281
21282         * doc/extend.texi (Template Instantiation): Remove anachronisms.
21283
21284 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
21285
21286         PR target/52607
21287         * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
21288         (ix86_expand_vec_perm_const_1): Call it.
21289
21290         * config/i386/i386.c (vselect_insn): New variable.
21291         (init_vselect_insn): New function.
21292         (expand_vselect, expand_vselect_insn): Add testing_p argument.
21293         Call init_vselect_insn if vselect_insn is NULL.  Adjust
21294         PATTERN (vselect_insn), instead of creating a new insn each time,
21295         only emit a copy of it if not testing and recog has been successful.
21296         (expand_vec_perm_pshufb, expand_vec_perm_1,
21297         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
21298         callers.
21299
21300         PR target/52607
21301         * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
21302         ("enabled" attribute): Handle avx2 and noavx2 isas.
21303         * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
21304         New insns.
21305         (vec_dup<mode>): Add avx2 =x,x alternative.
21306         (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
21307         (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
21308         For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
21309         * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
21310         for V8SFmode.
21311         (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
21312         if possible, handle also V8SFmode.
21313
21314 2012-03-20  Richard Earnshaw  <rearnsha@arm.com>
21315
21316         * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
21317         * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
21318         reg_or_zero_operand predicate.
21319         (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
21320
21321 2012-03-20  Jakub Jelinek  <jakub@redhat.com>
21322
21323         * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
21324         If operand isn't UNSPEC, return 0.
21325
21326 2012-03-20  Richard Guenther  <rguenther@suse.de>
21327
21328         * tree-pass.h (pass_rtl_eh): Remove.
21329         * except.c (gate_handle_eh): Likewise.
21330         (rest_of_handle_eh): Likewise.
21331         (pass_rtl_eh): Likewise.
21332         (finish_eh_generation): Export.
21333         * except.h (finish_eh_generation): Declare.
21334         * passes.c (init_optimization_passes): Remove pass_rtl_eh.
21335         * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
21336         after expanding stack alignment.  Instead of compacting blocks
21337         call cleanup_cfg.
21338
21339 2012-03-20  Richard Guenther  <rguenther@suse.de>
21340
21341         * stor-layout.c (finish_bitfield_representative): Fallback
21342         to conservative maximum size if the padding up to the next
21343         field cannot be computed as a constant.
21344         (finish_bitfield_layout): If we cannot compute the distance
21345         between the start of the bitfield representative and the
21346         bitfield member start a new representative.
21347         * expr.c (get_bit_range): The distance between the start of
21348         the bitfield representative and the bitfield member is zero
21349         if the field offsets are not constants.
21350
21351 2012-03-20  Tristan Gingold  <gingold@adacore.com>
21352
21353         * tree.h (enum size_type_kind): Add stk_ prefix to constants,
21354         convert in lowercase.
21355         (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
21356         (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
21357         * stor-layout.c (sizetype_tab): Adjust.
21358         (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
21359         * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
21360         instead of type_kind_last.
21361         * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
21362         instead of size_int_kind.
21363         * doc/tm.texi.in (Type Layout): Document SIZETYPE.
21364         * doc/tm.texi: Regenerate.
21365         * defaults.h (SIZETYPE): Provide a default value.
21366         * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
21367         (SIZETYPE): Define.
21368
21369 2012-03-20  Oleg Endo  <olegendo@gcc.gnu.org>
21370
21371         * config/sh/sh.md: Use braced string notation where applicable.
21372
21373 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
21374
21375         * config/i386/i386.md (allocate_stack): Simplify.
21376
21377 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
21378
21379         * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
21380         copy_to_mode_reg (Pmode, ...).
21381         (expand_builtin_frame_address): Ditto.
21382         * expr.c (emit_block_move_via_libcall): Ditto.
21383         (set_storage_via_libcall): Ditto.
21384
21385         * config/i386/i386.c (ix86_expand_movmem): Ditto.
21386         (ix86_expand_setmem): Ditto.
21387         (ix86_trampoline_init): DItto.
21388         * config/i386/i386.md (cmpstrnsi): Ditto.
21389
21390 2012-03-19  Sandra Loosemore  <sandra@codesourcery.com>
21391
21392         * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
21393         * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
21394         * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
21395         (SH Options): Likewise.
21396
21397 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
21398
21399         * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
21400         Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
21401         (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
21402         DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
21403         (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
21404
21405         Revert:
21406         2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
21407
21408         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
21409         * config/i386/i386.c (ix86_decompose_address): Use
21410         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
21411         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
21412         thread pointer to a register.
21413
21414         Revert:
21415         2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
21416
21417         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
21418         if Pmode != word_mode.
21419         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
21420         Pmode == SImode for TARGET_X32.
21421
21422         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
21423         (tls_initial_exec_x32): Likewise.
21424
21425 2012-03-19  Oleg Endo  <olegendo@gcc.gnu.org>
21426
21427         PR target/50751
21428         * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
21429         DISP_ADDR_OFFSET): New macros.
21430         * config/sh/sh.c (sh_address_cost): Add SH2A special case.
21431         (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
21432         (sh_legitimize_address): Add QImode displacement handling.
21433         (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
21434         vector subregs.
21435         (sh_secondary_reload): Add QImode displacement handling.
21436         * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
21437         * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
21438         * config/sh/sh.md (extendqisi2): Remove constraints from expander.
21439         (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
21440         to register operands only.
21441         (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
21442         (extendqihi2): Change insn to expander.
21443         (*extendqihi2_compact_reg): New insn.
21444         (movqi_i, movqi): Replace with ...
21445         (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
21446         *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
21447         Add new peepholes for QImode displacement addressing.
21448
21449 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
21450
21451         PR c++/14710
21452         * doc/invoke.texi: Document -Wuseless-cast.
21453
21454 2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>
21455
21456         * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
21457         * tree.h (handled_component_p): Reorder cases.
21458         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
21459         not initialize unsignedp.
21460         (loc_list_from_tree): Likewise.
21461         (fortran_common): Likewise.
21462         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
21463
21464 2012-03-19  Uros Bizjak  <ubizjak@gmail.com>
21465
21466         * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
21467         mode consistently.  Use ix86_gen_add3.  Assert that Pmode == DImode.
21468         (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
21469         (ix86_split_long_move): Ditto.
21470         (legitimize_tls_address): Use ix86_gen_sub3.
21471         (construct_plt_address): Assert that Pmode == DImode.
21472
21473 2012-03-18  Uros Bizjak  <ubizjak@gmail.com>
21474
21475         * config/i386/i386.md: Remove empty predicates and/or constraints.
21476         * config/i386/sync.md: Ditto.
21477         * config/i386/sse.md: Ditto.
21478         * config/i386/mmx.md: Ditto.
21479         * config/i386/pentium.md: Ditto.
21480         * config/i386/athlon.md: Ditto.
21481
21482 2012-03-16  Richard Guenther  <rguenther@suse.de>
21483
21484         PR tree-optimization/52603
21485         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
21486         comment.
21487
21488         Revert
21489         2012-03-14  Richard Guenther  <rguenther@suse.de>
21490
21491         PR tree-optimization/52571
21492         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
21493         flag_section_anchors check ...
21494         (vect_can_force_dr_alignment_p): ... here.
21495
21496 2012-03-16  Martin Jambor  <mjambor@suse.cz>
21497
21498         * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
21499         memory through MEM_REFs by calling extract_bit_field.
21500
21501 2012-03-16  Richard Guenther  <rguenther@suse.de>
21502
21503         * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
21504         and REFERENCE_TYPE interpretations.
21505         (can_native_interpret_type_p): New function.
21506         (fold_ternary_loc): Use native encode/interpret to fold
21507         BIT_FIELD_REFs of constants.
21508
21509 2012-03-16  Richard Guenther  <rguenther@suse.de>
21510
21511         PR middle-end/52584
21512         * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
21513         of vector constants and constructors.
21514
21515 2012-03-16  Richard Guenther  <rguenther@suse.de>
21516
21517         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
21518         VIEW_CONVERT_EXPR to convert constants.
21519         (vect_is_simple_use): Treat all constants as vec_constant_def.
21520
21521 2012-03-16  Richard Guenther  <rguenther@suse.de>
21522             Kai Tietz  <ktietz@redhat.com>
21523
21524         PR middle-end/48814
21525         * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
21526         side-effects completely in the pre-queue and use a temporary
21527         for the result.
21528
21529 2012-03-16  Richard Guenther  <rguenther@suse.de>
21530
21531         * stor-layout.c (finish_bitfield_representative): Fall back
21532         to the conservative maximum size if we cannot compute the
21533         size of the tail padding.
21534
21535 2012-03-16  Tristan Gingold  <gingold@adacore.com>
21536
21537         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
21538         __CRTL_VER and __VMS_VER.
21539         * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
21540         and vms_c_get_vms_ver.
21541         * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
21542         functions.
21543         * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
21544         (VMS_DEFAULT_VMS_VER): Define.
21545         * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
21546         (VMS_DEFAULT_VMS_VER): Define.
21547
21548 2012-03-16  Richard Guenther  <rguenther@suse.de>
21549
21550         * tree-vect-loop.c (get_initial_def_for_induction): Use
21551         build_constructor directly.
21552         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
21553         build_vector_from_val.
21554         * tree.c (build_vector_from_val): Avoid creating a constructor
21555         first when we want a constant vector.
21556
21557 2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21558
21559         * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
21560
21561 2012-03-16  Richard Guenther  <rguenther@suse.de>
21562
21563         * tree.h (TREE_VECTOR_CST_ELTS): Remove.
21564         (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
21565         (struct tree_vector): Remove elements member, add variable size
21566         elts array member.
21567         (build_vector_stat): Declare.
21568         (build_vector): Define in terms of build_vector_stat.
21569         * tree.c (build_vector): Rename to ...
21570         (build_vector_stat): ... this.  Take array of trees as parameter.
21571         (build_vector_from_ctor): Adjust.
21572         (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
21573         initializer_zerop): Adjust.
21574         * cfgexpand.c (expand_debug_expr): Likewise.
21575         * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
21576         const_vector_from_tree): Likewise.
21577         * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
21578         native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
21579         fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
21580         * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
21581         (lto_input_ts_vector_tree_pointers): Adjust.
21582         * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
21583         (write_ts_vector_tree_pointers): Adjust.
21584         * varasm.c (const_hash_1, compare_constant, copy_constant,
21585         output_constant): Adjust.
21586         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
21587         * print-tree.c (print_node): Adjust.
21588         * tree-pretty-print.c (dump_generic_node): Adjust.
21589         * tree-vect-generic.c (uniform_vector_p, vector_element,
21590         lower_vec_perm): Adjust.
21591         * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
21592         * tree-vect-slp.c (vect_get_constant_vectors,
21593         vect_transform_slp_perm_load): Adjust.
21594         * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
21595         * expmed.c (make_tree): Adjust.
21596         * config/i386/i386.c (ix86_expand_builtin): Adjust.
21597         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
21598         and implementation.
21599         (sparc_fold_builtin): Adjust.
21600
21601 2012-03-16  Tristan Gingold  <gingold@adacore.com>
21602
21603         * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
21604         * config/vms/vms-stdint.h: New file.
21605
21606 2012-03-16  Tristan Gingold  <gingold@adacore.com>
21607
21608         * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
21609         (ia64-hp-*vms*): Replaced by ...
21610         (*-*-*vms*): ... This new entry.
21611
21612 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
21613
21614         PR target/52568
21615         * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
21616         (ix86_expand_vec_perm_const_1): Use it.
21617
21618         PR target/52568
21619         * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
21620         (avx2_permv4df): Remove.
21621         (avx2_permv4di): Macroize into...
21622         (avx2_perm<mode>): ... this using VI8F_256 iterator.
21623         (avx2_permv4di_1): Macroize into...
21624         (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
21625
21626 2012-03-15  Ulrich Weigand  <ulrich.weigand@linaro.org>
21627
21628         * combine.c (apply_distributive_law): Do not distribute SUBREG.
21629
21630 2012-03-15  Ira Rosen  <irar@il.ibm.com>
21631             Ulrich Weigand  <ulrich.weigand@linaro.org>
21632
21633         * tree-vect-patterns.c (widened_name_p): Rename to ...
21634         (type_conversion_p): ... this.  Add new argument to determine
21635         if it's a promotion or demotion operation.  Check for
21636         CONVERT_EXPR_CODE_P instead of NOP_EXPR.
21637         (vect_recog_dot_prod_pattern): Call type_conversion_p instead
21638         widened_name_p.
21639         (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
21640         vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
21641         Likewise.
21642         (vect_recog_mixed_size_cond_pattern): Likewise and allow
21643         non-constant then and else clauses.
21644
21645 2012-03-15  Ira Rosen  <irar@il.ibm.com>
21646             Ulrich Weigand  <ulrich.weigand@linaro.org>
21647
21648         * tree-vectorizer.h (vect_pattern_recog): Add new argument.
21649         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
21650         vect_pattern_recog.
21651         * tree-vect-patterns.c (widened_name_p): Pass basic block
21652         info to vect_is_simple_use.
21653         (vect_recog_dot_prod_pattern): Fail for basic blocks.
21654         (vect_recog_widen_sum_pattern): Likewise.
21655         (vect_handle_widen_op_by_const): Support basic blocks.
21656         (vect_operation_fits_smaller_type,
21657         vect_recog_over_widening_pattern): Likewise.
21658         (vect_recog_vector_vector_shift_pattern): Support basic blocks.
21659         Update call to vect_is_simple_use.
21660         (vect_recog_mixed_size_cond_pattern): Support basic blocks.
21661         Add printing.
21662         (check_bool_pattern): Add an argument, update call to
21663         vect_is_simple_use and the recursive calls.
21664         (vect_recog_bool_pattern): Update relevant function calls.
21665         Add printing.
21666         (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
21667         (vect_pattern_recog_1): Check for reduction only in loops.
21668         (vect_pattern_recog): Add new argument.  Support basic blocks.
21669         * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
21670         info to vect_is_simple_use_1.
21671         * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
21672         (vect_slp_analyze_bb_1): Call vect_pattern_recog.
21673
21674 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
21675             Andrew Pinski  <apinski@cavium.com>
21676
21677         PR middle-end/52592
21678         * builtins.c (expand_builtin_int_roundingfn_2): If expanding
21679         BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
21680         calls instead of __builtin_ir{int,ound}*.
21681
21682 2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21683
21684         * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
21685         documentation.
21686
21687 2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
21688
21689         * config.gcc (target_type_format_char): New. Document it. Set it for
21690         arm*-*-* .
21691         * configure.ac (gnu_unique_option): Use target_type_format_char
21692         in test.  Comment rationale.
21693         * configure: Regenerate .
21694
21695 2012-03-15  Jakub Jelinek  <jakub@redhat.com>
21696
21697         PR tree-optimization/52267
21698         * tree-vrp.c (masked_increment): New function.
21699         (register_edge_assert_for_2): Derive ASSERT_EXPRs
21700         from (X & CST1) cmp CST2 tests.
21701
21702 2012-03-15  Richard Guenther  <rguenther@suse.de>
21703
21704         PR middle-end/52580
21705         * tree-data-ref.c (subscript_dependence_tester_1): Check
21706         all dimensions for non-conflicting access functions.
21707
21708 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21709
21710         PR c++/44783
21711         * doc/invoke.texi [C++ Language Options]: Document
21712         -ftemplate-backtrace-limit.
21713
21714 2012-03-15  Tristan Gingold  <gingold@adacore.com>
21715
21716         * c-parser.c (c_parser_parameter_declaration): Handle #pragma
21717         before a parameter.
21718
21719 2012-03-15  Tristan Gingold  <gingold@adacore.com>
21720
21721         * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
21722         use DW_OP_call_frame_cfa.
21723
21724 2012-03-14  H.J. Lu  <hongjiu.lu@intel.com>
21725
21726         PR target/50797
21727         * config/i386/i386-opts.h (pmode): New.
21728
21729         * config/i386/i386.c (ix86_option_override_internal): Properly
21730         check and set ix86_pmode.
21731
21732         * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
21733
21734         * config/i386/i386.opt (maddress-mode=): New.
21735
21736         * doc/invoke.texi: Document -maddress-mode=short|long for x86.
21737
21738 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21739
21740         * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
21741         (dwarf2out_do_cfi_asm): Likewise.
21742         * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
21743         handling.
21744         (add_data_member_location_attribute): Likewise.
21745         (gen_array_type_die): Likewise.
21746         (gen_subprogram_die): Likewise.
21747         (gen_producer_string): Likewise.
21748         * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
21749         Remove MIPS_DEBUGGING_INFO handling.
21750         (sdb_debug_hooks): Likewise.
21751         (sdbout_begin_block): Likewise.
21752         (sdbout_end_block): Likewise.
21753         (sdbout_begin_prologue): Likewise.
21754         (sdbout_start_source_file): Likewise.
21755         (sdbout_end_source_file): Likewise.
21756         (sdbout_init): Likewise.
21757         * system.h (MIPS_DEBUGGING_INFO): Poison.
21758
21759 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21760
21761         * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
21762         (alpha_file_start) [MS_STAMP]: Remove.
21763
21764         * config/alpha/elf.h (TARGET_GAS): Remove.
21765         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
21766         * config/alpha/linux.h (TARGET_DEFAULT): Remove.
21767         * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
21768         * config/alpha/vms.h (TARGET_DEFAULT): Remove.
21769         * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
21770         (alpha*-*-freebsd*): Likewise.
21771         (alpha*-*-netbsd*): Likewise.
21772         (alpha*-*-openbsd*): Likewise.
21773         (alpha*-*-*): Remove target_cpu_default2.
21774         * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
21775         handling.
21776         * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
21777         (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
21778         * config/alpha/alpha.c (print_operand): Always assume
21779         TARGET_AS_SLASH_BEFORE_SUFFIX.
21780         * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
21781         Remove TARGET_AS_CAN_SUBTRACT_LABELS.
21782         ("*builtin_setjmp_receiver_er_1"): Remove.
21783         * config/alpha/alpha.opt (malpha-as): Remove.
21784         (mgas): Ignore.
21785         * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
21786         -malpha-as, -mgas.
21787         Remove DEC Unix reference.
21788
21789         * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
21790         (EXTENDED_COFF): Remove.
21791         * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
21792         (EXTENDED_COFF): Don't undef.
21793         * config/alpha/alpha.c (alpha_file_start): Always assume
21794         OBJECT_FORMAT_ELF.
21795         Don't set targetm.asm_file_start_file_directive.
21796         [!OBJECT_FORMAT_ELF]: Remove.
21797         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
21798
21799         * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
21800         (DBX_DEBUGGING_INFO): Remove.
21801         (MIPS_DEBUGGING_INFO): Remove.
21802         (PREFERRED_DEBUGGING_TYPE): Remove.
21803         (DBX_OUTPUT_SOURCE_LINE): Remove.
21804         (SDB_OUTPUT_SOURCE_LINE): Remove.
21805         (DBX_CONTIN_LENGTH): Remove.
21806         (NO_DBX_FUNCTION_END): Remove.
21807         (ASM_STABS_OP): Remove.
21808         (ASM_STABN_OP): Remove.
21809         (ASM_STABD_OP): Remove.
21810         (SDB_ALLOW_FORWARD_REFERENCES): Remove.
21811         (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
21812         (PUT_SDB_DEF): Remove.
21813         (PUT_SDB_PLAIN_DEF): Remove.
21814         (PUT_SDB_TYPE): Remove.
21815         (sdb_label_count): Remove.
21816         (PUT_SDB_BLOCK_START): Remove.
21817         (PUT_SDB_BLOCK_END): Remove.
21818         (PUT_SDB_FUNCTION_START): Remove.
21819         (PUT_SDB_FUNCTION_END): Remove.
21820         (PUT_SDB_EPILOGUE_END): Remove.
21821         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
21822         (MIPS_DEBUGGING_INFO): Don't undef.
21823         (DBX_DEBUGGING_INFO): Don't undef.
21824         * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
21825         (MIPS_DEBUGGING_INFO): Don't undef.
21826         (DBX_DEBUGGING_INFO): Don't undef.
21827         * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
21828         * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
21829         handling.
21830         (alpha_start_function): Likewise.
21831         (sdb_label_count): Remove.
21832         (alpha_output_filename): Remove DBX_DEBUG handling.
21833         (alpha_file_start): Likewise.
21834
21835 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21836
21837         * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
21838         (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
21839         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
21840         Solaris 8 support.
21841         * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
21842         (ld_tls_support): Remove Solaris 8 references.
21843         (lwp_dir, lwp_spec): Remove support for alternate thread library.
21844         * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
21845         * configure: Regenerate.
21846         * config.in: Regenerate.
21847
21848         * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
21849         * config/i386/sol2.h: Remove Solaris 8 references.
21850
21851         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
21852         (i?86-*-solaris2.9): ... this.
21853         Remove Solaris 8 references.
21854         (Specific, *-*-solaris2*): Document Solaris 8 removal.
21855         Remove Solaris 8 references.
21856
21857 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21858
21859         * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
21860         (mips-sgi-irix6.5*): Remove.
21861         * config.host (mips-sgi-irix*): Remove.
21862         * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
21863         (set_have_as_tls): Remove *-*-irix6*.
21864         (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
21865         * configure: Regenerate.
21866
21867         * config/mips/iris6.h: Remove.
21868         * config/mips/iris6.opt: Remove.
21869         * config/mips/t-irix6: Remove.
21870
21871         * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
21872         (TARGET_IRIX6): Remove.
21873         (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
21874         Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
21875         * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
21876         handling.
21877         (mips_file_start): Likewise.
21878         * config/mips/mips-protos.h (irix_asm_output_align): Remove.
21879
21880         * config/mips/driver-native.c [__sgi__]: Remove.
21881         (host_detect_local_cpu) [__sgi__]: Remove.
21882
21883         * config/mips/gnu-user.h: Remove iris5.h reference.
21884
21885         * config/mips/mips-modes.def: Remove IRIX 6 reference.
21886         * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
21887         * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
21888         Remove.
21889
21890         * gcc.c (main): Move asm_debug initialization ...
21891         (asm_debug): ... here.
21892
21893         * ginclude/stddef.h (__STDDEF_H__): Don't define.
21894
21895         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
21896         * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
21897         * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
21898         (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
21899         [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
21900         * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
21901         Remove.
21902         * doc/tm.texi: Regenerate.
21903
21904         * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
21905         IRIX 6 reference.
21906         (MIPS Options, -march): Remove IRIX reference.
21907         * doc/install.texi (Binaries, SGI IRIX): Remove.
21908         (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
21909         of section.
21910         * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
21911
21912 2012-03-14  Martin Jambor  <mjambor@suse.cz>
21913
21914         * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
21915         when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
21916         (expand_expr_real_1): Do not handle misalignment if modifier is
21917         EXPAND_WRITE.
21918
21919 2012-03-14  Richard Guenther  <rguenther@suse.de>
21920
21921         PR middle-end/52584
21922         * tree-vect-generic.c (type_for_widest_vector_mode): Take
21923         element type instead of mode, use build_vector_type_for_mode
21924         instead of the langhook, build a vector of proper signedness.
21925         (expand_vector_operations_1): Adjust.
21926
21927 2012-03-14  Richard Guenther  <rguenther@suse.de>
21928
21929         PR middle-end/52582
21930         * gimple-fold.c (canonicalize_constructor_val): Make sure we have
21931         a cgraph node for a FUNCTION_DECL that comes from a constructor.
21932         (gimple_get_virt_method_for_binfo): Likewise.
21933
21934 2012-03-14  Richard Guenther  <rguenther@suse.de>
21935
21936         PR tree-optimization/52571
21937         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
21938         flag_section_anchors check ...
21939         (vect_can_force_dr_alignment_p): ... here.  Do not re-align
21940         DECL_COMMON variables.
21941
21942 2012-03-14  Richard Guenther  <rguenther@suse.de>
21943
21944         * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
21945         * stor-layout.c (start_bitfield_representative): New function.
21946         (finish_bitfield_representative): Likewise.
21947         (finish_bitfield_layout): Likewise.
21948         (finish_record_layout): Call finish_bitfield_layout.
21949         * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
21950         for QUAL_UNION_TYPE fields.
21951         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
21952         Stream DECL_BIT_FIELD_REPRESENTATIVE.
21953         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
21954
21955         PR middle-end/52080
21956         PR middle-end/52097
21957         PR middle-end/48124
21958         * expr.c (get_bit_range): Unconditionally extract bitrange
21959         from DECL_BIT_FIELD_REPRESENTATIVE.
21960         (expand_assignment): Adjust call to get_bit_range.
21961
21962 2012-03-14  Richard Guenther  <rguenther@suse.de>
21963
21964         PR middle-end/52578
21965         * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
21966         the outermost conversion is a sign-change only.
21967         (fold_binary_loc): Disregard widening and sign-changing
21968         conversions when we determine if two variables are equal
21969         for reassociation.
21970         * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
21971         (T1)x if the outermost conversion is a sign-change only.
21972
21973 2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
21974
21975         Revert:
21976         2012-03-14  Uros Bizjak  <ubizjak@gmail.com>
21977
21978         * config/i386/predicates.md (constant_call_address_operand): Declare
21979         as special predicate.  Update all uses.
21980
21981 2012-03-13  Jakub Jelinek  <jakub@redhat.com>
21982
21983         PR c/52577
21984         * c-parser.c (c_parser_postfix_expression)
21985         <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
21986
21987         * config/i386/smmintrin.h: Avoid /* within a comment.
21988         * config/i386/nmmintrin.h: Likewise.
21989
21990 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
21991
21992         * config/i386/i386.md (xbegin): Remove constraint from expander.
21993
21994 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
21995
21996         * config/i386/predicates.md (constant_call_address_operand): Declare
21997         as special predicate.  Update all uses.
21998         * config/i386/i386.md: Remove mode from constant_call_address_operand
21999         predicates.
22000         * config/i386/i386.c (ix86_output_call_insn): Call
22001         constant_call_address_operand with VOIDmode.
22002
22003 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
22004
22005         * config/i386/i386.c (ix86_decompose_address): Handle subregs of
22006         AND zero extended address correctly.
22007
22008 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
22009
22010         * config/i386/predicates.md (tls_symbolic_operand): Declare as
22011         special predicate.
22012         (tls_modbase_operand): Ditto.
22013         * config/i386/i386.md: Remove mode from tls_symbolic_operand and
22014         tls_modbase_operand predicates.
22015
22016 2012-03-13  Martin Jambor  <mjambor@suse.cz>
22017
22018         * expr.c (expand_assignment): Handle misaligned scalar writes to
22019         memory through top-level MEM_REFs by calling store_bit_field.
22020
22021 2012-03-13  Richard Guenther  <rguenther@suse.de>
22022
22023         PR middle-end/52134
22024         * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
22025         if Y is a constant multiple of 1 << CST.
22026
22027 2012-03-13  Georg-Johann Lay  <avr@gjlay.de>
22028
22029         PR target/52488
22030         * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
22031         offset (size) to a value the insns can deal with.
22032         (expand_epilogue): Ditto.
22033
22034 2012-03-13  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
22035
22036         * config/arm/neon.ml (ops): Fixup expected instructions for
22037         unsigned vector compares.
22038
22039 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
22040
22041         * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
22042         addresses only when %reg is not in word mode.
22043
22044 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22045
22046         * config/microblaze/microblaze.md: Fix typo.
22047         * tree-if-conv.c: Likewise.
22048         * tree-vect-patterns.c: Likewise.
22049
22050 2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22051
22052         * config.gcc (extra_passes): Remove.
22053         * configure.ac (extra_passes): Don't substitute.
22054         * configure: Regenerate.
22055         * Makefile.in (EXTRA_PASSES): Remove.
22056         (GCC_PASSES): Remove $(EXTRA_PASSES).
22057         (MOSTLYCLEANFILES): Likewise.
22058         (native): Likewise.
22059         (install-common): Likewise.
22060
22061 2012-03-13  Uros Bizjak  <ubizjak@gmail.com>
22062
22063         * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
22064         * config/i386/i386.c (ix86_decompose_address): Use
22065         TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
22066         (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
22067         thread pointer to a register.
22068
22069 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
22070
22071         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
22072         on tls_symbolic_operand.
22073         (tls_global_dynamic_64_<mode>): Likewise.
22074
22075 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
22076
22077         PR other/52545
22078         * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
22079         SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
22080
22081 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
22082
22083         PR target/52499
22084         * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
22085         type from reg_class_t to enum reg_class.
22086         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
22087
22088 2012-03-12  Andrew Pinski  <apinski@cavium.com>
22089
22090         * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
22091         (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
22092         (value_replacement): Likewise.
22093         (empty_block_p): Check also if the PHIs for the block are empty.
22094
22095 2012-03-12  Georg-Johann Lay  <avr@gjlay.de>
22096
22097         PR target/52148
22098         * config/avr/avr.c (avr_out_movmem): Fix typo in output template
22099         for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
22100         r184615 from 2012-02-28.
22101
22102 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
22103
22104         * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
22105         (ix86_gen_tls_local_dynamic_base_64): Likewise.
22106         (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
22107         and ix86_gen_tls_local_dynamic_base_64.
22108         (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
22109         ix86_gen_tls_local_dynamic_base_64.
22110
22111         * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
22112         (*tls_global_dynamic_64_<mode>): This.
22113         (tls_global_dynamic_64): Renamed to ...
22114         (tls_global_dynamic_64_<mode>): This.
22115         (*tls_local_dynamic_base_64): Renamed to ...
22116         (*tls_local_dynamic_base_64_<mode>): This.
22117         (tls_local_dynamic_base_64): Renamed to ...
22118         (tls_local_dynamic_base_64_<mode>): This.
22119
22120 2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>
22121
22122         * config/i386/i386.c (ix86_option_override_internal): Properly
22123         set ix86_gen_leave and ix86_gen_monitor.  Check Pmode == DImode,
22124         instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
22125         ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
22126         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
22127
22128         * config/i386/sse.md (sse3_monitor64): Renamed to ...
22129         (sse3_monitor64_<mode>): This.
22130
22131 2012-03-12  Tristan Gingold  <gingold@adacore.com>
22132
22133         * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
22134         (ia64_function_arg_advance): Ditto.
22135
22136 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22137
22138         * config.gcc (mips*-*-openbsd*): Remove.
22139         * config/mips/openbsd.h: Remove.
22140         * config/mips/sdb.h: Remove.
22141
22142         * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
22143         * config/mips/mips.c (sdb_label_count): Remove.
22144         (mips_debugger_offset): Remove #if 0 code.
22145         (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
22146         * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
22147
22148 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22149
22150         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
22151         binutils reference.
22152         (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
22153         Update binutils references.
22154         (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
22155         Update binutils reference.
22156         Update Sun as/GNU ld caveat.
22157         Document binutils largefile requirement for LTO plugin.
22158         Remove reference to alternate libpthread.
22159
22160 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22161
22162         * config.gcc (alpha*-dec-osf5.1*): Remove.
22163         * config.host (alpha*-dec-osf*): Remove.
22164         * configure.ac (*-*-osf*): Remove.
22165         (alpha*-dec-osf*): Remove.
22166         * configure: Regenerate.
22167
22168         * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
22169         config/alpha/va_list.h, config/alpha/x-osf: Remove.
22170
22171         * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
22172         * config/alpha/alpha.c (struct machine_function): Update comment.
22173         (alpha_start_function): Remove Tru64 UNIX as handling for
22174         max_frame_size.
22175         * config/alpha/alpha.md ("exception_receiver"): Remove
22176         TARGET_LD_BUGGY_LDGP.
22177         ("*exception_receiver_2"): Likewise.
22178         * except.c (finish_eh_generation): Remove Tru64 reference.
22179         * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
22180         * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
22181         * target.def (handle_pragma_extern_prefix): Remove.
22182
22183         * Makefile.in (mips-tfile.o-warn): Remove.
22184         (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
22185         (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
22186         * mips-tdump.c, mips-tfile.c: Remove.
22187
22188         * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
22189         extern_prefix.
22190         * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
22191         (Specific, alpha*-dec-osf5.1): Note removal.
22192         * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
22193         Remove.
22194         * doc/tm.texi: Regenerate.
22195         * doc/trouble.texi (Cross-Compiler Problems): Remove.
22196
22197 2012-03-12  Richard Guenther  <rguenther@suse.de>
22198
22199         * config/arm/arm.c (neon_dereference_pointer): Do not call
22200         covert during RTL expansion.
22201
22202 2012-03-12  Tristan Gingold  <gingold@adacore.com>
22203
22204         * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
22205         Options.  Mention -mpointer-size.
22206
22207 2012-03-12  Richard Guenther  <rguenther@suse.de>
22208
22209         * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
22210         build_nonstandard_integer_type.
22211
22212 2012-03-12  Richard Guenther  <rguenther@suse.de>
22213
22214         * tree.c (signed_or_unsigned_type_for): Use
22215         build_nonstandard_integer_type.
22216         (signed_type_for): Adjust documentation.
22217         (unsigned_type_for): Likewise.
22218         * tree-pretty-print.c (dump_generic_node): Use standard names
22219         for non-standard integer types if available.
22220
22221 2012-03-12  Tristan Gingold  <gingold@adacore.com>
22222
22223         * config/vms/vms.opt: Add vms-opts.h header.
22224         (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
22225         target mask.
22226         (-mvms-return-codes): Document.
22227         (-mpointer-size): New option.
22228         (vms_pointer_size): Add enumeration.
22229         * config/vms/vms-opts.h: New file.
22230         * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
22231         __INITIAL_POINTER_SIZE.
22232         (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
22233         (C_COMMON_OVERRIDE_OPTIONS): Define.
22234         (DWARF2_ADDR_SIZE): Define.
22235         * config/vms/vms.c (vms_patch_builtins): Adjust condition.
22236         * config/vms/vms-protos.h (vms_c_common_override_options):
22237         New prototype.
22238         * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
22239         if -mno-pointer-size.
22240         (vms_c_common_override_options): New function.
22241         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
22242         * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
22243         (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
22244         and flag_vms_pointer_size.
22245         (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
22246         * config.gcc (*-*-*vms*): Define xm_file.
22247         (alpha*-dec-*vms*): Do not define xm_file.
22248         (alpha64-dec-*vms*): Remove.
22249         (ia64-hp-*vms*): Do not define xm_file.  Simplify tm_file
22250         and tmake_file.
22251
22252 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
22253
22254         PR tree-optimization/51721
22255         * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
22256         if (int) unsvar cmp CST.
22257
22258 2012-03-12  Richard Guenther  <rguenther@suse.de>
22259
22260         * tree-sra.c (create_access_replacement): Only rename the replacement
22261         if we can rewrite it into SSA form.  Properly mark register typed
22262         replacements that we cannot rewrite with TREE_ADDRESSABLE.
22263         * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
22264         for aggregate or BLKmode results.
22265
22266 2012-03-12  Jakub Jelinek  <jakub@redhat.com>
22267
22268         PR tree-optimization/52533
22269         * tree-vrp.c (register_edge_assert_for_2): Use double_int
22270         type for mask, only handle shifts by non-zero in-range
22271         shift count, for LE_EXPR and GT_EXPR if new_val is
22272         maximum, don't add the assertion.
22273
22274 2012-02-12  Kirill Yukhin  <kirill.yukhin@intel.com>
22275
22276         * doc/invoke.texi: Document -mrtm option.
22277         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
22278         (OPTION_MASK_ISA_RTM_UNSET): Ditto.
22279         (ix86_handle_option): Handle OPT_mrtm.
22280         * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
22281         xtestintrin.h.
22282         (x86_64-*-*): Ditto.
22283         * i386-builtin-types.def (INT_FTYPE_VOID): New.
22284         * config/i386/i386-c.c (ix86_target_macros_internal): Define
22285         __RTM__ if needed.
22286         (ix86_target_string): Define -mrtm option.
22287         (PTA_RTM): New.
22288         (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
22289         Handle new option.
22290         (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
22291         (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
22292         IX86_BUILTIN_XTEST.
22293         (bdesc_special_args): Ditto.
22294         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
22295         (ix86_expand_special_args_builtin): Handle new built-in type.
22296         (ix86_expand_builtin): Handle XABORT instruction.
22297         * config/i386/i386.h (TARGET_RTM): New.
22298         * config/i386/i386.md (UNSPECV_XBEGIN): New.
22299         (UNSPECV_XEND): Ditto.
22300         (UNSPECV_XABORT): Ditto.
22301         (UNSPECV_XTEST): Ditto.
22302         (xbegin): Ditto.
22303         (xbegin_1): Ditto.
22304         (xend): Ditto.
22305         (xabort): Ditto
22306         (xtest): Ditto.
22307         (xtest_1): Ditto.
22308         * config/i386/i386.opt (mrtm): New.
22309         * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
22310         * config/i386/rtmintrin.h: New header.
22311         * config/i386/xtestintrin.h: Ditto.
22312
22313 2012-03-12  Tristan Gingold  <gingold@adacore.com>
22314
22315         * ginclude/stddef.h: Adjust previous patch.
22316         Use __VMS__ instead of VMS.
22317
22318 2012-03-12  Uros Bizjak  <ubizjak@gmail.com>
22319
22320         * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
22321         Also convert sequences with CC setting arithmetic instruction.
22322
22323 2012-03-11  Sandra Loosemore  <sandra@codesourcery.com>
22324
22325         * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
22326         from C Language Options to Preprocessor Options.
22327         (C Dialect Options): Move -no-integrated-cpp documentation
22328         from here...
22329         (Preprocessor Options): ...to here.  Rewrite the description
22330         so it makes more sense, and remove discussion of merging front ends.
22331
22332 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
22333
22334         * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
22335         needed for loop.
22336         (ix86_expand_setmem): Likewise.
22337
22338 2012-03-11  Uros Bizjak  <ubizjak@gmail.com>
22339
22340         * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
22341         convert_to_mode.
22342
22343 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
22344
22345         * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
22346         ptr_mode == SImode.  Replace DImode with Pmode or ptr_mode.
22347
22348 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
22349
22350         * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
22351
22352 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
22353
22354         * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
22355         TARGET_64BIT.
22356
22357 2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
22358             Uros Bizjak  <ubizjak@gmail.com>
22359
22360         * config/i386/predicates.md (call_insn_operand): Allow
22361         constant_call_address_operand in Pmode only.
22362         (sibcall_insn_operand): Ditto.
22363         * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
22364         (*call_vzeroupper): Ditto.
22365         (*sibcall): Ditto.
22366         (*sibcall_vzeroupper): Ditto.
22367         (*call_value): Ditto.
22368         (*call_value_vzeroupper): Ditto.
22369         (*sibcall_value): Ditto.
22370         (*sibcall_value_vzeroupper): Ditto.
22371         (*indirect_jump): Ditto.
22372         (*tablejump_1): Ditto.
22373         (indirect_jump): Convert memory address to word mode for TARGET_X32.
22374         (tablejump): Ditto.
22375         * config/i386/i386.c (ix86_expand_call): Convert indirect operands
22376         to word mode.
22377
22378 2012-03-11  Oleg Endo  <olegendo@gcc.gnu.org>
22379
22380         PR target/51244
22381         * config/sh/sh.md (movnegt): Expand into respective insns immediately.
22382         Use movrt_negc instead of negc pattern for non-SH2A.
22383         (*movnegt): Remove.
22384         (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
22385
22386 2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>
22387
22388         * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
22389         if Pmode != word_mode.
22390         (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
22391         Pmode == SImode for TARGET_X32.
22392
22393         * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
22394         (tls_initial_exec_x32): Likewise.
22395
22396 2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>
22397
22398         PR rtl-optimization/52528
22399         * combine.c (can_combine_p): Add setting of subst_low_luid
22400         before call to expand_field_assignment().
22401
22402 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
22403
22404         * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
22405         and related program names.
22406
22407 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
22408
22409         * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
22410
22411 2012-03-09  Uros Bizjak  <ubizjak@gmail.com>
22412
22413         PR target/52530
22414         * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
22415         (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
22416         to set code to 'q'.
22417         * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
22418         (*movdi_internal_rex64): Use %E operand modifier for lea.
22419         (*movsi_internal): Ditto.
22420         (*lea_1): Ditto.
22421         (*lea<mode>_2): Ditto.
22422         (*lea_{3,4,5,6}_zext): Ditto.
22423         (*tls_global_dynamic_32_gnu): Ditto.
22424         (*tls_global_dynamic_64): Ditto.
22425         (*tls_dynamic_gnu2_lea_32): Ditto.
22426         (*tls_dynamic_gnu2_lea_64): Ditto.
22427         (pro_epilogue_adjust_stack_<mode>_add): Ditto.
22428
22429 2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
22430
22431         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
22432         redefine to be NULL if the current bit-size is different from the
22433         configured bit-size.
22434
22435         * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
22436         cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
22437         set the default tuning.  Add asserts to make sure the cpu and tune
22438         indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
22439         test whether the index is set, instead of > 0.
22440         (rs6000_file_start): Do not reset the default cpu if the current
22441         bit-size is different from the configured bit-size.
22442
22443 2012-03-09  Tristan Gingold  <gingold@adacore.com>
22444
22445         * config/vms/vms-crtlmap.map: Add comments.
22446         Add entries needed to build Ada RTS.
22447
22448 2012-03-09  Tristan Gingold  <gingold@adacore.com>
22449
22450         * ginclude/stddef.h: Do not define __size_t on VMS.
22451
22452 2012-03-09  Tristan Gingold  <gingold@adacore.com>
22453
22454         * c-tree.h (c_default_pointer_mode): New variable.
22455         * c-decl.c (c_default_pointer_mode): New variable.
22456         (c_build_pointer_type): New function.
22457         (grokdeclarator): Call c_build_pointer_type instead
22458         of build_pointer_type.
22459
22460         * config/vms/vms-c.c: Include c-tree.h
22461         (saved_pointer_mode): New variable.
22462         (handle_pragma_pointer_size): New function.
22463         (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
22464         (vms_c_register_pragma): Register __pointer_size and
22465         __required_pointer_size pragmas.
22466
22467 2012-03-09  Tristan Gingold  <gingold@adacore.com>
22468
22469         * config/vms/vms-c.c (vms_construct_include_filename): New function.
22470         (vms_c_register_includes): Reference it.
22471
22472 2012-03-09  Andrew Pinski  <apinski@cavium.com>
22473
22474         PR middle-end/51988
22475         * tree-ssa-phiopt.c: Include tree-pretty-print.h for
22476         print_generic_expr.
22477         (tree_ssa_phiopt_worker): Go through all the PHIs for
22478         value_replacement instead of just the singleton one.
22479         (value_replacement): Change return type to int.  Return 0 instead of
22480         false.
22481         Allow the middle basic block to contain more than just the defining
22482         statement.
22483         Handle non empty middle basic blocks.
22484         * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
22485
22486 2012-03-09  Jiangning Liu  <jiangning.liu@arm.com>
22487
22488         * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
22489         array reference and component reference.
22490         (analyze_scalar_evolution_for_address_of): New.
22491
22492 2012-03-08  Jie Zhang  <jzhang918@gmail.com>
22493
22494         PR target/49862
22495         * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
22496         (hwloop_pattern_reg): Fix set but not used warning.
22497         (bfin_reorg_loops): Remove unused parameter.
22498         (bfin_reorg): Update use of bfin_reorg_loops.
22499
22500 2012-03-08  H.J. Lu  <hongjiu.lu@intel.com>
22501
22502         * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
22503         with integer parameters in registers.
22504         (gen_push): Push register in word_mode instead of Pmode.
22505         (ix86_emit_save_regs): Likewise.
22506         (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
22507         (gen_pop): Pop register in word_mode instead of Pmode.
22508         (ix86_emit_restore_regs_using_pop): Likewise.
22509         (ix86_expand_prologue): Replace Pmode with word_mode for push
22510         immediate.  Use ix86_gen_pro_epilogue_adjust_stack.  Save and
22511         restore RAX and R10 in word_mode.
22512         (ix86_emit_restore_regs_using_mov): Restore integer registers
22513         in word_mode.
22514         (ix86_expand_split_stack_prologue): Save R10_REG and restore in
22515         word_mode.
22516         (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
22517         (ix86_split_long_move): Likewise.
22518
22519         * config/i386/i386.md (W): New.
22520         (*push<mode>2_prologue): Replace :P with :W.
22521         (*pop<mode>1): Likewise.
22522         (*pop<mode>1_epilogue): Likewise.
22523         (push/pop peephole2): Use word_mode scratch registers.
22524
22525 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
22526
22527         * config/i386/predicates.md (indirect_branch_operand): Simplify.
22528
22529 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
22530
22531         * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
22532         for constants in [-63,63].
22533
22534 2012-03-08  Uros Bizjak  <ubizjak@gmail.com>
22535
22536         PR target/52530
22537         Revert:
22538         2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
22539
22540         * config/i386/i386.c (ix86_print_operand_address): Only handle
22541         zero-extended DImode addresses.
22542
22543 2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22544
22545         * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
22546         * configure: Regenerate.
22547
22548 2012-03-08  Georg-Johann Lay  <avr@gjlay.de>
22549
22550         PR target/52496
22551         * config/avr/avr.c (avr_mem_clobber): New static function.
22552         (avr_expand_delay_cycles): Add memory clobber operand to
22553         delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
22554         * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
22555         (enable_interrupt, disable_interrupt): New expander.
22556         (nopv, sleep, wdr): New expanders.
22557         (delay_cycles_1): Add memory clobber.
22558         (delay_cycles_2): Add memory clobber.
22559         (delay_cycles_3): Add memory clobber.
22560         (delay_cycles_4): Add memory clobber.
22561         (cli_sei): New insn from former "enable_interrupt",
22562         "disable_interrupt" with memory clobber.
22563         (*wdt): New insn from former "wdt" with memory clobber.
22564         (*nopv): Similar, but for "nopv".
22565         (*sleep): Similar, but for "sleep".
22566
22567 2012-03-07  Oleg Endo  <olegendo@gcc.gnu.org>
22568             Kaz Kojima  <kkojima@gcc.gnu.org>
22569
22570         PR target/52503
22571         * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
22572         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
22573         (SUBTARGET_OVERRIDE_OPTIONS): Define.
22574
22575 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
22576
22577         * config/i386/predicates.md (x86_64_zext_general_operand): New.
22578         * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
22579         predicate to x86_64_zext_general_operand.  Accept "Z" constraint.
22580
22581 2012-03-07  Walter Lee  <walt@tilera.com>
22582
22583         * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
22584         REG_CFA_* notes for the stack pointer.
22585         (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
22586         EH_RETURN_STACKADJ_RTX.
22587         * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
22588         generate REG_CFA_* notes for the stack pointer.
22589         (tilepro_expand_epilogue): Restore stack pointer by adjusting it
22590         by EH_RETURN_STACKADJ_RTX.
22591
22592 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
22593
22594         * doc/invoke.texi (AVR Built-in Macros): Correct condition for
22595         when __AVR_3_BYTE_PC__ is defined.
22596
22597 2012-03-07  Uros Bizjak  <ubizjak@gmail.com>
22598
22599         * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
22600         (ix86_print_operand): Handle '^'.
22601         * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
22602         using P mode iterator.  Add %^ to asm template to conditionally emit
22603         addr32 prefix.
22604         (*rep_movdi_rex64): Ditto.
22605         (*strsetdi_rex_1): Ditto.
22606         (*rep_stosdi_rex64): Ditto.
22607         (*strmov{si,hi,qi}_1): Add %^ to asm template to
22608         conditionally emit addr32 prefix.
22609         (*rep_mov{si,qi}): Ditto.
22610         (*strset{si,hi,qi}): Ditto.
22611         (*rep_stos{si,qi}): Ditto.
22612         (*cmpstrnqi_nz_1): Ditto.
22613         (*cmpstrnqi_1): Ditto.
22614         (*strlenqi_1): Ditto.
22615
22616 2012-03-07  H.J. Lu  <hongjiu.lu@intel.com>
22617
22618         * config/i386/i386.c (function_value_64): Return pointers in
22619         word_mode instead of Pmode.
22620         (ix86_promote_function_mode): Likewise.
22621
22622 2012-03-07  Richard Guenther  <rguenther@suse.de>
22623
22624         * coverage.c (get_gcov_type): Use type_for_mode.
22625         (get_gcov_unsigned_t): Likewise.
22626         * expr.c (store_constructor): Use type_for_mode.
22627         (try_casesi): Likewise.
22628         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
22629         (add_standard_iv_candidates): Use standard type trees.
22630         * dojump.c (do_jump): Remove dead code.
22631
22632 2012-03-07  Richard Guenther  <rguenther@suse.de>
22633
22634         * c-typeck.c (pointer_diff): Use c_common_type_for_size.
22635
22636 2012-03-07  Richard Guenther  <rguenther@suse.de>
22637
22638         * convert.c (strip_float_extensions): Move ...
22639         * tree.c (strip_float_extensions): ... here.
22640
22641 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
22642
22643         PR target/52484
22644         * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
22645
22646 2012-03-07  Richard Guenther  <rguenther@suse.de>
22647
22648         * omp-low.c (extract_omp_for_data): Use signed_type_for.
22649         (expand_omp_for_generic): Likewise.
22650         (expand_omp_for_static_nochunk): Likewise.
22651         (expand_omp_for_static_chunk): Likewise.
22652         * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
22653         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
22654         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
22655         Use unsigned_type_for.
22656         (vect_create_cond_for_align_checks): Use signed_type_for.
22657
22658 2012-03-07  Andrey Belevantsev  <abel@ispras.ru>
22659
22660         PR rtl-optimization/52203
22661         * sel-sched.c (estimate_insn_cost): New parameter pempty.  Adjust
22662         all callers to pass NULL except ...
22663         (reset_sched_cycles_in_current_ebb): ... here, save the value
22664         in new variable 'empty'.  Increase issue_rate only for
22665         non-empty insns.
22666
22667 2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
22668
22669         PR target/51417
22670         * Makefile.in: Let install-gcc-ar depend on installdirs,
22671         gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
22672         Don't double canonicalize if cross-compiling.
22673
22674 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
22675
22676         PR target/52506
22677         * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
22678         to: RAMPZ, RAMPY, RAMPX, RAMPD.
22679         (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
22680
22681 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
22682
22683         PR target/52505
22684         * config/avr/avr.c (avr_out_xload): Don't read unintentionally
22685         from RAM.
22686         * config/avr/avr.md (xload_8): Adjust insn length.
22687
22688 2012-03-07  Georg-Johann Lay  <avr@gjlay.de>
22689
22690         PR target/52461
22691         * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
22692         if RAMPZ affects reading from RAM.
22693
22694 2012-03-07  Richard Guenther  <rguenther@suse.de>
22695
22696         PR pch/52518
22697         PR pch/38987
22698         * doc/invoke.texi (Precompiled Headers): Remove sentence that
22699         suggests you can include PCHs from inside another header.
22700
22701 2012-03-07  Richard Sandiford  <rdsandiford@googlemail.com>
22702
22703         PR middle-end/52515
22704         * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
22705
22706 2012-03-07  Kai Tietz  <ktietz@redhat.com>
22707
22708         * doc/invoke.texi (fwritable-relocated-rdata): Document
22709         new Cygwin/MinGW target option.
22710         * config/i386/winnt.c (i386_pe_unique_section): Ignore
22711         reloc if flag -fwritable-relocated-rdata is not set.
22712         (i386_pe_section_type_flags): Likewise.
22713         * config/i386/cygming.opt (fwritable-relocated-rdata):
22714         Add new flag variable flag_writable_rel_rdata.
22715
22716 2012-03-07  Richard Guenther  <rguenther@suse.de>
22717
22718         * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
22719         precision against gimple constraints.
22720
22721 2012-03-06  Richard Sandiford  <rdsandiford@googlemail.com>
22722
22723         PR middle-end/52372
22724         * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
22725         variables.
22726         (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
22727         * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
22728         variables.
22729         (init_emit_regs): Move associated initialization to...
22730         (init_emit_once): ...here.
22731
22732 2012-03-06  Richard Henderson  <rth@redhat.com>
22733
22734         * config/m68k/m68k.h (ISA_HAS_TAS): New.
22735         * config/m68k/sync.md (atomic_test_and_set): Use it.
22736         (atomic_test_and_set_1): Likewise.
22737
22738 2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22739
22740         PR target/50310
22741         * config/rs6000/vector.md (vector_uneq<mode>): Add support for
22742         UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
22743         (vector_ltgt<mode>): Likewise.
22744         (vector_ordered<mode>): Likewise.
22745         (vector_unordered<mode>): Likewise.
22746         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
22747
22748 2012-03-06  Aldy Hernandez  <aldyh@redhat.com>
22749
22750         * trans-mem.c: New typedef for tm_region_p.
22751         Define vector types for tm_region_p.
22752         (tm_region_init): Replace region_worklist to a vector called
22753         bb_regions.
22754
22755 2012-03-06  Richard Guenther  <rguenther@suse.de>
22756
22757         * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
22758         MEM_REF with constant pointer operand.
22759
22760 2012-03-06  Richard Guenther  <rguenther@suse.de>
22761
22762         PR middle-end/52493
22763         * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
22764
22765 2012-03-06  Tristan Gingold  <gingold@adacore.com>
22766
22767         * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
22768         (external_model_kind): Improve documentation.
22769         (vms_pragma_extern_model): Handle relaxed_redef.
22770         (vms_c_register_pragma): Allow expansion for nomember_alignment.
22771
22772 2012-03-06  Georg-Johann Lay  <avr@gjlay.de>
22773
22774         * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
22775         Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
22776         Some more notes on EIND usage and reorder EIND subsection.
22777
22778 2012-03-06  Tristan Gingold  <gingold@adacore.com>
22779
22780         * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
22781         * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
22782
22783 2012-03-06  Tristan Gingold  <gingold@adacore.com>
22784
22785         * config/vms/t-vmsnative (version): Define.
22786         * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
22787
22788 2012-03-06  Andrey Belevantsev  <abel@ispras.ru>
22789
22790         PR rtl-optimization/52250
22791         * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
22792         to put note list into.  Unconditionally call move_bb_info.
22793         (move_bb_info): Do not assert the blocks being in the same region,
22794         just drop the note list if they are not.
22795
22796 2012-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
22797
22798         PR target/51244
22799         * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
22800         and use unified expansion logic.
22801         * config/sh/sh.md (xorsi3_movrt): Rename to movrt.  Move
22802         closer to the existing movt insn.
22803         (negc): Rename insn to *negc.  Add new expander.
22804         (movnegt): Use xor pattern for T bit negation.  Reserve helper
22805         constant for negc pattern.
22806         (*movnegt): New insn and splitter.
22807
22808 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
22809
22810         * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
22811         PLUS_EXPR.
22812
22813 2012-03-05  Richard Henderson  <rth@redhat.com>
22814
22815         * genemit.c (main): Include "target.h" in insn-emit.c.
22816         * Makefile.in (insn-emit.o): Depend on TARGET_H.
22817         * config/sh/sync.md (atomic_test_and_set): Reference
22818         targetm.atomic_test_and_set_trueval instead of
22819         TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
22820
22821 2012-03-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22822
22823         * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
22824         Make static.
22825
22826 2012-03-05  Steven Bosscher  <steven@gcc.gnu.org>
22827
22828         * langhooks.c (add_builtin_type): New function.
22829         * langhooks.h (add_builtin_type): Export it.
22830         * config/mep/mep.c (mep_init_builtins): Use it.
22831         * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
22832
22833 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
22834
22835         PR debug/51902
22836         * tree.h (BLOCK_SAME_RANGE): Define.
22837         * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
22838         if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
22839         Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
22840         isn't equal to supercontext fragment's fragment chain.
22841         Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
22842         fragment origin.
22843         (blocks_nreverse_all): Likewise.
22844         (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits.  Set
22845         BLOCK_SUPERCONTEXT to supercontext fragment instead of
22846         supercontext fragment's fragment origin.
22847         * dwarf2out.c (add_high_low_attributes): If stmt has the same
22848         range as its parent (or parents thereof etc.), use the parent's
22849         DW_AT_ranges value instead of creating a new .debug_ranges range.
22850
22851 2012-03-05  Richard Henderson  <rth@redhat.com>
22852
22853         PR tree-opt/52242
22854         Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
22855         * omp-low.c (expand_omp_atomic): Assume anything aligned to
22856         BIGGEST_ALIGNMENT is aligned.
22857
22858 2012-03-05  Richard Henderson  <rth@redhat.com>
22859
22860         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
22861         * config/sh/sh.c: ... here.
22862
22863 2012-03-05  Richard Henderson  <rth@redhat.com>
22864
22865         PR target/52481
22866         * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
22867         instead of calling negqi2 directly.
22868
22869 2012-03-05  Aldy Hernandez  <aldyh@redhat.com>
22870
22871         PR middle-end/52463
22872         * trans-mem.c (tm_region_init): Use last_basic_block.
22873
22874 2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>
22875
22876         * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
22877         * config/sh/sync.md (atomic_test_and_set): New expander.
22878         (tasb, atomic_test_and_set_soft): New insns.
22879         * config/sh/sh.opt (menable-tas): New option.
22880         * doc/invoke.texi (SH Options): Document it.
22881
22882 2012-03-05  Richard Guenther  <rguenther@suse.de>
22883
22884         * cfgloop.c (verify_loop_structure): Verify dominators before
22885         using them.
22886         * graphite-clast-to-gimple.c (graphite_verify): Do not verify
22887         dominators from here.
22888         * graphite-scop-detection.c (create_sese_edges): Likewise.
22889         * loop-doloop.c (doloop_optimize_loops): Likewise.
22890         * loop-init.c (loop_optimizer_init): Likewise.
22891         * loop-unroll.c (unroll_and_peel_loops): Likewise.
22892         * loop-unswitch.c (unswitch_loops): Likewise.
22893         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
22894         * tree-parloops.c (parallelize_loops): Likewise.  Verify
22895         only when checking is enabled.
22896         * tree-loop-distribution.c (tree_loop_distribution): Likewise.
22897
22898 2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>
22899
22900         * genautomata.c (parse_automata_opt): New static function.
22901         (initiate_automaton_gen): Remove all option handling code.  Remove
22902         argc argument.  All callers changed.
22903         (main): Call init_rtx_reader_args_cb with the new function as argument.
22904
22905 2012-03-05  Richard Guenther  <rguenther@suse.de>
22906
22907         * cfgexpand.c (gimple_expand_cfg): Free dominator info.
22908         * tree-if-conv.c (combine_blocks): Free post-dominator info
22909         after breaking it.
22910         * tree-parloops.c (create_parallel_loop): Free and re-compute
22911         dominator info after breaking it.
22912
22913 2012-03-05  Richard Guenther  <rguenther@suse.de>
22914
22915         PR middle-end/52353
22916         * optabs.h (trapv_unoptab_p): New function.
22917         (trapv_binoptab_p): Likewise.
22918         * optabs.c (expand_binop): Use emit_libcall_block_1 with
22919         a proper equiv_may_trap argument.
22920         (expand_unop): Likewise.
22921         (emit_libcall_block_1): Take extra argument whether the
22922         instruction may trap.  Renamed from ...
22923         (emit_libcall_block): ... this.  New wrapper.
22924
22925 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
22926
22927         PR tree-optimization/51721
22928         * tree-vrp.c (register_edge_assert_for_2): If comparing
22929         lhs of right shift by constant with an integer constant,
22930         add ASSERT_EXPRs for the rhs1 of the right shift.
22931
22932         * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
22933
22934 2012-03-05  Richard Guenther  <rguenther@suse.de>
22935
22936         * tree.c (integer_zerop): Handle VECTOR_CSTs.
22937         (integer_onep): Likewise.
22938         (integer_all_onesp): Likewise.
22939
22940 2012-03-05  Georg-Johann Lay  <avr@gjlay.de>
22941
22942         * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
22943
22944 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
22945
22946         * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
22947         instead of TARGET_64BIT.
22948
22949 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
22950
22951         * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
22952         adjust_stack_insn.
22953
22954 2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>
22955
22956         * config/i386/i386.c (ix86_print_operand_address): Only handle
22957         zero-extended DImode addresses.
22958
22959 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
22960
22961         * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
22962         taken and cputaken as bool.
22963
22964 2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
22965
22966         * config/i386/constraints.md (Ya): New internal constraint.
22967         * config/i386/i386.md (zero_extendsidi2): Remove expansion.
22968         (*zero_extendsidi2_rex64): Add x,x alternative.
22969         (*zero_extendsidi2): Ditto.  Add o,0 alternative.
22970         Remove flags reg clobber.  Adjust corresponding splits.
22971         (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
22972         zero_extendqisi2 expanders using SWI12 mode iterator.
22973         (zero_extend<mode>si2_and): Macroize insn from
22974         zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
22975         splitters.
22976         (*zero_extend<mode>si2):  Macroize insn from
22977         *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
22978         (*zero_extend*2_movzbl_and): Remove insn patterns.
22979         (zero_extendqihi2_and): Merge corresponding splitter.
22980         (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
22981         (*zero_extend*2_movzbl_and): Remove insn patterns.
22982         (*anddi_1): Split TYPE_IMOVX instructions.
22983         (*andsi_1): Use Ya for alternative 2.  Split TYPE_IMOVX instructions.
22984         (*andhi_1): Ditto.
22985         (and->zext splitter): Add splitter pattern.
22986         (zero extend with andsi3 splitter): Adjust zero_extend pattern.
22987
22988 2012-03-04  Sandra Loosemore  <sandra@codesourcery.com>
22989
22990         * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
22991         x86-specific text.
22992         (Debugging Options): Likewise.
22993         (Optimize Options): Likewise.
22994         (i386 and x86-64 Options): Discuss -march before -mtune, consistently
22995         with other architectures.  Use official processor names with correct
22996         spelling/capitalization.  Fix formatting and grammar issues.
22997         (i386 and x86-64 Windows Options): Similar cleanup here.
22998
22999 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
23000
23001         * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
23002
23003 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
23004
23005         * config/sh/sh.c (sh_dwarf_register_span): Don't apply
23006         DBX_REGISTER_NUMBER.
23007
23008 2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
23009
23010         * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
23011         operand is CONST_INT.  Take COSTS_N_INSNS into account.
23012         (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
23013         of shiftcosts.
23014
23015 2012-03-02  Richard Henderson  <rth@redhat.com>
23016
23017         * optabs.c (expand_atomic_test_and_set): Honor
23018         atomic_test_and_set_trueval even when atomic_test_and_set
23019         optab is not in use.
23020
23021 2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>
23022
23023         PR target/48596
23024         PR target/48806
23025         * config/sh/sh.c (sh_register_move_cost): Increase cost between
23026         GENERAL_REGS and FP_REGS for SImode.
23027
23028 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
23029
23030         PR target/49486
23031         * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
23032         (absdi2): New expander.
23033         (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
23034
23035 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
23036
23037         * config/sh/sync.md (atomic_exchange<mode>): New expander.
23038         (atomic_exchange<mode>_soft): New insn.
23039
23040 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
23041
23042         * config/sh/sync.md: Update copyright notice dates.
23043         (atomic_compare_and_swap<mode>): Use SImode for return value instead
23044         of QImode.
23045         (atomic_compare_and_swap<mode>_soft): Likewise.
23046
23047 2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>
23048
23049         PR target/31640
23050         * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
23051         * config/sh/sh.c: Update copyright notice dates.
23052         (sh_loop_align): Add logic from LOOP_ALIGN.  Don't disable loop
23053         alignment for TARGET_HARD_SH4.
23054         (sh_option_override): Reduce default function alignment.  Set
23055         loop alignment to 4 bytes when not optimizing for size.
23056
23057 2012-03-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
23058
23059         PR middle-end/50335
23060         * doc/invoke.texi (floop-flatten): Remove.
23061         * toplev.c (process_options): Remove references to flag_loop_flatten.
23062         * tree-ssa-loop.c (gate_graphite_transform): Same.
23063         * common.opt (floop-flatten): Obsolete.
23064         * graphite-poly.c (apply_poly_transforms): Remove reference to
23065         flag_loop_flatten.
23066         * Makefile.in (graphite-flattening.o): Remove.
23067         * graphite-flattening.c: Remove.
23068
23069 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
23070
23071         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
23072         having mode compatible with the mode of previous compare.  Substitute
23073         compare mode of previous compare with the mode, compatible
23074         with eliminated and previous compare.
23075
23076 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
23077
23078         * config/rs6000/dfp.md (floatdidd2): New define_insn.
23079
23080 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
23081
23082         * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
23083         compatible with CCGOCmode and CCGCmode.
23084
23085 2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>
23086
23087         * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
23088
23089 2012-03-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
23090
23091         * config/arm/arm.c (arm_sat_operator_match): New function.
23092         * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
23093         * config/arm/arm.md ("insn" attribute): Add "sat" value.
23094         ("SAT", "SATrev"): New code iterators.
23095         ("SATlo", "SAThi"): New code iterator attributes.
23096         ("*satsi_<SAT:code>"): New pattern.
23097         ("*satsi_<SAT:code>_shift"): Likewise.
23098         * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
23099         and "shift" attributes.
23100         ("arm_usatsihi"): Add "insn" attribute.
23101         * config/arm/predicates.md (sat_shift_operator): Allow multiplication
23102         by powers of two.  Do not allow shift by 32.
23103
23104 2012-03-02  Uros Bizjak  <ubizjak@gmail.com>
23105
23106         PR target/46716
23107         * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
23108         to pass the argument in the register of "natural" mode.
23109
23110 2012-03-02  Richard Guenther  <rguenther@suse.de>
23111
23112         PR tree-optimization/52406
23113         * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
23114         (struct indices): Add unconstrained_base member.
23115         (struct dr_alias): Remove unused vops member.
23116         (DR_UNCONSTRAINED_BASE): New define.
23117         * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
23118         add indices to allow their disambiguation.  Make DR_BASE_OBJECT
23119         be an artificial access that covers the whole indexed object,
23120         or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
23121         plain decl base-objects to their MEM_REF variant.
23122         (dr_may_alias_p): When the base-object of either data reference
23123         has unknown size use only points-to information.
23124         (compute_affine_dependence): Make dumps easier to read and
23125         more verbose.
23126         * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
23127         DR_REF when looking for packed references.
23128         (vect_supportable_dr_alignment): Likewise.
23129
23130 2012-03-02  Greta Yorsh  <Greta.Yorsh@arm.com>
23131
23132         * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
23133         Improve conditions for peepholes of loads followed by commutative
23134         operators.
23135         * config/arm/ldmstm.md: Regenerated.
23136
23137 2012-03-02  Richard Guenther  <rguenther@suse.de>
23138
23139         * BASE-VER: Set to 4.8.0.
23140
23141 2012-03-01  Richard Earnshaw  <rearnsha@arm.com>
23142
23143         * config.gcc (obsolete): Add all ARM targets using the FPA.
23144         (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
23145         * doc/install.texi: Avoid references to obsolete ARM ports.
23146
23147 2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>
23148
23149         * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
23150
23151 2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
23152             Joern Rennecke  <joern.rennecke@embecosm.com>
23153
23154         * doc/extend.texi: Expand and update information on interrupt
23155         attribute for Epiphany.
23156
23157 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
23158
23159         * config/sh/sh-protos.h: Update copyright notice dates.
23160         * config/sh/sh.h: Likewise.
23161         * config/sh/sh.md: Likewise.
23162         * config/sh/constraints.md: Likewise.
23163         * config/sh/predicates.md: Likewise.
23164
23165 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
23166
23167         * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
23168         * config/sh/sh.c (tertiary_reload_operand): Likewise.
23169
23170 2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
23171
23172         * config/sh/constraints.md: Fix comment typo.
23173
23174 2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23175
23176         PR target/52408
23177         * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
23178         unsigned HOST_WIDE_INT.
23179         (zvdep_imm64): Likewise.
23180         (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
23181         (vdepi_and): Likewise.
23182         Likewise for unamed 64-bit patterns.
23183         * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
23184
23185 2012-03-01  Alexandre Oliva  <aoliva@redhat.com>
23186
23187         PR debug/52001
23188         PR rtl-optimization/52417
23189         * cselib.c (cselib_any_perm_equivs): New variable.
23190         (cselib_reset_table): Check that it's not set when not
23191         preserving constants.
23192         (cselib_add_permanent_equiv): Set it.
23193         (cselib_have_permanent_equivalences): New.
23194         (cselib_init, cselib_finish): Reset it.
23195         * cselib.h (cselib_have_permanent_equivalences): Declare.
23196         * alias.c (get_addr): Restore earlier behavior when there
23197         aren't permanent equivalences.
23198
23199 2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>
23200
23201         * config/mn10300/mn10300-modes.def: Fix copyright notice.
23202         * config/v850/v850-modes.def: Fix copyright notice.
23203
23204 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
23205
23206         * doc/extend.texi (AVR Built-in Functions): Document
23207         __builtin_avr_flash_segment.
23208
23209         * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
23210         * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
23211         (*split.flash_segment): New insn-and-split.
23212         * config/avr/avr.c (avr_init_builtins): Add local variables:
23213         const_memx_void_node, const_memx_ptr_type_node,
23214         char_ftype_const_memx_ptr.
23215
23216 2012-03-01  Jakub Jelinek  <jakub@redhat.com>
23217
23218         PR tree-optimization/52445
23219         * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
23220         add ssa_name_ver, offset and size fields and change store field
23221         to bool.
23222         (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
23223         (add_or_mark_expr): Likewise.  Only consider previous stores
23224         with the same size and offset.
23225         (nt_init_block): Only look at gimple_assign_single_p stmts,
23226         doesn't look at rhs2.
23227
23228 2012-03-01  Richard Guenther  <rguenther@suse.de>
23229
23230         PR middle-end/52443
23231         * tree-cfg.c (verify_gimple_assign_unary): Allow any
23232         conversions from integral types to pointer types.
23233
23234 2012-03-01  Georg-Johann Lay  <avr@gjlay.de>
23235
23236         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
23237         defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
23238         unintentionally removed in r184616.
23239
23240 2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
23241
23242         * doc/invoke.texi: Document AMD bdver2 and remove mentioning
23243         3DNow from bdver1.
23244
23245 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
23246             Uros Bizjak  <ubizjak@gmail.com>
23247
23248         PR target/52437
23249         * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
23250         alternatives, add "e" constraint to the new last alternative
23251         and ! to last 3 alternatives.
23252
23253 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
23254
23255         * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
23256         DW_AT_artificial attributes at the end of the processing.
23257         (gen_array_type_die): Likewise.
23258         (gen_enumeration_type_die): Likewise.
23259         (gen_struct_or_union_type_die): Likewise.
23260         (add_gnat_descriptive_type_attribute): Do not suppress debug info for
23261         the parent type.
23262
23263 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
23264
23265         PR middle-end/52419
23266         * expr.c (expand_assignment): If doing misaligned store that doesn't
23267         cover all mode bits, perform a RMW cycle.
23268
23269         PR tree-optimization/52429
23270         * tree-parloops.c (separate_decls_in_region_debug): Return early
23271         if var is LABEL_DECL.
23272
23273 2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23274
23275         PR tree-optimization/52424
23276         * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
23277         calling dom_thread_across_edge.
23278
23279 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
23280
23281         * config/avr/avr.c: Move definition of TARGET macros to end of file.
23282
23283 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
23284
23285         * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
23286         * config/avr/avr.c (avr_output_bld): Remove unused function.
23287         (avr_out_sbxx_branch): Use "%T" to print bit position.
23288
23289 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
23290
23291         * config/avr/avr.md: Untabify.
23292
23293 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
23294
23295         * config/avr/avr.md (eqne): New code iterator.
23296         (*dec-and-branchsi): Use it in text peephole's condition.
23297         (*dec-and-branchhi): Ditto.
23298         (*dec-and-branchqi): Ditto.
23299
23300 2012-02-29  Georg-Johann Lay  <avr@gjlay.de>
23301
23302         PR target/49939
23303         * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
23304         the device does not have the skip-bug.
23305
23306 2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>
23307
23308         * doc/invoke.texi (-msoft-atomic): Add more detailed description.
23309         (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
23310         -mpretend-cmove): New.
23311
23312 2012-02-29  Jakub Jelinek  <jakub@redhat.com>
23313
23314         PR bootstrap/52397
23315         * df.h (struct df_d): Adjust comment that hard_regs_live_count
23316         doesn't count DEBUG_INSN refs.
23317         * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
23318         for DEBUG_INSN refs.
23319
23320 2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23321
23322         Partially revert:
23323
23324         2012-02-20  Richard Guenther  <rguenther@suse.de>
23325         PR tree-optimization/52298
23326         * tree-vect-stmts.c (vectorizable_load): Properly use
23327         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
23328
23329 2012-02-28  Aldy Hernandez  <aldyh@redhat.com>
23330
23331         PR middle-end/51752
23332         * gimple.h (gimple_in_transaction): New.
23333         (gimple_set_in_transaction): New.
23334         (struct gimple_statement_base): Add in_transaction field.
23335         * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
23336         transaction loads.
23337         (tree_ssa_lim_initialize): Compute transaction bits.
23338         * tree.h (compute_transaction_bits): Protoize.
23339         * trans-mem.c (tm_region_init): Use the heap to store BB
23340         auxilliary data.
23341         (compute_transaction_bits): New.
23342
23343 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23344
23345         * gcc.c (display_help): Document --help=common and sort entries
23346         alphabetically.
23347
23348 2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23349
23350         * doc/install.texi: Document check-$LANG specific shortcuts
23351
23352 2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
23353
23354         PR target/51534
23355         * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
23356         and vcgtu.
23357         * config/arm/arm_neon.h: Regenerate.
23358         * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
23359         (neon_vcgeu): New insn.
23360         (neon_vcgtu): Likewise.
23361         * config/arm/neon.ml (s_8_32, u_8_32): New lists.
23362         (ops): Unsigned comparison intrinsics call a different builtin.
23363
23364 2012-02-28  Richard Guenther  <rguenther@suse.de>
23365
23366         PR target/52407
23367         * config/i386/i386.c (ix86_expand_vector_set): Fix element
23368         ordering for the VEC_CONCAT for two element vectors for
23369         V2SFmode, V2SImode and V2DImode.
23370
23371 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
23372
23373         PR target/49448
23374         * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
23375         detecting big-endian triplets.
23376
23377 2012-02-28  Richard Earnshaw  <rearnsha@arm.com>
23378
23379         * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
23380         mode if there is no type information available.
23381
23382 2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
23383
23384         PR tree-optimization/53207
23385         * doc/invoke.texi: Document as experimental and relying on graphite.
23386
23387 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
23388
23389         * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
23390         of initializer to changes from r184614.
23391
23392 2012-02-28  Richard Guenther  <rguenther@suse.de>
23393
23394         PR tree-optimization/52395
23395         * tree-sra.c (build_ref_for_offset): Also look at the base
23396         TYPE_ALIGN when figuring out the alignment of the replacement.
23397
23398 2012-02-28  Richard Guenther  <rguenther@suse.de>
23399
23400         PR tree-optimization/52402
23401         * ipa-prop.c (ipa_modify_call_arguments): Properly use
23402         mis-aligned types when creating the accesses at the call site.
23403
23404 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
23405
23406         * config/avr/builtins.def: New file.
23407         * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
23408         * config/avr/avr.c (enum avr_builtin_id): Use it.
23409         (avr_init_builtins): Use it. And use avr_bdesc.
23410         (bdesc_1arg): Remove.
23411         (bdesc_2arg): Remove.
23412         (bdesc_3arg): Remove.
23413         (struct avr_builtin_description): Add field n_args.
23414         (avr_bdesc): New static variable using builtins.def.
23415         (avr_expand_builtin): Use it.
23416         Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
23417         (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
23418         Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
23419
23420 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
23421
23422         PR target/52148
23423         * config/avr/avr.md (movmem_<mode>): Replace match_operand that
23424         match only one single hard register with respective hard reg rtx.
23425         (movmemx_<mode>): Ditto.
23426         * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
23427         insn anatomy of movmem[x]_<mode>.
23428         (avr_out_movmem): Same for printing assembler and operand usage.
23429
23430 2012-02-28  Georg-Johann Lay  <avr@gjlay.de>
23431
23432         PR target/49868
23433         PR target/52261
23434         * doc/extend.texi (AVR Named Address Spaces): No more try to fix
23435         address spaces located outside of device flash.
23436
23437         * config/avr/avr.h (base_arch_s): Remove field n_segments.
23438         (mcu_type_s): Add field n_flash.
23439         * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
23440         Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
23441         (AVR_MCU): Add N_FLASH argument.
23442         * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
23443         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
23444         macro __FLASH<n> if that address space makes sense for the device.
23445         * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
23446         outside of target flash.
23447         (avr_asm_named_section): Ditto.
23448         (avr_asm_select_section): Ditto.
23449         (avr_addr_space_convert): Ditto.
23450         (avr_emit_movmemhi): Ditto.
23451         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
23452         address space is outside of device flash.
23453         (avr_insert_attributes): Ditto.
23454         (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
23455         avr_current_arch->n_segments.
23456
23457 2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>
23458
23459         PR target/52352
23460         * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
23461         (*movabs<mode>_2): Likewise.
23462
23463 2012-02-27  Jakub Jelinek  <jakub@redhat.com>
23464
23465         PR target/52375
23466         * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
23467         s_register_operand in the test instead of REG_P.  Don't call
23468         gen_reg_rtx if it won't be used.
23469
23470         PR tree-optimization/52376
23471         * ipa-split.c (split_function): Ignore CLOBBER stmts.
23472
23473 2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>
23474
23475         * ifcvt.c (noce_get_condition): Check condition variable is not
23476         small_register_classes_for_mode_p before accepting.
23477
23478 2012-02-27  Uros Bizjak  <ubizjak@gmail.com>
23479
23480         * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
23481
23482 2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
23483
23484         Revert:
23485         2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
23486         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
23487         tuning parameters.
23488         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
23489
23490 2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>
23491
23492         * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
23493
23494 2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
23495
23496         * config/sh/predicates.md: Remove blank lines.
23497         * config/sh/sh.c: Fix typos in comments.
23498         * config/sh/constraints.md: Likewise.
23499         * config/sh/sh.md: Remove blank lines.
23500         Fix typos in comments.  Use ;; as comment characters.
23501
23502 2012-02-26  Walter Lee  <walt@tilera.com>
23503
23504         * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
23505         (replace_mov_pcrel_step2): Ditto.
23506
23507 2012-02-25  Alexandre Oliva  <aoliva@redhat.com>
23508
23509         PR debug/52001
23510         * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
23511         (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
23512         and locs that reference values newer than the non-canonical value
23513         at hand.  Return the canonical value as a worst case.
23514         (memrefs_conflict_p): Walk canonical value's locs.
23515
23516         PR debug/52001
23517         * cselib.c (preserve_only_constants): Rename to...
23518         (preserve_constants_and_equivs): ... this.  Split out...
23519         (invariant_or_equiv_p): ... this.  Preserve plus expressions
23520         of other preserved expressions too.
23521         (cselib_reset_table): Adjust.
23522         * var-tracking.c (reverse_op): Use canonical value to build
23523         reverse operation.
23524
23525 2012-02-23  Kai Tietz  <ktietz@redhat.com>
23526
23527         * config/i386/i386.c (ix86_delegitimize_address): Handle
23528         UNSPEC_PCREL plus displacement.
23529
23530 2012-02-24  Georg-Johann Lay  <avr@gjlay.de>
23531
23532         PR target/52261
23533         * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
23534         to test for unusedness in st X addressing.
23535
23536 2012-02-24  Richard Guenther  <rguenther@suse.de>
23537
23538         PR middle-end/52361
23539         * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
23540         (is_gimple_reg_type): Move inline ...
23541         * gimple.h (is_gimple_reg_type): ... here.
23542
23543 2012-02-24  Richard Guenther  <rguenther@suse.de>
23544
23545         PR middle-end/52361
23546         * passes.c (execute_function_todo): When verifying SSA form
23547         verify gimple form first.
23548         * tree-ssa.c (verify_ssa): Do not verify gimple form here.
23549
23550 2012-02-24  Richard Guenther  <rguenther@suse.de>
23551
23552         PR middle-end/52355
23553         * fold-const.c (fold_addr_of_array_ref_difference): New function.
23554         (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
23555
23556 2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23557
23558         * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
23559
23560 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23561
23562         * tree-phinodes.c (make_phi_node): Mark static.
23563         * tree-flow.h (make_phi_node): Remove extern decl.
23564         * doc/gimple.texi (make_phi_node): Remove documentation.
23565
23566 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23567
23568         * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
23569         * tree-ssa-sccvn.c (print_scc): Ditto.
23570
23571 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23572
23573         * doc/passes.texi (Full redundancy elimination): Fix typo.
23574
23575 2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23576
23577         * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
23578
23579 2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>
23580
23581         PR bootstrap/52287
23582         * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
23583
23584 2012-02-23  Uros Bizjak  <ubizjak@gmail.com>
23585
23586         PR c/52290
23587         * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
23588
23589 2012-02-23  Georg-Johann Lay  <avr@gjlay.de>
23590
23591         * config/avr/avr.md (code_stdname): Add ior, xor.
23592         (xior): New code iterator.
23593         (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
23594         (*<code_stdname><mode>qi.byte1-3): Ditto.
23595
23596 2012-02-23  Jakub Jelinek  <jakub@redhat.com>
23597
23598         PR tree-optimization/52019
23599         * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
23600         CLOBBER stmts.
23601
23602 2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23603
23604         * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
23605         HAVE_INITFINI_ARRAY to work around namespace pollution in
23606         certain versions of newlib system headers.
23607         * config.in: Regenerate.
23608         * configure: Regenerate.
23609         * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
23610         instead of HAVE_INITFINI_ARRAY.
23611
23612 2012-02-22  Uros Bizjak  <ubizjak@gmail.com>
23613
23614         PR target/52330
23615         * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
23616         is not offsettable memory reference.
23617
23618 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
23619
23620         PR target/18145
23621         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
23622         setting avr_need_clear_bss_p for __gnu_lto* symbols.
23623
23624 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
23625
23626         * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
23627         * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
23628
23629 2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23630
23631         * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
23632         library on Solaris 8 even without TLS support.
23633         * configure: Regenerate.
23634
23635 2012-02-22  Richard Guenther  <rguenther@suse.de>
23636
23637         PR middle-end/52329
23638         * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
23639         for GIMPLE_DEBUG stmts.
23640
23641 2012-02-22  Martin Jambor  <mjambor@suse.cz>
23642
23643         PR middle-end/51782
23644         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
23645         according to the base object.
23646
23647 2012-02-22  Georg-Johann Lay  <avr@gjlay.de>
23648
23649         PR rtl-optimization/50063
23650         * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
23651         and 2 (8-bit SP) in operand 2.
23652         * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
23653         setup to use movhi_sp_r instead of vanilla move to write SP.
23654         Adjust REG_CFA notes to superseed unspec.
23655         (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
23656         of vanilla move.
23657         As function body might contain CLI or SEI: Use irq_state 0 (IRQ
23658         known to be off) only with TARGET_NO_INTERRUPTS. Never use
23659         irq_state 1 (IRQ known to be on) here.
23660
23661 2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>
23662
23663         * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
23664         WORDS_BIG_ENDIAN.
23665         * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
23666         assign_hard_reg): Likewise.
23667
23668 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
23669
23670         * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
23671
23672 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
23673
23674         * config/avr/avr.md
23675         (*dec-and-branchhi!=-1.d.clobber): New text peephole.
23676         (*dec-and-branchhi!=-1.l.clobber): New text peephole.
23677
23678 2012-02-21  Georg-Johann Lay  <avr@gjlay.de>
23679
23680         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
23681         prototype from here to...
23682         * config/avr/avr.h: ...here.
23683
23684 2012-02-21  Richard Earnshaw  <rearnsha@arm.com>
23685
23686         PR target/52294
23687         * thumb2.md (thumb2_shiftsi3_short): Split register and
23688         immediate shifts.  For register shifts tie operands 0 and 1.
23689         (peephole2 for above): Check that register-controlled shifts
23690         have suitably tied operands.
23691
23692 2012-02-21  Quentin Neill  <quentin.neill@amd.com>
23693
23694         PR target/52137
23695         * config/i386/bdver1.md (bdver1_call, bdver1_push,
23696         bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
23697         bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
23698         bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
23699         bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
23700         bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
23701         bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
23702         bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
23703         bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
23704         bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
23705         bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
23706         bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
23707         bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
23708         bdver1_ssevector_avx256_unaligned_load,
23709         bdver1_ssevector_sse128_unaligned_load,
23710         bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
23711         bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
23712         bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
23713         bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
23714         bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
23715         bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
23716         bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
23717         bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
23718         bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
23719         bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
23720         bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
23721         bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
23722         bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
23723         bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
23724         bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
23725         bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
23726         bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
23727         bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
23728         bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
23729         bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
23730         bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
23731         bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
23732         bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
23733         bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
23734         bdver1_ssediv_double_load, bdver1_ssediv_double,
23735         bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
23736         Add "bdver2" attribute.
23737
23738 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23739
23740         * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
23741         default if possible and not specified otherwise.
23742
23743 2012-02-21  Richard Guenther  <rguenther@suse.de>
23744
23745         PR middle-end/52314
23746         * gimplify.c (create_tmp_from_val): Use the main variant type
23747         for the type of the temporary we create.
23748
23749 2012-02-21  Richard Guenther  <rguenther@suse.de>
23750
23751         PR tree-optimization/52324
23752         * gimplify.c (gimplify_expr): When re-gimplifying expressions
23753         do not gimplify a MEM_REF address operand if it is already
23754         in suitable form.
23755
23756 2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23757
23758         * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
23759         TARGET_HARD_FLOAT with TARGET_HARD_DFP.
23760
23761 2012-02-21  Richard Guenther  <rguenther@suse.de>
23762
23763         * tree-vect-stmts.c (vectorizable_load): Use pre-computed
23764         nested_in_vect_loop.
23765
23766 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
23767
23768         PR tree-optimization/52318
23769         * gimple-fold.c (gimplify_and_update_call_from_tree): Add
23770         vdef also to non-pure/const call stmts in the sequence.
23771
23772 2012-02-21  Tristan Gingold  <gingold@adacore.com>
23773
23774         * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
23775
23776 2012-02-20  David S. Miller  <davem@davemloft.net>
23777
23778         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
23779         don't use the "rd %pc" instruction on v9 for PIC register loads.
23780
23781 2012-02-20  Aldy Hernandez  <aldyh@redhat.com>
23782
23783         PR middle-end/52141
23784         * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
23785         in a transaction safe function.
23786
23787 2012-02-20  Kai Tietz  <ktietz@redhat.com>
23788
23789         PR target/52238
23790         * stor-layout.c (place_field): Handle desired_align for
23791         ms-bitfields, too.
23792
23793 2012-02-20  Richard Guenther  <rguenther@suse.de>
23794
23795         PR tree-optimization/52298
23796         * tree-vect-stmts.c (vectorizable_store): Properly use
23797         STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
23798         outer loops.
23799         (vectorizable_load): Likewise.
23800         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
23801         Access DR_STEP after ensuring it is not NULL.
23802
23803 2012-02-20  Jakub Jelinek  <jakub@redhat.com>
23804
23805         PR tree-optimization/52286
23806         * fold-const.c (fold_binary_loc): For (X & C1) | C2
23807         optimization use double_int_to_tree instead of build_int_cst_wide,
23808         rewrite to use double_int vars.
23809
23810 2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23811
23812         PR target/50166
23813         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
23814         Define _start.
23815         Remove -e 0 from $gcc_cv_ld invocation.
23816         Only use __GLIBC_PREREQ if defined.
23817         Enable on Solaris since Solaris 8 patch.
23818         (gcc_SUN_LD_VERSION): New macro.
23819         * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
23820         gcc_SUN_LD_VERSION for version number format.
23821         * configure: Regenerate.
23822         * varasm.c (get_elf_initfini_array_priority_section): Set
23823         SECTION_NOTYPE for non-default priority.
23824         Use get_section instead of get_unnamed_section to emit
23825         .init_array/.fini_array with default priority.
23826
23827 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
23828
23829         * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
23830         (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
23831         (mips_start_unique_function, mips_output_mips16_rdhwr)
23832         (mips_code_end): New functions.
23833         (TARGET_ASM_CODE_END): Define.
23834
23835 2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>
23836
23837         * config/mips/mips.c (mips16_build_call_stub): Add CFI information
23838         to stubs with non-sibling calls.
23839
23840 2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>
23841
23842         * doc/invoke.texi (-fira-* options): Copy-edit.
23843         (ira-* parameters): Copy-edit.
23844
23845 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
23846
23847         * doc/invoke.texi: Minor copy-edits to bring into conformance with
23848         GCC coding conventions.
23849
23850 2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>
23851
23852         * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
23853         when used as adjectives.
23854
23855 2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>
23856
23857         * doc/invoke.texi: Clean up "that"/"which" confusion.
23858
23859 2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>
23860
23861         * system.h: Poison SMALL_REGISTER_CLASSES
23862         * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
23863         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
23864
23865 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
23866
23867         PR tree-optimization/52285
23868         * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
23869         when deciding if a call is a tail call or tail recursion.
23870
23871 2012-02-16  Kai Tietz  <ktietz@redhat.com>
23872
23873         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
23874         interger-constant displacement for UNSPEC_PCREL.
23875
23876 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
23877
23878         PR rtl-optimization/52208
23879         * ira-costs.c (scan_one_insn): Don't decrease mem_cost
23880         for MEMs with REG_EQUIV, if the MEM isn't general_operand.
23881
23882         PR tree-optimization/52255
23883         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
23884         loop->header has virtual PHI, but exit_e->dest doesn't, add
23885         virtual PHI to exit_e->dest and adjust all uses after the loop.
23886
23887         PR debug/52260
23888         * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
23889         children with clone_tree_hash, not after it.
23890
23891 2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>
23892
23893         * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
23894         extended identifiers.
23895
23896 2012-02-16  Jakub Jelinek  <jakub@redhat.com>
23897
23898         PR middle-end/51929
23899         * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
23900         a same_body_alias, also test whether e->callee isn't a former
23901         or current clone of the decl this is a same body alias of.
23902
23903         PR translation/52264
23904         * cgraphunit.c (verify_cgraph_node): Fix a typo.
23905
23906 2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>
23907
23908         * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
23909
23910 2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
23911
23912         PR target/52199
23913         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
23914         force_reg instead of copy_to_reg for better optimization.  Force
23915         non-register or memory operands into a register.
23916
23917 2012-02-15  Andrew MacLeod  <amacleod@redhat.com>
23918
23919         * extend.texi: Reserve upper bits of memory model for future use.
23920
23921 2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
23922             Anatoly Sokolov <aesok@post.ru>
23923             Eric Weddington <eric.weddington@atmel.com>
23924
23925         PR target/52261
23926         * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
23927         avrxmega4, avrxmega5, avrxmega6, avrxmega7.
23928         Rewrite initializers for .macro.
23929         * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
23930         avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
23931         atxmega32d4, atxmega32x1.
23932         avrxmega4: atxmega64a3, atxmega64d3.
23933         avrxmega5: atxmega64a1, atxmega64a1u.
23934         avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
23935         atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
23936         avrxmega7: atxmega128a1, atxmega128a1u.
23937         * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
23938         ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
23939         (struct base_arch_s): Rename reserved to xmega_p.
23940         Rename reserved2 to have_rampd.
23941         (AVR_XMEGA): New define.
23942         (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
23943         (AVR_HAVE_RAMPZ): Change definition to fit xmega.
23944         * config/avr/predicates.md (io_address_operand): Take into
23945         account SFR offset.
23946         (low_io_address_operand): Ditto.
23947         (high_io_address_operand): Ditto.
23948         * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
23949         (enabled, movhi_sp_r): Use them.
23950         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
23951         cpp_define_formatted to built-in define __AVR_ARCH__.
23952         (__AVR_XMEGA__): New built-in define.
23953         (__AVR_HAVE_RAMPD__): New built-in define.
23954         (__AVR_HAVE_RAMPX__): New built-in define.
23955         (__AVR_HAVE_RAMPY__): New built-in define.
23956         (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
23957
23958         * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
23959         (avr_option_override): Initialize them.
23960         (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
23961         (avr_init_expanders): Initialize them. No more block several calls.
23962         (emit_push_sfr): New static function.
23963         (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
23964         Handle AVR_XMEGA.
23965         (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
23966         (avr_print_operand): Print addreeses as symbols for
23967         RAMPX, RAMPY, RAMPD, CCP.
23968         (output_movhi): Handle AVR_XMEGA when writing to SP.
23969         (avr_out_movhi_mr_r_xmega): New static function.
23970         (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
23971         (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
23972         __RAMPD__,  __CCP__ as needed.
23973
23974         * config/avr/multilib.h: Regenerate.
23975         * config/avr/t-multilib: Regenerate.
23976         * config/avr/avr-tables.opt: Regenerate.
23977
23978 2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>
23979
23980         PR tree-optimization/50561
23981         * graphite-flattening.c (lst_project_loop): Do not
23982         remove old scattering dimensions after flattening.
23983         (lst_do_flatten): Likewise.
23984
23985 2012-02-15  Georg-Johann Lay  <avr@gjlay.de>
23986
23987         * doc/extend.texi (AVR Built-in Functions): Remove doc for
23988         __builtin_avr_map8, __builtin_avr_map16.
23989         Document __builtin_avr_insert_bits.
23990
23991         * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
23992         (insert_bits): New insn.
23993         (adjust_len.map_bits): Rename to insert_bits.
23994         (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
23995         * avr-protos.h (avr_out_map_bits): Remove.
23996         (avr_out_insert_bits, avr_has_nibble_0xf): New.
23997         * config/avr/constraints.md (Cxf,C0f): New.
23998         * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
23999         defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
24000         New built-in define __BUILTIN_AVR_INSERT_BITS.
24001         * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
24002         (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
24003         (avr_move_bits): Rewrite.
24004         (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
24005         functions.
24006         (avr_map_op_t): New typedef.
24007         (avr_map_op): New static variable.
24008         (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
24009         (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
24010         (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
24011         (bdesc_3arg, avr_expand_triop_builtin): New.
24012         (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
24013         (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
24014         (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
24015         (avr_map_equal_p, avr_map_sig_p): Remove.
24016         (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
24017         (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
24018         (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
24019         (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
24020         (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
24021         (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
24022
24023 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
24024
24025         * config/c6x/c6x.md (reserve_cycles): New attribute.
24026         * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
24027         don't reserve functional units after the branch occurs.
24028
24029 2012-02-14  Aldy Hernandez  <aldyh@redhat.com>
24030
24031         PR middle-end/52142
24032         * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
24033         functions into non-tm_pure functions.
24034
24035 2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>
24036
24037         PR lto/52178
24038         * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
24039         (iterative_hash_canonical_type): Likewise.
24040         * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
24041         the dead edges.
24042
24043 2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>
24044
24045         * haifa-sched.c (prune_ready_list): Ensure that if there is a
24046         sched-group insn, it either remains alone or the entire list is pruned.
24047
24048 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
24049
24050         * doc/install.texi (Prerequisites): Fix grammar.
24051         (Configuration): Likewise.
24052
24053 2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
24054
24055         * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
24056         MPC as part of GCC before describing configuring with --with-gmp etc.
24057         (Installing GCC: Configuration): --with-gmp etc. aren't needed if
24058         sources are present.
24059
24060 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
24061
24062         PR debug/51950
24063         * dwarf2out.c (clone_tree_hash): New function.
24064         (copy_decls_walk): Use it instead of clone_tree.
24065
24066 2012-02-14  Richard Guenther  <rguenther@suse.de>
24067
24068         PR tree-optimization/52244
24069         PR tree-optimization/51528
24070         * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
24071         replacements for integral types.
24072
24073 2012-02-14  Walter Lee  <walt@tilera.com>
24074
24075         * config.gcc: Handle tilegx and tilepro.
24076         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
24077         tilegx and tilepro.
24078         Add HAVE_AS_TLS check for tilegx and tilepro.
24079         * configure: Regenerate.
24080         * doc/contrib.texi: Add Mat Hostetter and self.
24081         * doc/extend.texi (TILE-Gx Built-in Functions): New node.
24082         Document instruction intrinsics and network accessing intrinsics.
24083         (TILEPro Built-in Functions): New node.  Document instruction
24084         intrinsics and network accessing intrinsics.
24085         * doc/install.texi (Specific, tilegx-*-linux*): Document it.
24086         (Specific, tilepro-*-linux*): Likewise.
24087         * doc/invoke.texi (TILE-Gx Options): New section.
24088         (TILEPro Options): New section.
24089         * doc/md.texi (TILE-Gx): New section.
24090         (TILEPro): New section.
24091         * common/config/tilegx/tilegx-common.c: New file.
24092         * common/config/tilepro/tilepro-common.c: New file.
24093         * config/tilegx/constraints.md: New file.
24094         * config/tilegx/linux.h: New file.
24095         * config/tilegx/mul-tables.c: New file.
24096         * config/tilegx/predicates.md: New file.
24097         * config/tilegx/sync.md: New file.
24098         * config/tilegx/t-tilegx: New file.
24099         * config/tilegx/tilegx-builtins.h: New file.
24100         * config/tilegx/tilegx-c.c: New file.
24101         * config/tilegx/tilegx-generic.md: New file.
24102         * config/tilegx/tilegx-modes.def: New file.
24103         * config/tilegx/tilegx-multiply.h: New file.
24104         * config/tilegx/tilegx-protos.h: New file.
24105         * config/tilegx/tilegx.c: New file.
24106         * config/tilegx/tilegx.h: New file.
24107         * config/tilegx/tilegx.md: New file.
24108         * config/tilegx/tilegx.opt: New file.
24109         * config/tilepro/constraints.md: New file.
24110         * config/tilepro/gen-mul-tables.cc: New file.
24111         * config/tilepro/linux.h: New file.
24112         * config/tilepro/mul-tables.c: New file.
24113         * config/tilepro/predicates.md: New file.
24114         * config/tilepro/t-tilepro: New file.
24115         * config/tilepro/tilepro-builtins.h: New file.
24116         * config/tilepro/tilepro-c.c: New file.
24117         * config/tilepro/tilepro-generic.md: New file.
24118         * config/tilepro/tilepro-modes.def: New file.
24119         * config/tilepro/tilepro-multiply.h: New file.
24120         * config/tilepro/tilepro-protos.h: New file.
24121         * config/tilepro/tilepro.c: New file.
24122         * config/tilepro/tilepro.h: New file.
24123         * config/tilepro/tilepro.md: New file.
24124         * config/tilepro/tilepro.opt: New file.
24125
24126 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
24127
24128         PR tree-optimization/52210
24129         * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
24130         vect_model_simple_cost with two entry vect_def_type array instead
24131         of an address of dt.
24132
24133 2012-02-14  Richard Guenther  <rguenther@suse.de>
24134
24135         PR lto/52178
24136         * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
24137         Do not stream DECL_QUALIFIER.
24138         * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
24139         * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
24140         (find_decls_types_r): Do not walk DECL_QUALIFIER.
24141
24142 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
24143
24144         PR c/52181
24145         * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
24146         newdecl.
24147
24148 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
24149
24150         PR bootstrap/52172
24151         * cselib.h (cselib_subst_to_values_from_insn): New prototype.
24152         * cselib.c (cselib_subst_to_values_from_insn): New function.
24153         * sched-deps.c (add_insn_mem_dependence,
24154         sched_analyze_1, sched_analyze_2): Use it.
24155
24156 2012-02-13  Jan Hubicka  <jh@suse.cz>
24157
24158         PR middle-end/52214
24159         * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
24160
24161 2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>
24162
24163         * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
24164         (GTM_SELF_SPECS): Define if not already defined.
24165         (driver_self_specs): Add GTM_SELF_SPECS.
24166         * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
24167         (GTM_SELF_SPECS): Define.
24168         * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
24169         * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
24170
24171 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
24172
24173         * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
24174         away if seen.
24175
24176         * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
24177
24178         PR middle-end/52230
24179         * omp-low.c (expand_omp_for): If a static schedule without chunk size
24180         has NULL region->cont, force fd.chunk_size to be integer_zero_node.
24181
24182 2012-02-13  Andrew MacLeod  <amacleod@redhat.com>
24183
24184         PR c/52190
24185         * doc/extend.texi : Fix another __atomic_compare_exchange typo.
24186
24187 2012-02-13  Richard Guenther  <rguenther@suse.de>
24188
24189         PR translation/52211
24190         * passes.c (enable_disable_pass): Fix typo.
24191
24192 2012-02-13  Jakub Jelinek  <jakub@redhat.com>
24193
24194         PR middle-end/52209
24195         * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
24196         XOR for reduce_bit_field if type is unsigned.
24197
24198 2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>
24199
24200         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
24201         disallow changes from SFmode to mode with different size in FP regs.
24202
24203 2012-02-12  Robert Millan  <rmh@gnu.org>
24204             Gerald Pfeifer <gerald@pfeifer.com>
24205
24206         * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
24207         Tweak comment.
24208
24209 2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>
24210
24211         PR rtl-optimization/52175
24212         * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
24213         to frame-related instructions.
24214
24215 2012-02-10  Jason Merrill  <jason@redhat.com>
24216
24217         PR c++/51910
24218         * tlink.c (demangled_hash_entry): Change mangled to a VEC.
24219         (demangle_new_symbols): Fill it.
24220         (scan_linker_output): Walk it.
24221         (start_tweaking): Split out from scan_linker_output.
24222         (maybe_tweak): Update sym->chosen.
24223         * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
24224
24225 2012-02-11  Jakub Jelinek  <jakub@redhat.com>
24226
24227         PR debug/52132
24228         * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
24229
24230 2012-02-11  Uros Bizjak  <ubizjak@gmail.com>
24231
24232         * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
24233         having the same mode as previous compare.
24234
24235 2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>
24236
24237         * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
24238         * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
24239         (nonlocal_goto_internal): Likewise.
24240         (nonlocal_goto): Emit a use and an indirect jump directly.
24241
24242 2012-02-10  Andrew MacLeod  <amacleod@redhat.com>
24243
24244         PR c/52190
24245         * doc/extend.texi : Update comments for __atomic_compare_exchange and
24246         __atomic_{is,always}_lock_free.
24247
24248 2012-02-10  Uros Bizjak  <ubizjak@gmail.com>
24249
24250         PR target/52146
24251         * config/i386/i386.c (ix86_legitimate_address_p): Disallow
24252         negative constant address for TARGET_X32.
24253
24254 2012-02-10  Richard Henderson  <rth@redhat.com>
24255
24256         * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
24257         * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
24258         for GIMPLE_TRANSACTION.  Tidy if's into a switch.
24259
24260 2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24261             Ira Rosen  <irar@il.ibm.com>
24262
24263         PR tree-optimization/50031
24264         * targhooks.c (default_builtin_vectorization_cost): Handle
24265         vec_promote_demote.
24266         * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
24267         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
24268         all types of reduction and pattern statements.
24269         (vect_estimate_min_profitable_iters): Likewise.
24270         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
24271         (vect_get_load_cost): Use vec_perm for permutations; add dump logic
24272         for explicit realigns.
24273         (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
24274         * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
24275         vec_promote_demote.
24276         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
24277         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
24278         vec_perm for VSX and handle vec_promote_demote.
24279
24280 2012-02-10  Jakub Jelinek  <jakub@redhat.com>
24281
24282         PR middle-end/52177
24283         * builtins.c (fold_builtin_atomic_always_lock_free,
24284         expand_builtin_atomic_always_lock_free,
24285         fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
24286         Return and/or test boolean_true_node/boolean_false_node instead of
24287         integer_one_node/integer_zero_node.
24288
24289 2012-02-10  Jan Hubicka  <jh@suse.cz>
24290
24291         PR middle-end/48600
24292         * predict.c (predict_paths_for_bb): Prevent looping.
24293         (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
24294
24295 2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>
24296
24297         * config/arm/arm.c (output_move_double): In one case properly
24298         count number of instructions that will be emitted.
24299
24300 2012-02-10  Richard Guenther  <rguenther@suse.de>
24301
24302         PR translation/52193
24303         * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
24304
24305 2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>
24306
24307         PR middle-end/52140
24308         * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
24309
24310 2012-02-09  Jakub Jelinek  <jakub@redhat.com>
24311
24312         PR debug/52165
24313         * var-tracking.c (emit_note_insn_var_location): If
24314         EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
24315         emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
24316         non-NOTE_DURING_CALL_P insn.
24317
24318 2012-02-09  Bin Cheng  <bin.cheng@arm.com>
24319
24320         PR middle-end/51867
24321         * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
24322
24323 2012-02-08  Magnus Granberg  <zorry@gentoo.org>
24324
24325         PR driver/48524
24326         * gcc.c (switch_matches) Support switches with separated form,
24327         -D and -U.
24328
24329 2012-02-08  Georg-Johann Lay  <avr@gjlay.de>
24330
24331         * config/avr/avr.md (SREG_ADDR): Remove constant definition.
24332         (SP_ADDR): Ditto.
24333         (RAMPZ_ADDR): Ditto.
24334         * config/avr/avr.c (avr_addr_t): New typedef.
24335         (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
24336         (avr_init_expanders): Initialize it.
24337         (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
24338         SREG_ADDR.
24339         (expand_epilogue): Ditto.
24340         (avr_print_operand): Ditto.
24341         (avr_file_start): Ditto.
24342         (avr_emit_movmemhi): Ditto.
24343
24344 2012-02-08  Richard Guenther  <rguenther@suse.de>
24345
24346         PR tree-optimization/46886
24347         * tree-flow.h (do_while_loop_p): Declare.
24348         * tree-ssa-loop-ch.c (do_while_loop_p): Export.
24349         * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
24350
24351 2012-02-08  Andrew MacLeod  <amacleod@redhat.com>
24352
24353         * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
24354         always succeed for integers larger than a native word.
24355
24356 2012-02-08  Richard Guenther  <rguenther@suse.de>
24357
24358         PR rtl-optimization/52170
24359         * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
24360         properly handle integer vector modes.
24361
24362 2012-02-08  Jakub Jelinek  <jakub@redhat.com>
24363
24364         PR gcov-profile/52150
24365         * coverage.c: Include target.h.
24366         (build_var): Call targetm.strip_name_encoding on the assembler name.
24367         Change one _ into . or $ if the target allows it.
24368         * Makefile.in (coverage.o): Depend on $(TARGET_H).
24369
24370         PR rtl-optimization/52139
24371         * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
24372         is a BARRIER after emit_insn_after_noloc, move BB_END
24373         to the last non-BARRIER insn before it.
24374
24375 2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>
24376
24377         PR middle-end/24306
24378         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
24379         (mips_gimplify_va_arg_expr): Call it instead of
24380         std_gimplify_va_arg_expr.
24381
24382 2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
24383
24384         * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
24385         message for -mno-pointers-to-nested-function.
24386
24387 2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
24388
24389         PR middle-end/51994
24390         * expr.c (get_inner_reference): If there is an offset, add a negative
24391         bit position to it (if any).
24392
24393 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
24394
24395         PR rtl-optimization/52060
24396         * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
24397         copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
24398         before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
24399         and/or i0src_copy2 when needed.
24400
24401 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
24402
24403         * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
24404         or LTOPLUGINSONAME if have_c.
24405
24406         * config/freebsd-spec.h: Add comment about what macros can be defined
24407         in this header.
24408         (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
24409         * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
24410         here instead.
24411
24412 2012-02-07  Richard Guenther  <rguenther@suse.de>
24413
24414         * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
24415         newline in -alias dumps.
24416
24417 2012-02-07  Kai Tietz  <ktietz@redhat.com>
24418             Dave Korn  <dave.korn.cygwin@gmail.com>
24419
24420         PR target/40068
24421         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
24422         Take care that typinfo gets dllexport-attribute.
24423
24424 2012-02-07  Jakub Jelinek  <jakub@redhat.com>
24425
24426         PR middle-end/52074
24427         * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
24428         if modifier < EXPAND_SUM call force_operand on the result.
24429
24430 2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>
24431
24432         * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
24433         adding __forwarder_dst__ prefix if a forwarder_section attribute is
24434         present.
24435         (epiphany_function_type): Replace types for specific interrupts with
24436         EPIPHANY_FUNCTION_INTERRUPT.
24437         (EPIPHANY_INTERRUPT_P): Update.
24438         * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
24439         New static function.
24440         (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
24441         <disinterrupt>: Affects type identity.
24442         (epiphany_handle_interrupt_attribute): Handle variable number of
24443         arguments.
24444         (epiphany_compute_function_type): Update for new
24445         epiphany_function_type definition.
24446         (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
24447         handlers with a longcall forwarder.
24448         (epiphany_start_function): Handle multiple interrupt arguments and/or
24449         forwarder_section attribute.
24450
24451         * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
24452         libgloss.
24453
24454 2012-02-07  Alan Modra  <amodra@gmail.com>
24455
24456         PR target/52107
24457         * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
24458         subregs of TFmode.
24459
24460 2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24461
24462         PR tree-optimization/50969
24463         * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
24464         use vec_perm rather than vector_stmt.
24465         (vect_model_load_cost): Likewise.
24466         * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
24467         vec_perm to be the same as other vector statements.
24468         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
24469         cost of vec_perm for TARGET_VSX.
24470
24471 2012-02-06  Richard Guenther  <rguenther@suse.de>
24472
24473         PR tree-optimization/52115
24474         * tree-sra.c (access_has_replacements_p): New function.
24475         (sra_modify_assign): Use it to decide whether a use is uninitialized.
24476
24477 2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>
24478
24479         PR middle-end/52047
24480         * trans-mem.c (expand_call_tm): Add an assertion.
24481         * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
24482         functions.
24483
24484 2012-02-06  Richard Guenther  <rguenther@suse.de>
24485
24486         PR tree-optimization/50955
24487         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
24488         raise cost of expressions that replace an address with an
24489         expression based on a different pointer.
24490
24491 2012-02-06  Jakub Jelinek  <jakub@redhat.com>
24492
24493         PR target/52129
24494         * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
24495         CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
24496
24497 2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
24498
24499         PR c++/48680
24500         * doc/invoke.texi (C++ Dialect Options): Use @option markup for
24501         -Weffc++ and specify guidelines come from second edition.
24502
24503 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
24504
24505         * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
24506         (sibcall_value_multiple_internal, call_split, call_internal_direct)
24507         (call_direct_split, call_value_split, call_value_internal_direct)
24508         (call_value_direct_split, call_value_multiple_split): Use jal and
24509         jal_macro attributes.
24510
24511 2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>
24512
24513         * reload1.c (reload_regs_reach_end_p): Replace with...
24514         (reload_reg_rtx_reaches_end_p): ...this function.
24515         (new_spill_reg_store): Update commentary.
24516         (emit_input_reload_insns): Don't clear new_spill_reg_store here.
24517         (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
24518         before setting new_spill_reg_store.
24519         (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
24520         Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
24521         Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
24522         for non-spill reload registers.
24523
24524 2012-02-05  Ira Rosen  <irar@il.ibm.com>
24525
24526         PR tree-optimization/52091
24527         * tree-vectorizer.h (vect_is_simple_use): Add an argument.
24528         (vect_is_simple_use_1): Likewise.
24529         * tree-vect-loop.c (vectorizable_reduction): Update calls
24530         to vect_is_simple_use_1 and vect_is_simple_use.
24531         (vectorizable_live_operation): Likewise.
24532         * tree-vect-patterns.c (widened_name_p,
24533         vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
24534         * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
24535         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
24536         vectorizable_shift,vectorizable_operation, vectorizable_store,
24537         vectorizable_load): Likewise.
24538         (vect_is_simple_cond): Add an argument, pass it to
24539         vect_is_simple_use_1.
24540         (vectorizable_condition): Update calls to vect_is_simple_cond,
24541         vect_is_simple_use.
24542         (vect_is_simple_use): Add an argument, the statement in which
24543         OPERAND is used.  Check that if OPERAND's def stmt is a double
24544         reduction phi node, the use is a phi node too.
24545         (vect_is_simple_use_1): Add an argument, pass it to
24546         vect_is_simple_use.
24547         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
24548         to vect_is_simple_use.
24549
24550 2012-02-04  Jakub Jelinek  <jakub@redhat.com>
24551
24552         PR rtl-optimization/52095
24553         * modulo-sched.c (dump_insn_locator): New function.
24554         (loop_canon_p, sms_schedule): Use it.
24555
24556         PR rtl-optimization/52113
24557         * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
24558         even for decomposable shift/zext insns.
24559
24560 2012-02-03  Jakub Jelinek  <jakub@redhat.com>
24561             Zdenek Dvorak  <ook@ucw.cz>
24562
24563         PR rtl-optimization/52092
24564         * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
24565         on get_iv_value result.
24566
24567 2012-02-02  Andrew Pinski  <apinski@cavium.com>
24568
24569         PR middle-end/47982
24570         PR middle-end/43967
24571         * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
24572
24573 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
24574
24575         PR middle-end/48071
24576         * diagnostic.c (diagnostic_finish): Remove trailing newlines.
24577
24578 2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>
24579
24580         PR rtl-optimization/49800
24581         * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
24582         (sched_finish): Call regstat_free_n_sets_and_refs.
24583
24584 2012-02-02  Jia Liu  <proljc@gmail.com>
24585
24586         * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
24587         than operand 2.
24588
24589 2012-02-02  Jan Hubicka  <jh@suse.cz>
24590             Tom de Vries  <tom@codesourcery.com>
24591
24592         PR middle-end/51998
24593         * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
24594         * varpool.c (varpool_analyze_pending_decls): Likewise.
24595
24596 2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
24597             Jayant R Sonar <jayant.sonar@kpitcummins.com>
24598
24599         * config.gcc: Add cr16-* support.
24600
24601         * doc/extend.texi: Document cr16 extensions.
24602         * doc/install.texi: Document cr16 install.
24603         * doc/invoke.texi: Document cr16 options.
24604         * doc/md.texi: Document cr16 constraints.
24605
24606         * common/config/cr16/cr16-common.c: New file.
24607         * config/cr16/cr16.c: New file.
24608         * config/cr16/cr16.h: New file.
24609         * config/cr16/cr16.md: New file.
24610         * config/cr16/cr16.opt: New file.
24611         * config/cr16/cr16-protos.h: New file.
24612         * config/cr16/predicates.md: New file.
24613         * config/cr16/constraints.md: New file.
24614         * config/cr16/t-cr16: New file.
24615
24616 2012-02-02  Jakub Jelinek  <jakub@redhat.com>
24617
24618         PR target/52086
24619         * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
24620         that operands[2] is either immediate, or q_regs_operand.
24621
24622         PR tree-optimization/52073
24623         * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
24624         a pattern stmt for pattern uses, ignore uses outside of the loop.
24625
24626 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
24627
24628         * config/avr/avr.c: Resolve all AS1 and AS2 macros.
24629         * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
24630         (OUT_AS1, OUT_AS2): Remove.
24631
24632 2012-02-01  Georg-Johann Lay  <avr@gjlay.de>
24633
24634         PR rtl-optimization/51374
24635         * combine.c (can_combine_p): Don't allow volatile_refs_p insns
24636         to cross other volatile_refs_p insns.
24637
24638 2012-02-01  Richard Guenther  <rguenther@suse.de>
24639
24640         * doc/invoke.texi (fno-inline): Clarify documentation.
24641         (finline-small-functions): Likewise.
24642         (finline-functions): Likewise.
24643         * common.opt (finline): Adjust comment and documentation.
24644         (finline-small-functions): Clarify documentation.
24645         (finline-functions): Likewise.
24646         (finline-functions-called-once): Likewise.
24647
24648 2012-02-01  Tristan Gingold  <gingold@adacore.com>
24649
24650         * c-typeck.c (composite_type): Keep mode for pointers.
24651
24652 2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>
24653
24654         * function.h (regno_reg_rtx): Adjust comment.
24655         * reginfo.c (init_reg_modes_target): Only use the previous mode
24656         if it fits within one register.  Remove MIPS comment.
24657
24658 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
24659
24660         PR bootstrap/52058
24661         * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
24662
24663 2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24664
24665         * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
24666         to srak instruction.
24667
24668 2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
24669
24670         * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
24671
24672 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
24673
24674         PR bootstrap/52041
24675         PR bootstrap/52039
24676         PR target/51974
24677         * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
24678
24679 2012-01-31  Richard Guenther  <rguenther@suse.de>
24680
24681         PR tree-optimization/51528
24682         * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
24683         assigns.
24684
24685 2012-01-31  Jakub Jelinek  <jakub@redhat.com>
24686
24687         PR bootstrap/52041
24688         PR bootstrap/52039
24689         PR target/51974
24690         * ree.c (add_removable_extension): Change def_map argument
24691         to unsigned *, store in def_map 1 + offset into *insn_list vector
24692         instead of pointers into the vector.
24693         (find_removable_extensions): Adjust caller.
24694
24695 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
24696
24697         * config/avr/avr.md: Resolve all AS1 and AS2 macros.
24698         Transform all "* quoted-c-code" to { c-code }.
24699         Remove redundant test for "optimize" in combine patterns.
24700         Move (include "avr-dimode.md") to end of file.
24701
24702 2012-01-30  Bin Cheng  <bin.cheng@arm.com>
24703
24704         PR target/51835
24705         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
24706         for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
24707
24708 2012-01-30  Richard Guenther  <rguenther@suse.de>
24709
24710         PR tree-optimization/52028
24711         * tree-loop-distribution.c (ldist_gen): Properly update
24712         virtual SSA form.
24713
24714 2012-01-30  Jakub Jelinek  <jakub@redhat.com>
24715
24716         PR debug/52027
24717         * dwarf2out.c (dwarf2out_switch_text_section): Don't call
24718         set_cur_line_info_table if not emitting debug info.
24719
24720         PR tree-optimization/52046
24721         * tree-vect-patterns.c (check_bool_pattern): Give up if
24722         a comparison could throw.
24723
24724         PR debug/52048
24725         * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
24726
24727 2012-01-30  Richard Guenther  <rguenther@suse.de>
24728
24729         PR tree-optimization/52045
24730         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
24731         SSA form if cfgcleanup did anything.
24732
24733 2012-01-30  Richard Guenther  <rguenther@suse.de>
24734
24735         PR tree-optimization/52045
24736         * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
24737         before computing final todo.
24738
24739 2012-01-30  Richard Guenther  <rguenther@suse.de>
24740
24741         PR tree-optimization/51528
24742         * tree-sra.c (sra_modify_assign): Re-factor in preparation
24743         for PR51528 fix.
24744
24745 2012-01-30  Paolo Bonzini  <bonzini@gnu.org>
24746
24747         * df-problems.c (df_kill_notes): Check that the use refers
24748         to the note under examination.
24749
24750 2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>
24751
24752         PR target/51920
24753         * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
24754         parameter and use short-lived pseudos.
24755         (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
24756         (sparc_expand_vector_init): Const-ify local variables and adjust
24757         calls to above functions.
24758
24759 2012-01-30  Georg-Johann Lay  <avr@gjlay.de>
24760
24761         * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
24762
24763 2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>
24764
24765         * doc/invoke.texi: Make usage of "compile time" and
24766         "run time"/"runtime" consistent throughout the file.
24767
24768 2012-01-29  Uros Bizjak  <ubizjak@gmail.com>
24769
24770         * config/alpha/alpha.c (alpha_option_override): Default to
24771         full IEEE compliance mode for Go language.
24772
24773 2012-01-29  Tijl Coosemans  <tijl@coosemans.org>
24774
24775         * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
24776         (LINK_SSP_SPEC): Define.
24777
24778 2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24779
24780         PR target/51871
24781         * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
24782         stubs.
24783
24784 2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>
24785
24786         * doc/invoke.texi: Correct hyphenation of "floating point",
24787         "double precision", and related terminology throughout the file.
24788
24789 2012-01-28  Jakub Jelinek  <jakub@redhat.com>
24790
24791         PR target/52006
24792         * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
24793         arm_general_register_operand predicate for operand 2 instead of
24794         register_operand.
24795
24796 2012-01-27  Ian Lance Taylor  <iant@google.com>
24797
24798         PR go/47656
24799         * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
24800         * builtins.c (expand_builtin_init_trampoline): Add onstack
24801         parameter.  Change caller.
24802         (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
24803         * tree.c (build_common_builtin_nodes): Declare
24804         __builtin_init_heap_trampoline.
24805
24806 2012-01-27  Georg-Johann Lay  <avr@gjlay.de>
24807
24808         * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
24809         tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
24810         * config/avr/avr.c: Ditto.
24811         (avr_regnames): Remove because unused.
24812         * config/avr/avr.md (*cpse.ne): New peephole.
24813         (*cpse.eq): New peephole from former cpse peepholes.
24814
24815 2012-01-27  Michael Eager  <eager@eagercon.com>
24816
24817         * config/microblaze.c (microblaze_emit_compare): Correct
24818         test after pcmp instruction.
24819
24820 2012-01-27  Richard Guenther  <rguenther@suse.de>
24821
24822         PR tree-optimization/52020
24823         * tree-sra.c (sra_modify_assign): Do not transform clobbers.
24824
24825 2012-01-27  Richard Guenther  <rguenther@suse.de>
24826
24827         * ipa-pure-const.c (check_stmt): Clobbers do not make a
24828         function non-const/pure.
24829
24830 2012-01-27  Richard Guenther  <rguenther@suse.de>
24831
24832         PR tree-optimization/50444
24833         * tree-sra.c (build_ref_for_offset): Properly adjust the
24834         MEM_REF type for unaligned accesses.
24835
24836 2012-01-27  Richard Guenther  <rguenther@suse.de>
24837
24838         PR tree-optimization/50444
24839         * expr.c (mem_ref_refers_to_non_mem_p): New function.
24840         (expand_assignment): Use it.  Properly handle misaligned
24841         bases when expanding stores to component references.
24842         (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
24843         refactor that case.
24844
24845 2012-01-27  Andrey Belevantsev  <abel@ispras.ru>
24846
24847         PR middle-end/51389
24848         * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
24849         * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
24850         * tree-data-ref.c (find_data_references_in_loop): Make static.
24851         (compute_all_dependences): Change return type to bool.  Bail out
24852         for too many datarefs in a loop.  Move the hunk resetting the data
24853         dependences vector from ...
24854         (compute_data_dependences_for_loop): ... here.  Account for
24855         compute_all_dependences returning false.
24856         (compute_data_dependences_for_bb): Likewise.
24857         * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
24858         * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
24859
24860 2012-01-27  Richard Guenther  <rguenther@suse.de>
24861
24862         PR middle-end/51959
24863         * expr.c (store_field): Use the alias-set of the scratch memory
24864         for storing to it.
24865
24866 2012-01-27  Tom de Vries  <tom@codesourcery.com>
24867
24868         PR tree-optimization/51990
24869         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
24870         WITH_SIZE_EXPR.
24871         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
24872
24873 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
24874
24875         PR debug/52001
24876         * var-tracking.c (reverse_op): Don't add any reverse operation
24877         if V already has any constant locations.
24878
24879 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
24880
24881         * doc/invoke.texi: Correct usage of "command line" (noun)
24882         vs "command-line" (adjective) throughout.
24883
24884 2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>
24885
24886         * doc/invoke.texi (Language Independent Options): Move
24887         -Wcoverage-mismatch blurb from here....
24888         (Warning Options): ...to here.
24889
24890 2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>
24891
24892         * config/rs6000/rs6000.c (rs6000_option_override_internal):
24893         Set rs6000_always_hint to false for 476.
24894
24895 2012-01-27  Matthias Klose  <doko@ubuntu.com>
24896
24897         * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
24898           system root.
24899         * incpath.c (add_standard_paths): Likewise.
24900
24901 2012-01-27  Richard Henderson  <rth@redhat.com>
24902
24903         * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
24904         * config/m68k/sync.md (atomic_test_and_set): Rename from
24905         sync_test_and_setqi and adjust the operands.
24906         (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
24907         and unconditionally enable.
24908
24909 2012-01-27  Richard Henderson  <rth@redhat.com>
24910
24911         * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
24912         * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
24913         (ldstub): Rename from ldstubqi.
24914         (ldstub<I24MODE>): Remove.
24915
24916 2012-01-27  Richard Henderson  <rth@redhat.com>
24917
24918         * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
24919         * c-cppbuiltin.c (cpp_atomic_builtins): Define
24920         __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
24921         * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
24922         * doc/tm.texi: Rebuild.
24923
24924 2012-01-27  Richard Henderson  <rth@redhat.com>
24925
24926         * optabs.c (gen_atomic_test_and_set): Remove default.
24927         (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
24928
24929 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
24930
24931         PR rtl-optimization/51978
24932         * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
24933         (combine_reaching_defs): Likewise.
24934         (struct re_info): Remove.
24935         (add_removable_extension): Remove x and data arguments,
24936         add insn, insn_list and def_map.  Use the arguments directly
24937         instead of using struct re_info.
24938         (find_removable_extensions): Don't call add_removable_extension
24939         through note_stores, instead just call it with single_set
24940         result if non-NULL.
24941         (find_and_remove_re): Pass curr_cand->expr instead of
24942         PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
24943
24944 2012-01-26  Michael Matz  <matz@suse.de>
24945
24946         PR tree-optimization/46590
24947         * cfgexpand.c: Revert last change (r183305).
24948         * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
24949         regs.
24950         * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
24951         checking for emptiness.
24952
24953 2012-01-26  Jakub Jelinek  <jakub@redhat.com>
24954
24955         PR middle-end/51895
24956         * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
24957         non-addressable non-BLKmode base correctly.
24958
24959 2012-01-26  Michael Matz  <matz@suse.de>
24960
24961         PR tree-optimization/48794
24962         * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
24963         regions referenced from RESX/EH_DISPATCH.
24964
24965 2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24966
24967         * config/s390/s390.h: Make BRANCH_COST an option.
24968         * config/s390/s390.opt: New option -mbranch-cost.
24969
24970 2012-01-26  Richard Henderson  <rth@redhat.com>
24971
24972         Revert 2012-01-24 change:
24973         * trans-mem.c (requires_barrier): Do not instrument thread local
24974         variables and emit save/restore for them.
24975
24976 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
24977
24978         PR middle-end/51986
24979         * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
24980         for pat == 0.
24981
24982 2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
24983
24984         * config/mips/mips.c (mips_small_data_pattern_1): Don't process
24985         ASM_OPERANDS.
24986
24987 2012-01-25  Georg-Johann Lay  <avr@gjlay.de>
24988
24989         PR target/49868
24990         Rename __pgm to __flash.
24991         Rename __pgm1 to __flash1.
24992         Rename __pgm2 to __flash2.
24993         Rename __pgm3 to __flash3.
24994         Rename __pgm4 to __flash4.
24995         Rename __pgm5 to __flash5.
24996         Rename __pgmx to __memx.
24997         * doc/extend.texi (AVR Named Address Spaces)
24998         Rename address space names as indicated above.
24999         * config/avr/avr.c (avr_addrspace): Ditto.
25000
25001         * config/avr/avr-protos.h
25002         (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
25003         (avr_mem_pgm_p): Rename to avr_mem_flash_p.
25004         * config/avr/predicates.md: Ditto.
25005         * config/avr/avr.c Ditto, and
25006         (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
25007         (avr_decl_pgm_p): Rename to avr_decl_flash_p.
25008
25009         * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
25010         (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
25011         (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
25012         (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
25013         (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
25014         (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
25015         (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
25016         * config/avr/avr.c: Ditto.
25017         * config/avr/avr.md: Ditto.
25018
25019 2012-01-25  Jason Merrill  <jason@redhat.com>
25020
25021         PR c++/51992
25022         * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
25023
25024 2012-01-25  Jakub Jelinek  <jakub@redhat.com>
25025
25026         PR tree-optimization/51987
25027         * tree-data-ref.c (get_references_in_stmt): Handle references in
25028         non-volatile GIMPLE_ASM.
25029
25030 2012-01-25  Richard Guenther  <rguenther@suse.de>
25031
25032         * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
25033         bases are dereferenced.
25034
25035 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
25036
25037         PR rtl-optimization/48374
25038         * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
25039
25040 2012-01-25  Andrey Belevantsev  <abel@ispras.ru>
25041
25042         * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
25043         compute_data_dependences_for_loop returns false.
25044         * tree-parloops.c (loop_parallel_p): Likewise.
25045
25046 2012-01-25  Richard Guenther  <rguenther@suse.de>
25047
25048         * tree.h (get_pointer_alignment_1): Declare.
25049         * builtins.c (get_pointer_alignment_1): New function.
25050         (get_pointer_alignment): Use it.
25051
25052 2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
25053
25054         PR rtl-optimization/48308
25055         * combine.c (enum undo_kind): Add UNDO_LINKS.
25056         (struct undo): Add member l to other_contents and where.
25057         (do_SUBST_LINK): New.
25058         (SUBST_LINK): New.
25059         (try_combine): Handle LOG_LINKS for the dummy i1 case.
25060         (undo_all): Handle UNDO_LINKS.
25061
25062 2012-01-25  Richard Henderson  <rth@redhat.com>
25063
25064         * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
25065         mem inputs.
25066
25067 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
25068
25069         * optabs.c (gen_atomic_test_and_set): Use each argument.
25070
25071 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
25072
25073         * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
25074         (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
25075         (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
25076         (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
25077         (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
25078         TARGET_PAIRED_SINGLE_FLOAT.
25079
25080 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
25081
25082         * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
25083         (in_struct, return_val): Remove MEM documentation.
25084         * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
25085         (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
25086         (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
25087         and MEM_SCALAR.
25088         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
25089         * cfgexpand.c (add_alias_set_conflicts): Likewise.
25090         * expr.c (store_field): Likewise.
25091         * function.c (assign_stack_temp_for_type): Likewise.
25092         * ifcvt.c (noce_try_cmove_arith): Likewise.
25093         * reload1.c (reload): Likewise.
25094         * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
25095         (alpha_set_memflags): Likewise.
25096         * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
25097
25098 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
25099
25100         * rtl.h (true_dependence, canon_true_dependence): Remove varies
25101         parameter.
25102         * alias.c (fixed_scalar_and_varying_struct_p): Delete.
25103         (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
25104         (true_dependence_1, true_dependence, canon_true_dependence): Remove
25105         varies parameter.
25106         * cselib.c (cselib_rtx_varies_p): Delete.
25107         (cselib_invalidate_mem): Update call to canon_true_dependence.
25108         * dse.c (record_store, check_mem_read_rtx): Likewise.
25109         (scan_reads_nospill): Likewise.
25110         * cse.c (check_dependence): Likewise.
25111         (cse_rtx_varies_p): Delete.
25112         * expr.c (safe_from_p): Update call to true_dependence.
25113         * ira.c (validate_equiv_mem_from_store): Likewise.
25114         (memref_referenced_p): Likewise.
25115         * postreload-gcse.c (find_mem_conflicts): Likewise.
25116         * sched-deps.c (sched_analyze_2): Likewise.
25117         * store-motion.c (load_kills_store): Likewise.
25118         * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
25119         * gcse.c (mems_conflict_for_gcse_p): Likewise.
25120         (compute_transp): Update call to canon_true_dependence.
25121
25122 2012-01-25  Richard Henderson  <rth@redhat.com>
25123
25124         * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
25125         (maybe_emit_atomic_test_and_set): New.
25126         (expand_sync_lock_test_and_set): Use it.
25127         (expand_atomic_test_and_set): Likewise.
25128         * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
25129         the implementation; clarify implementation defined details.
25130         * doc/md.texi (atomic_test_and_set): Document.
25131
25132 2012-01-25  Richard Henderson  <rth@redhat.com>
25133
25134         * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
25135
25136 2012-01-25  Richard Henderson  <rth@redhat.com>
25137
25138         PR target/51968
25139         * config/arm/arm.c (neon_split_vcombine): Emit deleted note
25140         to effect no-op split.
25141
25142 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
25143
25144         PR lto/51698
25145         * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
25146         (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
25147         (BT_FN_VOID_PTR_INT_SIZE): New.
25148         (BT_FN_UINT_UINT_VAR): Remove.
25149         (BT_FN_UINT32_UINT32_VAR): New.
25150         (BT_FN_DOUBLE_VPTR): Remove.
25151         (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
25152
25153         * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
25154         (_ITM_changeTransactionMode): Same.
25155         (_ITM_memmoveRtWt): Change return type to void.
25156         (_ITM_memcpyRtWt): Same.
25157         (_ITM_memsetW): Same.
25158         (_ITM_RaRD): Change types to double.
25159         (_ITM_RD): Same.
25160         (_ITM_RaWD): Same.
25161         (_ITM_RfWD): Same.
25162
25163         * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
25164
25165 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
25166             Patrick Marlier  <patrick.marlier@gmail.com>
25167
25168         * trans-mem.c (requires_barrier): Do not instrument thread local
25169         variables and emit save/restore for them.
25170
25171 2012-01-24  Jason Merrill  <jason@redhat.com>
25172
25173         PR c++/51812
25174         * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
25175         output static aliases.
25176
25177 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
25178
25179         PR driver/47249
25180         * common.opt (-pie, -shared, pie, shared): Change from Common to
25181         Driver.
25182         * gcc.c (display_help): Display help for -pie and -shared.
25183
25184 2012-01-24  Georg-Johann Lay  <avr@gjlay.de>
25185
25186         PR target/49868
25187         * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
25188         Remove note on size/offset limitation.
25189         (AVR Variable Attributes): Add example how to read data located
25190         with progmem.  Refer to named address spaces.
25191         * doc/invoke.texi (AVR Options): Fix typo.
25192
25193 2012-01-24  Richard Guenther  <rguenther@suse.de>
25194
25195         Forward-port to trunk
25196         2010-09-21  Jakub Jelinek  <jakub@redhat.com>
25197
25198         PR middle-end/45678
25199         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
25200         op0 isn't sufficiently aligned and there is movmisalignM
25201         insn for mode, use it to load op0 into a temporary register.
25202
25203 2012-01-24  Jakub Jelinek  <jakub@redhat.com>
25204
25205         PR target/51957
25206         * target.def (const_not_ok_for_debug_p): New hook.
25207         * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
25208         documentation.
25209         * doc/tm.texi: Regenerated.
25210         * dwarf2out.c (const_ok_for_output_1): If
25211         targetm.const_not_ok_for_debug_p returns true, fail.
25212         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
25213         function.
25214         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
25215
25216 2012-01-23  Kai Tietz  <ktietz@redhat.com>
25217
25218         PR target/51900
25219         * config/i386/predicates.md (symbolic_operand): Allow
25220         UNSPEC_PCREL as PIC expression for lea.
25221         * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
25222         * config/i386/i386.c (ix86_delegitimize_address): Handle
25223         UNSPEC_PCREL for none-MEM, too.
25224
25225 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
25226
25227         * trans-mem.c (ipa_tm_create_version): Set externally_visible.
25228         (ipa_tm_create_version_alias): Same.
25229
25230 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
25231
25232         PR libitm/51830
25233         * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
25234         * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
25235
25236 2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
25237             Patrick Marlier  <patrick.marlier@gmail.com>
25238             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
25239
25240         PR lto/51916
25241         * lto-wrapper.c (run_gcc): Pass the LTO section name to
25242         simple_object_start_read.
25243
25244 2012-01-23  Richard Guenther  <rguenther@suse.de>
25245
25246
25247         PR tree-optimization/51895
25248         * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
25249         parameter decomposition into BLKmode components.
25250
25251 2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>
25252
25253         * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
25254         fake variables for restrict-qualified pointers whose pointed-to type
25255         contains a placeholder.
25256
25257 2012-01-23  Richard Guenther  <rguenther@suse.de>
25258
25259         PR tree-optimization/51949
25260         * ipa-split.c (execute_split_functions): Do not split malloc functions.
25261
25262 2012-01-23  Jakub Jelinek  <jakub@redhat.com>
25263
25264         PR rtl-optimization/51933
25265         * ree.c (transform_ifelse): Return true right away if dstreg is
25266         already wider or equal to cand->mode.
25267         (enum ext_modified_kind, struct ext_modified, ext_state): New types.
25268         (make_defs_and_copies_lists): Remove defs_list and copies_list
25269         arguments, add state argument, just truncate state->work_list
25270         instead of always allocating and freeing the vector.  Assert that
25271         get_defs succeeds instead of returning 2.  Changed return type to bool.
25272         (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
25273         have ext_src_mode, see if it has been modified already with the
25274         right kind of extension and has been extended before from the
25275         ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
25276         just return true.  Remember the original mode in state->modified array.
25277         (combine_reaching_defs): Add state argument.  Don't allocate and
25278         free here def_list, copied_list and vec vectors, instead just
25279         VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
25280         (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
25281         Add state variable, clear vectors in it, initialize state.modified
25282         if needed.  Free all the vectors at the end and state.modified too.
25283         Don't skip a candidate if the extension expression has been modified.
25284
25285 2012-01-22  Douglas B Rupp  <rupp@gnat.com>
25286
25287         PR target/47096
25288         * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
25289          configurations. Change triplet to i[34567]86-*-interix[3-9]*.
25290         (extra_options) interix.opt -> i386/interix.opt"
25291         (extra_objs):Add winnt-stubs.o
25292         * configure.ac: Add interix to target_os .comm on PE check.
25293         * configure: Regenerate.
25294         * config/interix3.h: Delete and move bits to..
25295         * config/interix.h: Delete and move bits to..
25296         * config/i386/i386-interix3.h: Delete and move bits to..
25297         * config/i386/i386-interix.h: ..here.
25298         (TARGET_CPU_DEFAULT): Remove redefinition.
25299         (TARGET_ASM_CONSTRUCTOR): Undefine.
25300         (SUBTARGET_SWITCHES): Define for ms-bitfields.
25301         (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
25302         (PTRDIFF_TYPE): Define.
25303         (LONG_DOUBLE_TYPE_SIZE): Define.
25304         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
25305         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
25306         (TARGET_SECTION_TYPE_FLAGS): Define.
25307         (ASM_DECLARE_FUNCTION_NAME): Define.
25308         (ASM_OUTPUT_EXTERNAL): Define.
25309         (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
25310         (ASM_OUTPUT_ALIGNED_BSS): Define.
25311         (PCC_BITFIELD_TYPE_MATTERS): Define.
25312         (USE_CONST_SECTION): Define.
25313         (SUBTARGET_ENCODE_SECTION_INFO): Remove.
25314         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
25315         (SUPPORTS_ONE_ONLY): Remove.
25316         (I386_PE_STRIP_ENCODING): Define.
25317         * config/interix.opt: Delete and move bits to..
25318         * config/i386/interix.opt: ..here. New.
25319         (mpe-aligned-commons): Add.
25320         * config/i386/t-interix: Add copyright header.
25321         (winnt-stubs.o): Add rule.
25322
25323 2012-01-22  Jason Merrill  <jason@redhat.com>
25324
25325         PR c++/51832
25326         * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
25327         for extra name aliases.
25328
25329 2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>
25330
25331         PR rtl-optimization/51924
25332         * ree.c (combine_set_extension): Improve debugging message.
25333         (combine_reaching_defs): Likewise.
25334         (get_defs): Rename confusingly named variable.
25335         (find_and_remove_re): Skip a candidate if the extension expression has
25336         been modified.
25337
25338 2012-01-21  Robert Millan  <rmh@gnu.org>
25339             Gerald Pfeifer  <gerald@pfeifer.com>
25340
25341         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
25342         (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
25343
25344 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
25345
25346         PR tree-optimization/51914
25347         * tree-vect-stmts.c (vectorizable_conversion): For
25348         cvt_type && modifier == WIDEN, put temporary with cvt_type
25349         at the beginning of vec_dsts and set vec_dest to temporary
25350         with vectype_out.
25351
25352 2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>
25353
25354         * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
25355
25356 2012-01-20  Tijl Coosemans  <tijl@coosemans.org>
25357
25358         * config/i386/i386.c: Fix checks for !TARGET_MACHO.
25359         * config/rs6000/rs6000.c: Likewise.
25360
25361 2012-01-20  Jakub Jelinek  <jakub@redhat.com>
25362
25363         PR target/51915
25364         * config/arm/arm.c (arm_count_output_move_double_insns): Call
25365         output_move_double on a copy of operands array.
25366
25367 2012-01-20  Cary Coutant  <ccoutant@google.com>
25368             Dodji Seketeli  <dodji@redhat.com>
25369
25370         PR debug/45682
25371         * dwarf2out.c (copy_declaration_context): Return ref to parent
25372         of declaration DIE, if necessary.
25373         (remove_child_or_replace_with_skeleton): Add new parameter; update
25374         caller.  Place skeleton DIE under parent DIE of original declaration.
25375         Move call to copy_declaration_context to here ...
25376         (break_out_comdat_types): ... from here.
25377
25378 2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25379
25380         PR rtl-optimization/51856
25381         * reload.c (find_reloads_subreg_address): Set the address_reloaded
25382         flag to reloaded.
25383
25384 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
25385
25386         PR target/51819
25387         * config/arm/arm.c (arm_print_operand): Correct output of alignment
25388         hints for neon loads and stores.
25389
25390 2012-01-20  Georg-Johann Lay  <avr@gjlay.de>
25391
25392         PR target/49868
25393         PR target/50887
25394         * doc/extend.texi (Named Address Spaces): Split into subsections.
25395         (AVR Named Address Spaces): New subsection.
25396         (M32C Named Address Spaces): New subsection.
25397         (RL78 Named Address Spaces): New subsection.
25398         (SPU Named Address Spaces): New subsection.
25399         (Variable Attributes): New anchor "AVR Variable Attributes".
25400         (AVR Variable Attributes): Rewrite and avoid wording
25401         "address space" in this context.
25402         * doc/invoke.texi (AVR Options): Rewrite and add documentation
25403         for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
25404         (AVR Built-in Macros): New subsubsection therein.
25405         * doc/md.texi (AVR constraints): Remove "C04", "R".
25406
25407 2012-01-20  Richard Guenther  <rguenther@suse.de>
25408
25409         PR tree-optimization/51903
25410         * tree-ssa-pre.c (eliminate): Properly purging of EH edges
25411         when removing stmts.
25412
25413 2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
25414
25415         PR target/50313
25416         * config/arm/arm.c (arm_load_pic_register): Use
25417         gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
25418         , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
25419         (arm_pic_static_addr): Likewise.
25420         (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
25421         (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
25422         * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
25423         (pic_load_addr_unified): New.
25424
25425 2012-01-20  Andrey Belevantsev  <abel@ispras.ru>
25426
25427         PR target/51106
25428         * function.c (instantiate_virtual_regs_in_insn): Use
25429         delete_insn_and_edges when removing a wrong asm insn.
25430
25431 2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>
25432
25433         PR rtl-optimization/40761
25434         * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
25435         Add new member loop_num.
25436         (IRA_LOOP_NODE_BY_INDEX): Modify the check.
25437         (ira_build): Remove the parameter.
25438
25439         * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
25440         (ira.c): Do not build CFG loops for one region allocation.  Remove
25441         argument from ira_build call.
25442
25443         * ira-build.c (init_loop_tree_node): New function.
25444         (create_loop_tree_nodes): Use it.  Separate the case when CFG
25445         loops are not built.
25446         (more_one_region_p): Check current_loops.
25447         (finish_loop_tree_nodes): Separate the case when CFG loops are not
25448         built.
25449         (add_loop_to_tree): Process loop equal to NULL too.
25450         (form_loop_tree): Separate the case when CFG loops are not built.
25451         Use explicitly number for the root.
25452         (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
25453         an assertion.
25454         (ira_print_expanded_allocno, loop_compare_func): Use loop_num
25455         instead of loop->num.
25456         (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
25457         (mark_all_loops_for_removal): Ditto.
25458         (remove_unnecessary_regions): Separate the case when CFG loops
25459         are not built.
25460         (ira_build): Remove the parameter.  Use explicit number of regions
25461         when CFG loops are not built.
25462
25463         * ira-color.c (print_loop_title): Separate the case for the root node.
25464         Use loop_num instead of loop->num.
25465         (move_spill_restore): Use loop_num instead of loop->num.
25466
25467         * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
25468         (change_loop): Ditto.
25469         (change_loop): Use loop_num instead of loop->num.
25470
25471         * ira-lives.c (process_bb_node_lives): Ditto.
25472
25473         * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
25474
25475         * ira-conflicts.c (print_allocno_conflicts): Ditto.
25476
25477 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
25478
25479         PR libmudflap/40778
25480         * tree-mudflap.c (mf_artificial): New function.
25481         (execute_mudflap_function_ops, execute_mudflap_function_decls,
25482         mx_register_decls, mudflap_enqueue_decl): Use it.
25483
25484         PR target/51876
25485         * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
25486         numbers in the insn pattern.
25487
25488 2012-01-19  Michael Matz  <matz@suse.de>
25489
25490         PR tree-optimization/46590
25491         * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
25492         use it in remembering which conflicts we already created.
25493         (add_scope_conflicts): Adjust call to above, (de)allocate helper
25494         bitmap.
25495
25496 2012-01-19  Aldy Hernandez  <aldyh@redhat.com>
25497
25498         PR lto/51280
25499         * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
25500         (merge_and_complain): Same.
25501
25502 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
25503
25504         PR bootstrap/50237
25505         * config/initfini-array.h: Guard content of the header
25506         with #ifdef HAVE_INITFINI_ARRAY.
25507         * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
25508         Add initfini-array.h to tm_file here.
25509         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
25510         * config.gcc: Don't add initfini-array.h to tm_file here.
25511         * configure: Regenerated.
25512
25513 2012-01-19  Andrey Belevantsev  <abel@ispras.ru>
25514
25515         PR rtl-optimization/51505
25516         * df-problems.c (df_kill_notes): New parameter live. Update comment.
25517         Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
25518         (df_note_bb_compute): Update the call to df_kill_notes.
25519
25520 2012-01-18  Aldy Hernandez  <aldyh@redhat.com>
25521
25522         * trans-mem.c (requires_barrier): Remove call to is_global_var.
25523
25524 2012-01-18  Richard Guenther  <rguenther@suse.de>
25525
25526         * tree-ssa.c (useless_type_conversion_p): Remove special-casing
25527         of conversions to void *.
25528
25529 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25530             Richard Sandiford  <rdsandiford@googlemail.com>
25531
25532         PR middle-end/50325
25533         PR middle-end/51192
25534         * optabs.h (simplify_expand_binop): Declare.
25535         * optabs.c (simplify_expand_binop): Make global.
25536         * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
25537         endian targets if the source cannot be exactly covered by word
25538         mode chunks.
25539
25540 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
25541
25542         PR bootstrap/51872
25543         * hard-reg-set.h (struct hard_reg_set_container): New type.
25544         * target.h (struct hard_reg_set_container): Forward declare.
25545         * target.def (set_up_by_prologue): New target hook.
25546         * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
25547         * doc/tm.texi: Regenerated.
25548         * function.c (thread_prologue_and_epilogue_insns): Change
25549         set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
25550         Call targetm.set_up_by_prologue on it.
25551         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
25552         (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
25553
25554 2012-01-17  Nick Clifton  <nickc@redhat.com>
25555
25556         * config/rx/rx.c (rx_can_use_simple_return): New function.
25557         * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
25558         * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
25559
25560 2012-01-17  Richard Guenther  <rguenther@suse.de>
25561
25562         PR middle-end/51782
25563         * expr.c (expand_assignment): Take address-space information
25564         from the address operand of MEM_REF and TARGET_MEM_REF.
25565         (expand_expr_real_1): Likewise.
25566
25567 2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25568
25569         * ira.c (do_reload): Make sure ira_dump_file is re-set if no
25570         reload dump is requested.
25571
25572 2012-01-17  Aldy Hernandez  <aldyh@redhat.com>
25573
25574         PR other/51165
25575         * trans-mem.c (requires_barrier): Call may_be_aliased.
25576
25577 2012-01-17  Jakub Jelinek  <jakub@redhat.com>
25578
25579         PR tree-optimization/51877
25580         * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
25581         call arguments and fndecls compare equal, instead return false if they
25582         don't.  Return true only if lhs1 and lhs2 are either both NULL, or
25583         both SSA_NAMEs that are valueized the same, or they satisfy
25584         operand_equal_p.
25585
25586 2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25587
25588         * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
25589         Solaris 11+.
25590         * configure: Regenerate.
25591
25592 2012-01-16  Jan Hubicka  <jh@suse.cz>
25593
25594         PR c/12245
25595         PR c++/14179
25596         * convert.c (convert_to_integer): Use fold_convert for
25597         converting an INTEGER_CST to integer type.
25598
25599 2012-01-16  Jason Merrill  <jason@redhat.com>
25600
25601         PR c++/14179
25602         * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
25603
25604 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
25605
25606         PR bootstrap/51860
25607         * config/s390/s390.c (s390_chunkify_start): Don't skip
25608         call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
25609         NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
25610         If insn is followed by NOTE_INSN_VAR_LOCATION or
25611         NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
25612         Don't use location of note insns.
25613
25614         PR tree-optimization/51865
25615         * tree-inline.c (tree_function_versioning): Call remap_decl
25616         on DECL_RESULT whenever it has VOID_TYPE_P type.
25617
25618 2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
25619
25620         * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
25621         for calls to locally-binding MIPS16 functions if only the return
25622         type uses float regs.
25623
25624 2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
25625             Richard Sandiford  <rdsandiford@googlemail.com>
25626
25627         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
25628         (SYMBOL_32_HIGH): Likewise.
25629         (mips_output_tls_reloc_directive): Declare.
25630         * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
25631         (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
25632         * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
25633         (mips_lo_relocs, mips_hi_relocs): Make extern.
25634         (mips16_stub_function): Move up file.
25635         (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
25636         (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
25637         (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
25638         (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
25639         SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
25640         (mips_get_tp): Add MIPS16 support.
25641         (mips_legitimize_tls_address): Remove MIPS16 sorry().
25642         Generalize DTPREL and TPREL handling.
25643         (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
25644         Add MIPS16 TLS support.
25645         (mips_output_tls_reloc_directive): New function.
25646         (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
25647         * config/mips/predicates.md (symbolic_operand_with_high)
25648         (tls_reloc_operand): New predicates.
25649         (force_to_mem_operand): Use mips_use_pcrel_pool_p.
25650         * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
25651         (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
25652         (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
25653         (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
25654         (*tls_get_tp_mips16_call_<mode>): Likewise.
25655
25656 2012-01-15  Uros Bizjak  <ubizjak@gmail.com>
25657
25658         PR rtl-optimization/51821
25659         * recog.c (peep2_find_free_register): Determine clobbered registers
25660         from insn pattern.
25661
25662 2012-01-14  Denis Chertykov  <chertykov@gmail.com>
25663
25664         PR target/50925
25665         * config/avr/avr-protos.h: Revert change of 2012-01-09.
25666         * config/avr/avr.c: Likewise.
25667         * config/avr/avr.h: Likewise.
25668
25669 2012-01-13  Ian Lance Taylor  <iant@google.com>
25670
25671         PR c++/50012
25672         * tree.h (TYPE_QUALS): Add cast to int.
25673         (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
25674
25675 2012-01-13  Ian Lance Taylor  <iant@google.com>
25676
25677         * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
25678         comparing param_index to VEC_length result.
25679
25680 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
25681
25682         * c-decl.c: Do not include tree-mudflap.h
25683         * tree-optimize.c: Likewise.
25684         * Makefile.in: Update dependencies.
25685
25686 2012-01-13  Richard Guenther  <rguenther@suse.de>
25687
25688         PR middle-end/8081
25689         * gimplify.c (gimplify_modify_expr_rhs): For calls with a
25690         variable-sized result always use RSO.
25691
25692 2012-01-12  DJ Delorie  <dj@redhat.com>
25693
25694         * cfgexpand.c (convert_debug_memory_address): Allow any valid
25695         pointer type, not just the default pointer type.
25696
25697 2012-01-09  Richard Henderson  <rth@redhat.com>
25698             Denis Chertykov  <chertykov@gmail.com>
25699
25700         PR target/50925
25701         * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
25702         * config/avr/avr.c (avr_can_eliminate): Simplify.
25703         (avr_initial_elimination_offset): Likewise.
25704         (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
25705         (expand_epilogue): Likewise.
25706         (avr_legitimize_address): Gut.
25707         (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
25708         (avr_hard_regno_nregs): New.
25709         (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
25710         (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
25711         * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
25712         add soft frame pointer.
25713         (CALL_USED_REGISTERS): Likewise.
25714         (REG_CLASS_CONTENTS): Likewise.
25715         (REGISTER_NAMES): Likewise.
25716         (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
25717         (HARD_FRAME_POINTER_REGNUM): New.
25718         (FRAME_POINTER_REGNUM): Use soft frame pointer.
25719         (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
25720         remove the HARD_FRAME_POINTER self-elimination.
25721
25722 2012-01-12  Georg-Johann Lay  <avr@gjlay.de>
25723
25724         PR target/51756
25725         * config/avr/avr.c (avr_encode_section_info): Test for absence of
25726         DECL_EXTERNAL when checking for initializers of progmem variables.
25727
25728 2012-01-12  Ira Rosen  <irar@il.ibm.com>
25729
25730         PR tree-optimization/51799
25731         * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
25732         that the last operation is a type demotion.
25733
25734 2012-01-12  Uros Bizjak  <ubizjak@gmail.com>
25735
25736         * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
25737         (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
25738
25739 2012-01-11  Jakub Jelinek  <jakub@redhat.com>
25740
25741         PR bootstrap/51796
25742         * combine.c (distribute_notes): If i3 is a noreturn call,
25743         allow old_size to be equal to args_size and make sure the
25744         noreturn call gets REG_ARGS_SIZE note.
25745         * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
25746         on noreturn calls even when the delta is 0.
25747
25748 2012-01-11  Nathan Sidwell  <nathan@acm.org>
25749
25750         * gcov.c (STRING_SIZE): Remove.
25751         (generate_results): Erase annotations for source files with no
25752         coverage information.
25753         (read_line): New.
25754         (output_lines): Use it.
25755
25756 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
25757
25758         * gimple.h (gimplify_body): Remove first argument.
25759         * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
25760         pointer set here, instead just pass DATA to walk_tree.
25761         (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
25762         set here and invoke copy_if_shared on the size trees of DECL_RESULT.
25763         (unvisit_body): Likewise, but with unmark_visited.
25764         (gimplify_body): Remove BODY_P argument and adjust.
25765         (gimplify_function_tree): Adjust call to gimplify_body.
25766         * omp-low.c (finalize_task_copyfn): Likewise.
25767
25768 2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>
25769
25770         * tree.h (build_function_decl_skip_args): Add boolean parameter.
25771         (build_function_type_skip_args): Delete.
25772         * tree.c (build_function_type_skip_args): Make static and add
25773         SKIP_RETURN parameter.  Fix thinko in the handling of variants.
25774         (build_function_decl_skip_args): Add SKIP_RETURN parameter and
25775         pass it to build_function_type_skip_args.
25776         * cgraph.h (cgraph_function_versioning): Add boolean parameter.
25777         (tree_function_versioning): Likewise.
25778         * cgraph.c (cgraph_create_virtual_clone): Adjust call to
25779         build_function_decl_skip_args.
25780         * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
25781         and pass it to build_function_decl_skip_args/tree_function_versioning.
25782         (cgraph_materialize_clone): Adjust call to tree_function_versioning.
25783         * ipa-inline-transform.c (save_inline_function_body): Likewise.
25784         * trans-mem.c (ipa_tm_create_version): Likewise.
25785         * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
25786         * tree-inline.c (declare_return_variable): Remove always-true test.
25787         (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
25788         returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
25789         * ipa-split.c (split_function): Skip the return value for the split
25790         part if it doesn't return.
25791
25792 2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25793
25794         PR tree-optimization/49642
25795         * ipa-split.c (forbidden_dominators): New variable.
25796         (check_forbidden_calls): New function.
25797         (dominated_by_forbidden): Likewise.
25798         (consider_split): Check for forbidden dominators.
25799         (execute_split_functions): Initialize and free forbidden
25800         dominators info; call check_forbidden_calls.
25801
25802 2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
25803
25804         * config/arm/arm.md (mov_notscc): Use MVN for false condition.
25805
25806 2012-01-11  Nick Clifton  <nickc@redhat.com>
25807
25808         * config/rx/rx.md (return): Define pattern.
25809
25810 2012-01-11  Richard Guenther  <rguenther@suse.de>
25811
25812         * doc/extend.texi (malloc attribute): Adjust according to
25813         implementation.
25814
25815 2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
25816             Patrick Marlier  <patrick.marlier@gmail.com>
25817
25818         PR middle-end/51516
25819         * trans-mem.c (get_cg_data): Traverse aliases if requested.
25820         (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
25821         (ipa_tm_note_irrevocable): Same.
25822         (ipa_tm_scan_irr_block): Same.
25823         (ipa_tm_decrement_clone_counts): Same.
25824         (ipa_tm_scan_irr_function): Same.
25825         (ipa_tm_create_version_alias): Same.
25826         (ipa_tm_create_version): Same.
25827         (ipa_tm_transform_calls_redirect): Same.
25828         (ipa_tm_transform_calls): Same.
25829         (ipa_tm_transform_transaction): Same.
25830         (ipa_tm_execute): Same.
25831
25832 2012-01-10  Richard Guenther  <rguenther@suse.de>
25833
25834         PR middle-end/51806
25835         * opts.c (common_handle_option): Handle -Werror.
25836
25837 2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>
25838
25839         * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
25840         operand number.
25841
25842 2012-01-10  Jason Merrill  <jason@redhat.com>
25843
25844         * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
25845         information.
25846
25847 2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25848
25849         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
25850         supports R_386_TLS_GD_PLT reloc.
25851         (gcc_cv_as_ix86_tlsldmplt): Check if linker
25852         supports R_386_TLS_LDM_PLT reloc.
25853         * configure: Regenerate.
25854         * config.in: Regenerate.
25855
25856 2012-01-10  Georg-Johann Lay  <avr@gjlay.de>
25857
25858         PR target/49868
25859         Extend __pgmx semantics to linearize memory.
25860         * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
25861         determine if code comes inline or from libgcc.
25862         (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
25863         (movmem_qi, movmem_qi): Set constraint #2 to "n".
25864         (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
25865         (movmemx_qi, movmemx_hi): New insns.
25866         (xload_<mode>_libgcc): Rewrite to new insn condition.
25867         (xload_<mode>): Remove insns.
25868         * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
25869         cases that don't satisfy avr_xload_libgcc_p().
25870         (avr_addr_space_convert): Allow converting in any direction.
25871         (avr_addr_space_subset_p): Return always true.
25872         (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
25873         (avr_emit_movmemhi): Ditto.
25874         (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
25875         (avr_out_movmem): Ditto.
25876         (AVR_SYMBOL_FLAG_PROGMEM): New macro.
25877         (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
25878         (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
25879         (avr_encode_section_info): Encode 'progmem' in symbol flags.
25880         (output_reload_in_const): Don't zero-extend any 24-bit symbols.
25881
25882 2012-01-10  Richard Guenther  <rguenther@suse.de>
25883
25884         PR tree-optimization/50913
25885         * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
25886         Require data-refs to be representable by Graphite with respect
25887         to any loop nest.
25888
25889 2012-01-10  Uros Bizjak  <ubizjak@gmail.com>
25890
25891         * config/i386/constraints.md ("L"): Return true for 0xffffffff.
25892         * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
25893
25894 2012-01-10  Tom de Vries  <tom@codesourcery.com>
25895
25896         PR rtl-optimization/51271
25897         * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
25898         handling annulled branch.
25899
25900 2012-01-10  Richard Henderson  <rth@redhat.com>
25901
25902         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
25903         TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
25904         struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
25905         arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
25906         arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
25907         arm_expand_vec_perm_const): New.
25908         * config/arm/arm-protos.h: Update.
25909         * config/arm/neon.md (UNSPEC_VCONCAT): New.
25910         (*neon_vswp<VDQX>): New.
25911         (neon_vcombine<VDX>): Use neon_split_vcombine.
25912         (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
25913         * config/arm/vec-common.md (vec_perm_const<VALL>): New.
25914         (vec_perm<VE>): New.
25915
25916 2012-01-10  Richard Henderson  <rth@redhat.com>
25917
25918         * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
25919         use it if reload_completed.
25920         (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
25921         arm_output_asm_insn, arm_process_output_memory_barrier,
25922         arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
25923         arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
25924         arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
25925         arm_process_output_sync_insn, arm_output_sync_insn,
25926         arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
25927         (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
25928         (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
25929         (emit_unlikely_jump): New.
25930         (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
25931         (arm_split_atomic_op): New.
25932         * config/arm/arm-protos.h: Update.
25933         * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
25934         (struct arm_sync_generator): Remove.
25935         * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
25936         VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
25937         (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
25938         (VUNSPEC_LL, VUNSPEC_SC): New.
25939         (sync_result, sync_memory, sync_required_value, sync_new_value,
25940         sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
25941         (attr length): Don't use arm_sync_loop_insns.
25942         (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
25943         (movsfcc, movdfcc): Likewise.
25944         * config/arm/constraints.md (Ua): New.
25945         * config/arm/prediates.md (mem_noofs_operand): New.
25946         (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
25947         (sync_clobber, sync_t2_reqd): Remove.
25948         (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
25949         (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
25950         (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
25951         (arm_sync_compare_and_swap<SIDI>): Remove.
25952         (arm_sync_compare_and_swap<NARROW>): Remove.
25953         (arm_sync_lock_test_and_set<SIDI>): Remove.
25954         (arm_sync_lock_test_and_set<NARROW>): Remove.
25955         (arm_sync_new_<syncop><SIDI>): Remove.
25956         (arm_sync_new_<syncop><NARROW>): Remove.
25957         (arm_sync_new_nand<SIDI>): Remove.
25958         (arm_sync_new_nand<NARROW>): Remove.
25959         (arm_sync_old_<syncop><SIDI>): Remove.
25960         (arm_sync_old_<syncop><NARROW>): Remove.
25961         (arm_sync_old_nand<SIDI>): Remove.
25962         (arm_sync_old_nand<NARROW>): Remove.
25963         (*memory_barrier): Merge arm_output_memory_barrier.
25964         (atomic_compare_and_swap<QHSD>): New.
25965         (atomic_compare_and_swap<NARROW>_1): New.
25966         (atomic_compare_and_swap<SIDI>_1): New.
25967         (atomic_exchange<QHSD>): New.
25968         (cas_cmp_operand, cas_cmp_str): New.
25969         (atomic_op_operand, atomic_op_str): New.
25970         (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
25971         (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
25972         (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
25973         (arm_load_exclusive<NARROW>): New.
25974         (arm_load_exclusivesi, arm_load_exclusivedi): New.
25975         (arm_store_exclusive<QHSD>): New.
25976
25977 2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
25978
25979         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
25980         reload patterns if -mvsx-scalar-memory.
25981
25982         * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
25983         generated, even -mno-vsx-scalar-double was used.
25984         (vsx_xscvdpsp_scalar): Likewise.
25985         (vsx_xscvspdp_scalar2): Likewise.
25986
25987 2012-01-09  Tom de Vries  <tom@codesourcery.com>
25988             Andrew Pinski  <apinski@cavium.com>
25989
25990         PR debug/51471
25991         * reorg.c (fill_slots_from_thread): Don't speculate
25992         frame-related insns.
25993
25994 2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
25995
25996         * sched-int.h (bb_note): Move to...
25997         * basic-block.h: ...here.
25998         * haifa-sched.c (bb_note): Move to...
25999         * cfgrtl.c: ...here.
26000         * function.c (next_block_for_reg): New function.
26001         (move_insn_for_shrink_wrap): Likewise.
26002         (prepare_shrink_wrap): Rewrite to use the above.
26003
26004 2012-01-09  Aldy Hernandez  <aldyh@redhat.com>
26005
26006         * gimple.c (is_gimple_non_addressable): Remove.
26007         * gimple.h: Remove is_gimple_non_addressable.
26008         * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
26009         is_gimple_non_addressable.
26010         * trans-mem.c (expand_assign_tm): Same.
26011
26012 2012-01-09  Richard Guenther  <rguenther@suse.de>
26013
26014         PR tree-optimization/51775
26015         * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
26016         * tree-ssa-pre.c (eliminate): Properly fixup EH info.
26017
26018 2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
26019
26020         * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
26021         tuning parameters.
26022         * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
26023
26024 2012-01-09  Richard Guenther  <rguenther@suse.de>
26025
26026         * tree-streamer-out.c (write_ts_optimization): Fix spelling.
26027
26028 2012-01-08  Jan Hubicka  <jh@suse.cz>
26029
26030         PR tree-optimize/51680
26031         * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
26032         on when known_vals needs to be computed; cleanup.
26033
26034 2012-01-08  Jan Hubicka  <jh@suse.cz>
26035
26036         PR tree-optimize/51694
26037         * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
26038
26039 2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
26040
26041         * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
26042         for -std=c++98 and -std=c++11 too.
26043
26044 2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
26045
26046         * cfgloop.c (cancel_loop): Add free() of bbs array.
26047
26048 2012-01-07  Jan Hubicka  <jh@suse.cz>
26049
26050         PR tree-optimization/51600
26051         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
26052         that benefits small functions.
26053
26054 2012-01-07  Jan Hubicka  <jh@suse.cz>
26055
26056         * ipa-inline.c (want_inline_small_function_p): Fix formating.
26057
26058 2012-01-07  Jan Hubicka  <jh@suse.cz>
26059
26060         PR tree-optimization/51680
26061         * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
26062         whose inlining reduce unit size.
26063
26064 2012-01-07  Alexandre Oliva  <aoliva@redhat.com>
26065
26066         PR bootstrap/51725
26067         * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
26068         Add canonical node to containing_mem chain after the non-canonical
26069         one, even if there weren't any locs to propagate.
26070         (remove_useless_values): Keep only canonical values.
26071         (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
26072         (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
26073         canonicalize mem_chain elements that are not discarded.
26074
26075 2012-01-06  Jakub Jelinek  <jakub@redhat.com>
26076
26077         PR target/47333
26078         * cgraphunit.c (cgraph_optimize): Call output_weakrefs
26079         before emitting functions.
26080
26081         PR gcov-profile/50127
26082         * bb-reorder.c (partition_hot_cold_basic_blocks): Call
26083         clear_aux_for_blocks.
26084
26085 2012-01-06  Alexandre Oliva  <aoliva@redhat.com>
26086
26087         PR debug/51746
26088         * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
26089
26090 2012-01-06  Arnaud Charlet  <charlet@adacore.com>
26091
26092         * c-decl.c (ext_block): Moved up.
26093         (collect_all_refs, for_each_global_decl): Take ext_block into account.
26094
26095 2012-01-06  Han Shen  <shenhan@google.com>
26096
26097         Translate built-in include paths for sysroot.
26098         * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
26099         (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
26100
26101         * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
26102         GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
26103
26104         * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
26105         control whether sysroot should be prepended to gxx include dir.
26106
26107         * configure: Regenerate.
26108
26109 2012-01-06  Torvald Riegel  <triegel@redhat.com>
26110
26111         PR rtl-optimization/51771
26112         * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
26113         * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
26114
26115 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
26116
26117         PR tree-optimization/51315
26118         * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
26119         (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
26120
26121 2012-01-05  Uros Bizjak  <ubizjak@gmail.com>
26122
26123         PR target/51681
26124         * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
26125         for shrp pattern.  Correctly handle and fixup shift variable.
26126         Return false when shift > nelt for BYTES_BIG_ENDIAN target.
26127
26128 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
26129
26130         PR debug/51762
26131         * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
26132         note when !ACCUMULATE_OUTGOING_ARGS.
26133
26134 2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>
26135
26136         * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
26137         condition.
26138         (extract_range_from_unary_expr_1): Avoid useless computations.
26139
26140 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
26141
26142         PR rtl-optimization/51767
26143         * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
26144         of jump_block and add an extra edge for degenerated asm gotos.
26145
26146         PR middle-end/51768
26147         * stmt.c (check_unique_operand_names): Don't ICE during error
26148         reporting if i is from labels chain.
26149
26150         PR middle-end/44777
26151         * profile.c (branch_prob): Split bbs that have exit edge
26152         and need a fake entry edge too.
26153
26154 2012-01-05  Jan Hubicka  <jh@suse.cz>
26155
26156         PR middle-end/49710
26157         * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
26158         unlooping loops.
26159
26160 2012-01-05  Richard Guenther  <rguenther@suse.de>
26161
26162         PR lto/50490
26163         * tree-streamer-out.c (write_ts_optimization): New function.
26164         (streamer_write_tree_body): Call it.
26165         * tree-streamer-in.c (lto_input_ts_optimization): New function.
26166         (streamer_read_tree_body): Call it.
26167         * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
26168
26169 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
26170
26171         PR middle-end/51761
26172         * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
26173         * gimplify.c (gimplify_cleanup_point_expr): Save and set
26174         in_cleanup_point_expr before gimplify_stmt call and restore it
26175         afterwards.
26176         (gimplify_target_expr): Don't add {CLOBBER} cleanup if
26177         in_cleanup_point_expr is false.
26178
26179 2012-01-05  Richard Guenther  <rguenther@suse.de>
26180
26181         PR middle-end/51764
26182         * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
26183         to c.opt.
26184         * toplev.c (process_options): Reject combining mudflap and LTO.
26185         * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
26186
26187 2012-01-05  Richard Guenther  <rguenther@suse.de>
26188
26189         PR tree-optimization/51760
26190         * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
26191         not VARYING.
26192         (bit_value_unop): Handle UNDEFINED operands.
26193         (bit_value_binop): Likewise.
26194
26195 2012-01-05  Georg-Johann Lay  <avr@gjlay.de>
26196
26197         * config/avr/avr.c (avr_replace_prefix): Remove.
26198         (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
26199         (avr_asm_function_rodata_section): Ditto.
26200         (avr_asm_select_section): Ditto.
26201
26202 2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
26203
26204         * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
26205         insertion.
26206
26207 2012-01-05  Jakub Jelinek  <jakub@redhat.com>
26208
26209         PR bootstrap/51648
26210         * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
26211         calls that have any non-fake successor edges.
26212
26213         PR debug/51746
26214         * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
26215
26216 2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>
26217
26218         PR tree-optimization/51624
26219         * tree-sra.c (build_ref_for_model): When replicating a chain of
26220         COMPONENT_REFs, stop as soon as the offset would become negative.
26221
26222 2012-01-04  Jakub Jelinek  <jakub@redhat.com>
26223
26224         PR debug/51695
26225         * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
26226         in .debug_loc on the floor.
26227
26228 2012-01-04  Andrew Pinski  <apinski@cavium.com>
26229
26230         * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
26231
26232 2012-01-04  Andrew Pinski  <apinski@cavium.com>
26233             Adam Nemet  <anemet@caviumnetworks.com>
26234
26235         * config/mips/mips.md (size): Add SI and DI.
26236         (SIZE): New mode attribute.
26237         (U): New code attribute.
26238         * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
26239         (mips_lbux_<mode>): Delete.
26240         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
26241         (mips_lhx): Use gen_mips_lhx_extsi.
26242         (mips_lhx_<mode>): Delete.
26243         (mips_lwx): Delete.
26244         (mips_l<size>x): New expand.
26245         (mips_lwx_<mode>): Delete.
26246         (mips_l<GPR:size>x_<P:mode>): New pattern.
26247         (*mips_lw<u>x_<P:mode>_ext): Likewise.
26248         * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
26249         * config/mips/mips.c (mips_lx_address_p): New function.
26250         (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
26251         (dsp64): New availability predicate.
26252         (mips_builtins): Add an entry for __builtin_mips_ldx.
26253         * config/mips/mips.h (ISA_HAS_LBX): New define.
26254         (ISA_HAS_LBUX): Likewise.
26255         (ISA_HAS_LHX): Likewise.
26256         (ISA_HAS_LHUX): Likewise.
26257         (ISA_HAS_LWX): Likewise.
26258         (ISA_HAS_LWUX): Likewise.
26259         (ISA_HAS_LDX): Likewise.
26260         * doc/extend.texi (__builtin_mips_ldx): Document.
26261
26262 2012-01-04  Tristan Gingold  <gingold@adacore.com>
26263
26264         * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
26265         when long pointers are used.
26266         * config.build (*-*-*vms*): Handle all OpenVMS targets.
26267         (alpha64-dec-*vms*, alpha*-dec-*vms*)
26268         (ia64-hp-*vms*): Remove.
26269         * config/vms/xm-vms64.h: Delete.
26270
26271 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
26272
26273         PR middle-end/51472
26274         * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
26275
26276 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
26277
26278         * opts.c (finish_options): Remove duplicate sorry.
26279
26280 2012-01-04  Aldy Hernandez  <aldyh@redhat.com>
26281
26282         PR middle-end/51696
26283         * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
26284         correctly.
26285
26286 2012-01-04  Richard Guenther  <rguenther@suse.de>
26287
26288         PR middle-end/51750
26289         * tree.c (size_low_cst): New function.
26290         * tree.h (size_low_cst): Declare.
26291         * fold-const.c (fold_comparison): Use it to extract the low
26292         part of the POINTER_PLUS_EXPR offset.
26293
26294 2012-01-04  Georg-Johann Lay  <avr@gjlay.de>
26295
26296         Fix clearing ZERO_REG
26297         * config/avr/avr.md (cc): Add alternative "ldi".
26298         (movqi_insn): Use it in cc attribute.
26299         * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
26300         (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
26301         (output_reload_insisf): Use ZERO_REG to pre-clear register.
26302
26303 2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26304
26305         * configure: Regenerate.
26306
26307 2012-01-04  Richard Guenther  <rguenther@suse.de>
26308
26309         PR tree-optimization/49651
26310         * tree-ssa-structalias.c (type_can_have_subvars): New function.
26311         (var_can_have_subvars): Use it.
26312         (get_constraint_for_1): Only consider subfields if there can be any.
26313
26314 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
26315
26316         PR bootstrap/51725
26317         * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
26318         to its new canonical_cselib_val and the cselib_val was in
26319         first_containing_mem chain, but the canonical_cselib_val was not,
26320         add the latter into the chain.
26321         (cselib_invalidate_mem): Compare canonical_cselib_val of
26322         addr_list chain elt with v.
26323
26324         PR pch/51722
26325         * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
26326         dwarf2out_undef): Allocate e.info using ggc_strdup instead
26327         of xstrdup.
26328         (output_macinfo_op): Don't ggc_strdup fd->filename.
26329         (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
26330         then ggc_strdup it.  Don't free inc->info or cur->info.
26331         (output_macinfo): Don't free ref->info or file->info.
26332
26333 2012-01-03  Ira Rosen  <irar@il.ibm.com>
26334
26335         PR tree-optimization/51269
26336         * tree-vect-loop-manip.c (set_prologue_iterations): Make
26337         first_niters a pointer.
26338         (slpeel_tree_peel_loop_to_edge): Likewise.
26339         (vect_do_peeling_for_loop_bound): Update call to
26340         slpeel_tree_peel_loop_to_edge.
26341         (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
26342         here.  Remove it from the parameters list.
26343         (vect_do_peeling_for_alignment): Update calls and compute
26344         wide_prolog_niters.
26345
26346 2012-01-03  Richard Guenther  <rguenther@suse.de>
26347
26348         PR tree-optimization/51070
26349         * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
26350         Properly handle calls.
26351
26352 2012-01-03  Richard Guenther  <rguenther@suse.de>
26353
26354         PR tree-optimization/51692
26355         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
26356         the LHS of allocation stmts.
26357
26358 2012-01-03  Olivier Hainque  <hainque@adacore.com>
26359
26360         * system.h: Prior to #define, #undef fopen and freopen unconditionally.
26361
26362 2012-01-03  Olivier Hainque  <hainque@adacore.com>
26363
26364         * collect2.c (main): In AIX specific computations for vector
26365         insertions, use CONST_CAST2 to cast from char ** to const char **.
26366
26367 2012-01-03  Richard Guenther  <rguenther@suse.de>
26368
26369         PR debug/51650
26370         * dwarf2out.c (dwarf2out_finish): Always create a DIE for
26371         the context of a limbo DIE when it does not already exist.
26372
26373 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
26374
26375         PR tree-optimization/51719
26376         * value-prof.c (gimple_ic): When indirect call isn't noreturn,
26377         but direct call is, clear direct call's lhs and don't add fallthrough
26378         edge from dcall_bb to join_bb and PHIs.
26379
26380 2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26381
26382         * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
26383         the instructions emitted by the pattern.
26384         ("*TDC_insn_<mode>"): Add comment.
26385
26386 2012-01-03  Richard Guenther  <rguenther@suse.de>
26387
26388         PR middle-end/51730
26389         * fold-const.c (fold_comparison): Properly canonicalize
26390         tree offset and HOST_WIDE_INT bit position.
26391
26392 2012-01-02  Uros Bizjak  <ubizjak@gmail.com>
26393
26394         * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
26395         operands for extzv pattern.
26396
26397 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
26398
26399         PR bootstrap/51725
26400         * cselib.c (add_mem_for_addr): Call canonical_cselib_val
26401         on mem_elt first.
26402
26403 2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>
26404
26405         * doc/invoke.texi (-flto and related options): Copy-edit.
26406
26407 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
26408
26409         * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
26410
26411 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
26412
26413         * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
26414         New patterns.
26415
26416 2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
26417
26418         * expr.h (move_by_pieces_ninsns): Declare.
26419         * expr.c (move_by_pieces_ninsns): Make external.
26420         * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
26421         (mips_store_by_pieces_p): Likewise.
26422         * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
26423         (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
26424         * config/mips/mips.c (mips_move_by_pieces_p): New function.
26425         (mips_store_by_pieces_p): Likewise.
26426
26427 2012-01-02  Jakub Jelinek  <jakub@redhat.com>
26428
26429         * passes.c (register_one_dump_file): Free full_name.
26430
26431         * reload1.c (reload): Don't allocate reg_max_ref_width here.
26432         (calculate_elim_costs_all_insns): Free offsets_at and
26433         offsets_known_at at the end and clear the pointers.
26434
26435 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
26436
26437         * config/avr/avr.opt (-mbranch-cost): Fix double definition of
26438         this option introduced in r180739.
26439
26440 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
26441
26442         PR target/51345
26443         * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
26444         (tmake_file target=avr): Add avr/t-multilib.
26445
26446         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
26447         to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
26448         * config/avr/genmultilib.awk: New file.
26449         * config/avr/t-multilib: New auto-generated file.
26450         * config/avr/multilib.h: New auto-generated file.
26451         * config/avr/t-avr (AVR_MCUS): New variable.
26452         (genopt.sh): Use it.
26453         (s-mlib): Depend on t-multilib.
26454         (t-multilib, multilib.h): New dependencies.
26455         (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
26456         (MULTILIB_OPTIONS): Remove.
26457         (MULTILIB_MATCHES): Remove.
26458         (MULTILIB_DIRNAMES): Remove.
26459         (MULTILIB_EXCEPTIONS): Remove:
26460         * config/avr/genopt.sh: Don't use hard coded file name;
26461         pass AVR_MCUS from t-avr instead.
26462
26463 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
26464
26465         * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
26466
26467 2012-01-02  Georg-Johann Lay  <avr@gjlay.de>
26468
26469         Implement light-weight DImode support.
26470         * config/avr/avr-dimode.md: New file.
26471         * config/avr/avr.md: Include it.
26472         (adjust_len): Add plus64, compare64.
26473         (HIDI): Remove code iterator.
26474         (code_stdname): New code attribute.
26475         (rotx, rotsmode): Remove DI.
26476         (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
26477         as code iterator.
26478         * config/avr/avr-protos.h (avr_have_dimode): New.
26479         (avr_out_plus64, avr_out_compare64): New.
26480         * config/avr/avr.c (avr_out_compare): Handle DImode.
26481         (avr_have_dimode): New variable definition and initialization.
26482         (avr_out_compare64, avr_out_plus64): New functions.
26483         (avr_out_plus_1): Use simplify_unary_operation to negate xval.
26484         (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
26485         (avr_compare_pattern): Skip DImode comparisons.
26486
26487 2012-01-02  Revital Eres  <revital.eres@linaro.org>
26488
26489         * ddg.c (def_has_ccmode_p): New function.
26490         (add_cross_iteration_register_deps,
26491         create_ddg_dep_from_intra_loop_link): Call it.
26492
26493 2012-01-02  Richard Guenther  <rguenther@suse.de>
26494
26495         PR other/51679
26496         * invoke.texi (fassociative-math): Remove spurious paranthesis.
26497
26498 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
26499
26500         * gcc.c (process_command): Update copyright notice dates.
26501         * gcov.c (print_version): Likewise.
26502         * gcov-dump.c (print_version): Likewise.
26503         * mips-tfile.c (main): Likewise.
26504         * mips-tdump.c (main): Likewise.
26505
26506 2012-01-01  Ira Rosen  <irar@il.ibm.com>
26507
26508         PR tree-optimization/51704
26509         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
26510         a use is inside the basic block or loop before accessing its vect info.
26511
26512 2012-01-01  Jan Hubicka  <jhjh@suse.cz>
26513
26514         PR rtl-optimization/51069
26515         * cfgloopmanip.c (remove_path): Removing path making irreducible
26516         region unconditional makes BB part of the region.
26517
26518 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
26519
26520         PR tree-optimization/51683
26521         * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
26522         calls with side-effects.
26523         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
26524 \f
26525 Copyright (C) 2012 Free Software Foundation, Inc.
26526
26527 Copying and distribution of this file, with or without modification,
26528 are permitted in any medium without royalty provided the copyright
26529 notice and this notice are preserved.