platform/upstream/linaro-gcc.git
11 years agoAvoid non constant memory model uses in libatomic
ak [Sun, 24 Mar 2013 00:23:10 +0000 (00:23 +0000)]
Avoid non constant memory model uses in libatomic

x86 ends up using non constant memory models for some of the libatomic
functions. These all end up as __ATOMIC_SEQ_CST. Just use this
directly. This avoids a new warning for non constant memory
models, which broke the bootstrap with -Werror

Passed bootstrap and test on x86_64-linux.

libatomic/:

2013-03-23  Andi Kleen  <ak@linux.intel.com>

* gcas.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.
* gexch.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.
* gload.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.
* gstore.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.

diff --git a/libatomic/gcas.c b/libatomic/gcas.c
index edbf611..e3d77f3 100644
--- a/libatomic/gcas.c
+++ b/libatomic/gcas.c
@@ -32,7 +32,7 @@
 # define EXACT_INLINE(N) \
   if (C2(HAVE_ATOMIC_CAS_,N)) \
     return __atomic_compare_exchange_n \
-      (PTR(N,mptr), PTR(N,eptr), *PTR(N,dptr), false, smodel, fmodel)
+      (PTR(N,mptr), PTR(N,eptr), *PTR(N,dptr), false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
 #else
 # define EXACT_INLINE(N)
 #endif
diff --git a/libatomic/gexch.c b/libatomic/gexch.c
index 1999067..c8c8658 100644
--- a/libatomic/gexch.c
+++ b/libatomic/gexch.c
@@ -33,7 +33,7 @@
   if (C2(HAVE_ATOMIC_EXCHANGE_,N)) \
     { \
       *PTR(N,rptr) = __atomic_exchange_n \
- (PTR(N,mptr), *PTR(N,vptr), smodel); \
+ (PTR(N,mptr), *PTR(N,vptr), __ATOMIC_SEQ_CST); \
       return; \
     }
 #else
diff --git a/libatomic/gload.c b/libatomic/gload.c
index df318d5..85865bd 100644
--- a/libatomic/gload.c
+++ b/libatomic/gload.c
@@ -32,7 +32,7 @@
 # define EXACT_INLINE(N, DEST, SRC, DONE) \
   if (C2(HAVE_ATOMIC_LDST_,N)) \
     { \
-      DEST = __atomic_load_n (SRC, smodel); \
+      DEST = __atomic_load_n (SRC, __ATOMIC_SEQ_CST); \
       DONE; \
     }
 #else
diff --git a/libatomic/gstore.c b/libatomic/gstore.c
index d571e58..84f9a8d 100644
--- a/libatomic/gstore.c
+++ b/libatomic/gstore.c
@@ -32,7 +32,7 @@
 # define EXACT_INLINE(N) \
   if (C2(HAVE_ATOMIC_LDST_,N)) \
     { \
-      __atomic_store_n (PTR(N,mptr), *PTR(N,vptr), smodel); \
+      __atomic_store_n (PTR(N,mptr), *PTR(N,vptr), __ATOMIC_SEQ_CST); \
       return; \
     }
 #else

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197017 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Sun, 24 Mar 2013 00:16:47 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197016 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
steven [Sat, 23 Mar 2013 21:41:38 +0000 (21:41 +0000)]
* gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
(record_last_mem_set_info): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197012 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
steven [Sat, 23 Mar 2013 21:40:20 +0000 (21:40 +0000)]
* df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
of XNEWVEC followed by memset.
(df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197011 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
joel [Sat, 23 Mar 2013 15:34:49 +0000 (15:34 +0000)]
2013-03-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>

* gcc.c-torture/execute/builtins/builtins.exp: Sort targets
alphabetically.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197007 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
steven [Sat, 23 Mar 2013 12:11:10 +0000 (12:11 +0000)]
* config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
BARRIER_P instead of GET_CODE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197005 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
ebotcazou [Sat, 23 Mar 2013 11:32:40 +0000 (11:32 +0000)]
* config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
inaccuracy in the probing code.

* config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
(ctrapdi4): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197004 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * calls.c (expand_call): Add missing guard to code handling return
ebotcazou [Sat, 23 Mar 2013 11:13:39 +0000 (11:13 +0000)]
* calls.c (expand_call): Add missing guard to code handling return
of non-BLKmode structures in MSB.
* function.c (expand_function_end): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197003 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * combine.c (try_combine): Adjust comment. Do not add the set of
ebotcazou [Sat, 23 Mar 2013 11:06:21 +0000 (11:06 +0000)]
* combine.c (try_combine): Adjust comment.  Do not add the set of
insn #0 if the destination indirectly is set or dies in insn #2.
Tidy up code to distribute a new note.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197002 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Sat, 23 Mar 2013 00:16:24 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196989 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR c++/56684
jason [Fri, 22 Mar 2013 20:24:17 +0000 (20:24 +0000)]
PR c++/56684
* pt.c (instantiation_dependent_r): Check DECL_INITIAL of VAR_DECL
and CONST_DECL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196983 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
uros [Fri, 22 Mar 2013 19:15:41 +0000 (19:15 +0000)]
* config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
also for alternatives 16 and 17.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196982 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/sse.md (*mov<mode>_internal): Merge with
uros [Fri, 22 Mar 2013 18:40:13 +0000 (18:40 +0000)]
* config/i386/sse.md (*mov<mode>_internal): Merge with
*mov<mode>_internal_rex64.  Use x64 and nox64 isa attributes.
Emit insn template depending on type attribute.  Use
HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
movd instead of movq mnemonic for interunit moves.  Rewrite mode
attribute calculation.  Remove unit attribute calculation.
Set prefix attribute to maybe_vex for sselog1 and ssemov types.
Set prefix_data16 attribute for DImode ssemov types.
Use Ym instead of y for SSE-MMX conversion alternatives.
Reorder operand constraints.

testsuite/ChangeLog:

* gcc.target/i386/pr22152.c (dg-options): Add -mtune=core2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196981 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * df.h (df_insn_delete): Adjust prototype.
steven [Fri, 22 Mar 2013 16:37:24 +0000 (16:37 +0000)]
* df.h (df_insn_delete): Adjust prototype.
* emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
and let it decide whether mark the basic block dirty.
(set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
* df-scan.c (df_insn_info_delete): New helper function, split
off from df_insn_delete.
(df_scan_free_bb_info): Use it.
(df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
Likewise.
(df_insn_delete): Likewise.  Take insn rtx as argument.  Verify
that the insn is actually an insn and it has a non-NULL basic block.
Do not mark basic block dirty if only deleting a DEBUG_INSN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196978 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * df.h (df_insn_delete): Adjust prototype.
steven [Fri, 22 Mar 2013 16:37:00 +0000 (16:37 +0000)]
* df.h (df_insn_delete): Adjust prototype.
* emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
and let it decide whether mark the basic block dirty.
(set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
* df-scan.c (df_insn_info_delete): New helper function, split
off from df_insn_delete.
(df_scan_free_bb_info): Use it.
(df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
Likewise.
(df_insn_delete): Likewise.  Take insn rtx as argument.  Verify
that the insn is actually an insn and it has a non-NULL basic block.
Do not mark basic block dirty if only deleting a DEBUG_INSN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196977 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
joel [Fri, 22 Mar 2013 15:45:10 +0000 (15:45 +0000)]
2013-03-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>

PR testsuite/55994
* gcc.c-torture/execute/builtins/builtins.exp: Add
-Wl,--allow-multiple-definition for RTEMS targets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196970 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoFix up ChangeLog entry date.
jakub [Fri, 22 Mar 2013 14:17:24 +0000 (14:17 +0000)]
Fix up ChangeLog entry date.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196965 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR other/43620
jakub [Fri, 22 Mar 2013 14:14:42 +0000 (14:14 +0000)]
PR other/43620
* configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
* Makefile.in: Regenerated.
* asan/Makefile.in: Regenerated.
* interception/Makefile.in: Regenerated.
* sanitizer_common/Makefile.in: Regenerated.
* tsan/Makefile.in: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196964 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Mar 2013 13:07:20 +0000 (13:07 +0000)]
2013-03-22  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
dep_ref members.
(mem_ref_alloc): Do not allocate them.
(refs_independent_p): Do not query or maintain a cache.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196961 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Mar 2013 13:06:33 +0000 (13:06 +0000)]
2013-03-22  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
(gather_mem_refs_in_loops): Do not compute it.
(analyze_memory_references): Do not allocate it.
(tree_ssa_lim_finalize): Do not free it.
(for_all_locs_in_loop): Do not query all_refs_in_loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196960 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Mar 2013 13:01:42 +0000 (13:01 +0000)]
2013-03-22  Richard Biener  <rguenther@suse.de>

* is-a.h (as_a): Use gcc_checking_assert.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196959 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAArch64 MOVK fix to operand 2
ibolton [Fri, 22 Mar 2013 12:07:20 +0000 (12:07 +0000)]
AArch64 MOVK fix to operand 2

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196958 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoTestcases that should have been committed with previous patch commits
ibolton [Fri, 22 Mar 2013 12:06:10 +0000 (12:06 +0000)]
Testcases that should have been committed with previous patch commits

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196957 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Mar 2013 11:22:14 +0000 (11:22 +0000)]
2013-03-22  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
bitmaps.
(gather_mem_refs_in_loops): Perform store accumulation here.
(create_vop_ref_mapping_loop): Remove.
(create_vop_ref_mapping): Likewise.
(analyze_memory_references): Initialize refs_stored_in_loop.
(LOOP_DEP_BIT): New define to map to bits in (in)dep_loop
bitmaps.
(record_indep_loop): Remove.
(record_dep_loop): New function.
(ref_indep_loop_p_1): Adjust to only walk over references
in the loop, not its subloops.
(ref_indep_loop_p): Rename to ...
(ref_indep_loop_p_2): ... this and recurse over the loop tree,
maintaining a more fine-grained cache.
(ref_indep_loop_p): Wrap ref_indep_loop_p_2.
(tree_ssa_lim_finalize): Free refs_stored_in_loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196956 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-22 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Fri, 22 Mar 2013 10:44:42 +0000 (10:44 +0000)]
2013-03-22  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/56678
* include/std/chrono (__is_ratio): Uglify T.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196954 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * gennews (files): Add files for GCC 4.8.
jakub [Fri, 22 Mar 2013 09:47:51 +0000 (09:47 +0000)]
* gennews (files): Add files for GCC 4.8.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196902 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * lang.c (put_decl_node): Don't iterate over end_params_node.
ktietz [Fri, 22 Mar 2013 09:40:39 +0000 (09:40 +0000)]
* lang.c (put_decl_node): Don't iterate over end_params_node.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196901 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * src/x86/win64.S: Make use of ffi_closure_win64_inner
ktietz [Fri, 22 Mar 2013 09:38:55 +0000 (09:38 +0000)]
* src/x86/win64.S: Make use of ffi_closure_win64_inner
symbol pc-relative.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196900 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-22 Richard Biener <rguenther@suse.de>
rguenth [Fri, 22 Mar 2013 09:12:46 +0000 (09:12 +0000)]
2013-03-22  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
(struct mem_ref): Make accesses_in_loop a vec of a vec of
aggregate mem_ref_loc.
(free_mem_ref_locs): Inline into ...
(memref_free): ... this and adjust.
(mem_ref_alloc): Adjust.
(mem_ref_locs_alloc): Remove.
(record_mem_ref_loc): Adjust.
(get_all_locs_in_loop): Rewrite into ...
(for_all_locs_in_loop): ... this iterator.
(rewrite_mem_ref_loc): New functor.
(rewrite_mem_refs): Use for_all_locs_in_loop.
(sm_set_flag_if_changed): New functor.
(execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
(ref_always_accessed): New functor.
(ref_always_accessed_p): Use for_all_locs_in_loop.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196899 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * cp-tree.h (identifier_p): New.
gdr [Fri, 22 Mar 2013 03:55:51 +0000 (03:55 +0000)]
* cp-tree.h (identifier_p): New.
* call.c: Throughout, call identifier_p insstead of direct
comparaison of TREE_CODE against IDENTIFIER_NODE.
* decl.c: Likewisse.
* decl2.c: Likewise.
* init.c: Likewise.
* mangle.c: Likewise.
* name-lookup.c: Likewise.
* parser.c: Likewise.
* pt.c: Likewise.
* search.c: Likewise.
* semantics.c: Likewise.
* tree.c: Likewise.
* typeck.c: Likewise.
* typeck2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196897 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Fri, 22 Mar 2013 00:16:47 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196896 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Marc Glisse <marc.glisse@inria.fr>
glisse [Thu, 21 Mar 2013 21:11:56 +0000 (21:11 +0000)]
2013-03-21  Marc Glisse  <marc.glisse@inria.fr>

* tree-pass.h (PROP_gimple_lvec): New.
* passes.c (dump_properties): Handle PROP_gimple_lvec.
(init_optimization_passes): Move pass_lower_vector.
* tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
PROP_gimple_lvec.
(pass_lower_vector): Provide PROP_gimple_lvec.
(pass_lower_vector_ssa): Likewise.
* cfgexpand.c (pass_expand): Require PROP_gimple_lvec.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196890 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agodwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
mark [Thu, 21 Mar 2013 20:51:52 +0000 (20:51 +0000)]
dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196889 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386.md (*movdi_internal): Disparage slightly
uros [Thu, 21 Mar 2013 20:22:12 +0000 (20:22 +0000)]
* config/i386/i386.md (*movdi_internal): Disparage slightly
all MMX moves to/from memory.  Use Yi instead of x for SSE-MMX
conversion alternatives.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196888 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR middle-end/48087
jakub [Thu, 21 Mar 2013 17:36:47 +0000 (17:36 +0000)]
PR middle-end/48087
* diagnostic.def (DK_WERROR): New kind.
* diagnostic.h (werrorcount): Define.
* diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
promoted to DK_ERROR, increment DK_WERROR counter instead of
DK_ERROR counter.
* toplev.c (toplev_main): Call print_ignored_options even if
just werrorcount is non-zero.  Exit with FATAL_EXIT_CODE
even if just werrorcount is non-zero.

* pt.c (convert_nontype_argument): Count werrorcount as warnings.
* call.c (build_temp): Likewise.
* method.c (synthesize_method): Likewise.
* typeck.c (convert_for_initialization): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196887 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR debug/55608
jakub [Thu, 21 Mar 2013 17:35:39 +0000 (17:35 +0000)]
PR debug/55608
* dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
on failure.
(resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
(string_cst_pool_decl): New function.
(optimize_one_addr_into_implicit_ptr): New function.
(resolve_addr_in_expr): Optimize DWARF location expression
DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
which doesn't live in memory, but has DW_AT_location or
DW_AT_const_value, or refers to a string literal, into
DW_OP_GNU_implicit_pointer.
(optimize_location_into_implicit_ptr): New function.
(resolve_addr): If removing DW_AT_location of a variable because
it was DW_OP_addr of address of the variable, but the variable doesn't
live in memory, try to emit const value attribute for the initializer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196886 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agocorrect changelog
jason [Thu, 21 Mar 2013 17:29:17 +0000 (17:29 +0000)]
correct changelog

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196885 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Marc Glisse <marc.glisse@inria.fr>
glisse [Thu, 21 Mar 2013 16:33:33 +0000 (16:33 +0000)]
2013-03-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* tree.h (VECTOR_TYPE_P): New macro.
(VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
TYPE_MODE): Use it.
* fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
VEC_COND_EXPR cannot be lvalues.
(fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.

gcc/cp/
* call.c (build_conditional_expr_1): Fold VEC_COND_EXPR.

gcc/testsuite/
* g++.dg/ext/vector21.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196884 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Marc Glisse <marc.glisse@inria.fr>
glisse [Thu, 21 Mar 2013 15:22:09 +0000 (15:22 +0000)]
2013-03-21  Marc Glisse  <marc.glisse@inria.fr>

* simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
Restrict the transformation to equal modes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196882 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAdd forgotten ChangeLog line.
clyon [Thu, 21 Mar 2013 14:48:07 +0000 (14:48 +0000)]
Add forgotten ChangeLog line.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196879 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Mar 2013 14:45:36 +0000 (14:45 +0000)]
2013-03-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/39326
* tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
(MEM_ANALYZABLE): Adjust.
(record_mem_ref_loc): Move bitmap ops ...
(gather_mem_refs_stmt): ... here.  Use the shared mem-ref for
unanalyzable refs, do not record locations for it.
(analyze_memory_references): Allocate ref zero as shared
unanalyzable ref.
(refs_independent_p): Do not test for unanalyzed mems here.
(ref_indep_loop_p_1): Special-case disambiguation against
the unanalyzed ref.
(ref_indep_loop_p): Assert we are not queried for the
unanalyzed mem.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196878 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago[ARM] Turning off 64bits ops in Neon
clyon [Thu, 21 Mar 2013 14:26:23 +0000 (14:26 +0000)]
[ARM] Turning off 64bits ops in Neon

2013-03-21  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
* config/arm/arm-protos.h (tune_params): Add
prefer_neon_for_64bits field.
* config/arm/arm.c (prefer_neon_for_64bits): New variable.
(arm_slowmul_tune): Default prefer_neon_for_64bits to false.
(arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
(arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
(arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
(arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
(arm_option_override): Handle -mneon-for-64bits new option.
* config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
(prefer_neon_for_64bits): Declare new variable.
* config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and
nota8.
(arch_enabled): Handle new arch types. Remove support for onlya8
and nota8.
(one_cmpldi2): Use new arch names.
* config/arm/arm.opt (mneon-for-64bits): Add option.
* config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
(anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
of onlya8.
* doc/invoke.texi (-mneon-for-64bits): Document.

gcc/testsuite:
* gcc.target/arm/neon-for-64bits-1.c: New tests.
* gcc.target/arm/neon-for-64bits-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196876 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Mar 2013 13:53:01 +0000 (13:53 +0000)]
2013-03-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/39326
* tree-ssa-loop-im.c (bb_loop_postorder): New global static.
(sort_bbs_in_loop_postorder_cmp): New function.
(gather_mem_refs_in_loops): Assign mem-ref IDs in loop
postorder.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196874 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Mar 2013 12:45:04 +0000 (12:45 +0000)]
2013-03-21  Richard Biener  <rguenther@suse.de>

* tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
(vect_insert_into_interleaving_chain): Likewise.
(vect_drs_dependent_in_basic_block): Inline ...
(vect_slp_analyze_data_ref_dependence): ... here.  New function,
split out from ...
(vect_analyze_data_ref_dependence): ... here.  Simplify.
(vect_check_interleaving): Simplify.
(vect_analyze_data_ref_dependences): Likewise.  Split out ...
(vect_slp_analyze_data_ref_dependences): ... this new function.
(dr_group_sort_cmp): New function.
(vect_analyze_data_ref_accesses): Compute data-reference groups
here instead of in vect_analyze_data_ref_dependence.  Use
a more efficient algorithm.
* tree-vect-slp.c (vect_slp_analyze_bb_1): Use
vect_slp_analyze_data_ref_dependences.  Call
vect_analyze_data_ref_accesses earlier.
* tree-vect-loop.c (vect_analyze_loop_2): Likewise.
* tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
(vect_slp_analyze_data_ref_dependences): New prototype.

* gcc.dg/vect/vect-outer-3a-big-array.c: Adjust.
* gcc.dg/vect/vect-outer-3a.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196872 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * ChangeLog: Fix whitespace.
uros [Thu, 21 Mar 2013 12:37:23 +0000 (12:37 +0000)]
* ChangeLog: Fix whitespace.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196871 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Mar 2013 12:35:03 +0000 (12:35 +0000)]
2013-03-21  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
ref is stored in the loop.
(find_refs_for_sm): Walk only over all stores.
(store_motion_loop): Allocate from lim_bitmap_obstack.
(store_motion): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196870 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Mar 2013 12:32:06 +0000 (12:32 +0000)]
2013-03-21  Richard Biener  <rguenther@suse.de>

* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
Update virtual SSA form.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196868 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDefault to DWARF 4 on Solaris if linker supports CIEv3
ro [Thu, 21 Mar 2013 11:57:35 +0000 (11:57 +0000)]
Default to DWARF 4 on Solaris if linker supports CIEv3

* configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
* configure: Regenerate.
* config.in: Regenerate.
* config/sol2.c (solaris_override_options): Only enforce DWARF 2
if !HAVE_LD_EH_FRAME_CIEV3.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196866 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Mar 2013 11:54:27 +0000 (11:54 +0000)]
2013-03-21  Richard Biener  <rguenther@suse.de>

* tree-cfg.c (verify_expr_no_block): New function.
(verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
nor DECL_VALUE_EXPR have locations with associated blocks.
* tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
(clear_unused_block_pointer): Remove code dealing with
blocks in DECL_DEBUG_EXPR locations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196865 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Richard Biener <rguenther@suse.de>
rguenth [Thu, 21 Mar 2013 11:53:39 +0000 (11:53 +0000)]
2013-03-21  Richard Biener  <rguenther@suse.de>

* tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
(DECL_HAS_DEBUG_EXPR_P): ... this.  Guard properly.
* tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
* dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
instead of DECL_DEBUG_EXPR_IS_FROM.
* gimplify.c (gimplify_modify_expr): Likewise.
* tree-cfg.c (verify_expr_location_1): Likewise.
* tree-complex.c (create_one_component_var): Likewise.
* tree-sra.c (create_access_replacement): Likewise.
* tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
(clear_unused_block_pointer): Likewise.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
* var-tracking.c (var_debug_decl): Likewise.
(track_expr_p): Likewise.
* tree-inline.c (add_local_variables): Likewise.  Set
DECL_HAS_DEBUG_EXPR_P after copying it.
* tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.

c/
* c-objc-common.c (c_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.

cp/
* error.c (cp_printer): Use DECL_HAS_DEBUG_EXPR_P instead of
DECL_DEBUG_EXPR_IS_FROM.  Guard properly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196864 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR bootstrap/56656
uros [Thu, 21 Mar 2013 09:31:52 +0000 (09:31 +0000)]
PR bootstrap/56656
* configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
* configure: Regenerate.
* config.in: Regenerate.
* config/i386/i386.md (*movdf_internal): Use
HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
movd instead of movq mnemonic for interunit moves.
(*movdi_internal): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196861 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoRemove svn:mergeinfo properties on trunk.
jakub [Thu, 21 Mar 2013 08:13:04 +0000 (08:13 +0000)]
Remove svn:mergeinfo properties on trunk.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196860 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
naveenh [Thu, 21 Mar 2013 07:47:12 +0000 (07:47 +0000)]
2013-03-21   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
(abd<mode>_3): New pattern.
(aba<mode>_3): New pattern.
(fabd<mode>_3): New pattern.

2013-03-21   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* gcc.target/aarch64/vect.c: Test and result vector added
for sabd and saba instructions.
* gcc.target/aarch64/vect-compile.c: Check for sabd and saba
instructions in assembly.
* gcc.target/aarch64/vect.x: Add sabd and saba test functions.
* gcc.target/aarch64/vect-fp.c: Test and result vector added
for fabd instruction.
* gcc.target/aarch64/vect-fp-compile.c: Check for fabd
instruction in assembly.
* gcc.target/aarch64/vect-fp.x: Add fabd test function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196858 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
naveenh [Thu, 21 Mar 2013 07:08:59 +0000 (07:08 +0000)]
2013-03-21   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
* config/aarch64/aarch64.c (aarch64_print_operand): Remove all
occurrence of REGISTER_PREFIX as its empty string.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196856 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
law [Thu, 21 Mar 2013 04:42:40 +0000 (04:42 +0000)]
* tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
addititional equivalences for equality comparisons between an SSA_NAME
and a constant where the SSA_NAME was set from a widening conversion.

* g++.dg/tree-ssa/ssa-dom.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196855 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR c++/56646
jason [Thu, 21 Mar 2013 03:25:42 +0000 (03:25 +0000)]
PR c++/56646
* parser.c (cp_parser_late_return_type_opt): Save and restore
current_class_ptr/ref.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196853 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR c++/54532
jason [Thu, 21 Mar 2013 03:25:35 +0000 (03:25 +0000)]
PR c++/54532
* expr.c (cplus_expand_constant): Do nothing if the class is
incomplete.
* semantics.c (reduced_constant_expression_p): Allow PTRMEM_CST.
* typeck2.c (store_init_value): Use reduced_constant_expression_p.
* decl.c (maybe_register_incomplete_var): Handle PTRMEM_CST.
(complete_vars): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196852 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * name-lookup.c (get_anonymous_namespace_name): Never use
jason [Thu, 21 Mar 2013 03:25:29 +0000 (03:25 +0000)]
* name-lookup.c (get_anonymous_namespace_name): Never use
get_file_function_name.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196851 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * pt.c (retrieve_specialization): Handle null tmpl argument.
jason [Thu, 21 Mar 2013 03:25:23 +0000 (03:25 +0000)]
* pt.c (retrieve_specialization): Handle null tmpl argument.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196850 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR c++/17232
jason [Thu, 21 Mar 2013 03:25:16 +0000 (03:25 +0000)]
PR c++/17232
PR c++/56642
* pt.c (tsubst_decl): Check return value of register_specialization.
* typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type
change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196849 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAdd an atomic test and set pattern on tilegx.
walt [Thu, 21 Mar 2013 02:08:26 +0000 (02:08 +0000)]
Add an atomic test and set pattern on tilegx.

      * config/tilegx/sync.md (atomic_test_and_set): New pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196848 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Thu, 21 Mar 2013 00:16:48 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196847 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Robert Mason <rbmj@verizon.net>
mkuvyrkov [Wed, 20 Mar 2013 22:01:25 +0000 (22:01 +0000)]
2013-03-20  Robert Mason  <rbmj@verizon.net>

* config/vxlib-tls.c (__gthread_get_tsd_data,)
(__gthread_set_tsd_data, __gthread_enter_tsd_dtor_context,)
(__gthread_leave_tsd_dtor_context): Add prototypes.
(tls_delete_hook): Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196842 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386.md (*movoi_internal_avx): Emit insn template
uros [Wed, 20 Mar 2013 19:54:47 +0000 (19:54 +0000)]
* config/i386/i386.md (*movoi_internal_avx): Emit insn template
depending on type attribute.
(*movti_internal): Ditto.
(*movtf_internal): Ditto.
(*movxf_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196841 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386.md (*movti_internal): Set prefix attribute to
uros [Wed, 20 Mar 2013 16:49:06 +0000 (16:49 +0000)]
* config/i386/i386.md (*movti_internal): Set prefix attribute to
maybe_vex for sselog1 and ssemov types.
(*movdi_internal): Reorder operand constraints.
(*movsi_internal): Ditto.  Set prefix attribute to
maybe_vex for sselog1 and ssemov types.
(*movtf_internal): Set prefix attribute to maybe_vex
for sselog1 and ssemov types.
(*movdf_internal): Ditto.  Set prefix_data16 attribute for
DImode ssemov types.  Reorder operand constraints.
(*movsf_internal): Set type of alternatives 3,4 to imov.  Set prefix
attribute to maybe_vex for sselog1 and ssemov types.  Set prefix_data16
attribute for SImode ssemov types.  Reorder operand constraints.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196834 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Martin Jambor <mjambor@suse.cz>
jamborm [Wed, 20 Mar 2013 16:20:22 +0000 (16:20 +0000)]
2013-03-20  Martin Jambor  <mjambor@suse.cz>

* params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
* ipa-cp.c (hint_time_bonus): Add abonus for known array indices.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196832 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago[gcc]
meissner [Wed, 20 Mar 2013 15:50:27 +0000 (15:50 +0000)]
[gcc]
2013-03-20  Pat Haugen <pthaugen@us.ibm.com>

* config/rs6000/predicates.md (indexed_address, update_address_mem
update_indexed_address_mem): New predicates.
* config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
attribute for load/store instructions.
* config/rs6000/dfp.md (movsd_store): Likewise.
(movsd_load): Likewise.
* config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
(unnamed HI->DI extend define_insn): Likewise.
(unnamed SI->DI extend define_insn): Likewise.
(unnamed QI->SI extend define_insn): Likewise.
(unnamed QI->HI extend define_insn): Likewise.
(unnamed HI->SI extend define_insn): Likewise.
(unnamed HI->SI extend define_insn): Likewise.
(extendsfdf2_fpr): Likewise.
(movsi_internal1): Likewise.
(movsi_internal1_single): Likewise.
(movhi_internal): Likewise.
(movqi_internal): Likewise.
(movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
attribute for load/store instructions.
(mov<mode>_hardfloat): Set correct "type" attribute for load/store
instructions.
(mov<mode>_softfloat): Likewise.
(mov<mode>_hardfloat32): Likewise.
(mov<mode>_hardfloat64): Likewise.
(mov<mode>_softfloat64): Likewise.
(movdi_internal32): Likewise.
(movdi_internal64): Likewise.
(probe_stack_<mode>): Likewise.

2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
floating point, and decimal floating point to reload iterator.

* config/rs6000/constraints.md (wl constraint): New constraints to
return FLOAT_REGS if certain options are used to reduce the number
of separate patterns that exist in the file.
(wx constraint): Likewise.
(wz constraint): Likewise.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
-mdebug=reg, print wg, wl, wx, and wz constraints.
(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
Initialize the reload functions for 64-bit binary/decimal floating
point types.
(reg_offset_addressing_ok_p): If we are on a power7 or later, use
LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
create the buffer on the stack to overcome not having a 32-bit
load and store.
(rs6000_emit_move): Likewise.
(rs6000_secondary_memory_needed_rtx): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
via xxlxor, just like DFmode 0.0.

* config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
define as 1 if we are running on a power7 or newer.
(enum r6000_reg_class_enum): Add new constraints.

* config/rs6000/dfp.md (movsd): Delete, combine with binary
floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
with other moves by using conditional constraits (wg).  Use LFIWZX
and STFIWX for loading SDmode on power7.  Use xxlxor to create
0.0f.
(movsd splitter): Likewise.
(movsd_hardfloat): Likewise.
(movsd_softfloat): Likewise.

* config/rs6000/rs6000.md (FMOVE32): New iterators to combine
binary and decimal floating point moves.
(fmove_ok): New attributes to combine binary and decimal floating
point moves, and to combine power6x (mfpgpr) moves along normal
floating moves.
(real_value_to_target): Likewise.
(f32_lr): Likewise.
(f32_lm): Likewise.
(f32_li): Likewise.
(f32_sr): Likewise.
(f32_sm): Likewise.
(f32_si): Likewise.
(movsf): Combine binary and decimal floating point moves.  Combine
power6x (mfpgpr) moves with other moves by using conditional
constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on
power7.
(mov<mode> for SFmode/SDmode); Likewise.
(SFmode/SDmode splitters): Likewise.
(movsf_hardfloat): Likewise.
(mov<mode>_hardfloat for SFmode/SDmode): Likewise.
(movsf_softfloat): Likewise.
(mov<mode>_softfloat for SFmode/SDmode): Likewise.

* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
wx and wz constraints.

* config/rs6000/constraints.md (wg constraint): New constraint to
return FLOAT_REGS if -mmfpgpr (power6x) was used.

* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
constraint.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
-mdebug=reg, print wg, wl, wx, and wz constraints.
(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
Initialize the reload functions for 64-bit binary/decimal floating
point types.
(reg_offset_addressing_ok_p): If we are on a power7 or later, use
LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
create the buffer on the stack to overcome not having a 32-bit
load and store.
(rs6000_emit_move): Likewise.
(rs6000_secondary_memory_needed_rtx): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
via xxlxor, just like DFmode 0.0.

* config/rs6000/dfp.md (movdd): Delete, combine with binary
floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
with other moves by using conditional constraits (wg).  Use LFIWZX
and STFIWX for loading SDmode on power7.
(movdd splitters): Likewise.
(movdd_hardfloat32): Likewise.
(movdd_softfloat32): Likewise.
(movdd_hardfloat64_mfpgpr): Likewise.
(movdd_hardfloat64): Likewise.
(movdd_softfloat64): Likewise.

* config/rs6000/rs6000.md (FMOVE64): New iterators to combine
64-bit binary and decimal floating point moves.
(FMOVE64X): Likewise.
(movdf): Combine 64-bit binary and decimal floating point moves.
Combine power6x (mfpgpr) moves with other moves by using
conditional constraits (wg).
(mov<mode> for DFmode/DDmode): Likewise.
(DFmode/DDmode splitters): Likewise.
(movdf_hardfloat32): Likewise.
(mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
(movdf_softfloat32): Likewise.
(movdf_hardfloat64_mfpgpr): Likewise.
(movdf_hardfloat64): Likewise.
(mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
(movdf_softfloat64): Likewise.
(mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
(reload_<mode>_load): Move to later in the file so they aren't in
the middle of the floating point move insns.
(reload_<mode>_store): Likewise.

* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
constraint.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
constraint if -mdebug=reg.
(rs6000_initi_hard_regno_mode_ok): Enable wg constraint if
-mfpgpr.  Enable using dd reload support if needed.

* config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
binary and decimal floating point moves in rs6000.md.
(movtd_internal): Likewise.

* config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
decimal floating point moves.
(movtf): Likewise.
(movtf_internal): Likewise.
(mov<mode>_internal, TDmode/TFmode): Likewise.
(movtf_softfloat): Likewise.
(mov<mode>_softfloat, TDmode/TFmode): Likewise.

* config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
movdi_internal64, using wg constraint for move direct operations.
(movdi_internal64): Likewise.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
MODES_TIEABLE_P for selected modes.  Print the numerical value of
the various virtual registers. Use GPR/FPR first/last values,
instead of hard coding the register numbers.  Print which modes
have reload functions registered.
(rs6000_option_override_internal): If -mdebug=reg, trace the
options settings before/after setting cpu, target and subtarget
settings.
(rs6000_secondary_reload_trace): Improve the RTL dump for
-mdebug=addr and for secondary reload failures in
rs6000_secondary_reload_inner.
(rs6000_secondary_reload_fail): Likewise.
(rs6000_secondary_reload_inner): Likewise.

* config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
macros for first/last GPR and FPR registers.
(LAST_GPR_REGNO): Likewise.
(FIRST_FPR_REGNO): Likewise.
(LAST_FPR_REGNO): Likewise.

* config/rs6000/vector.md (mul<mode>3): Use the combined macro
VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
(vcond<mode><mode>): Likewise.
(vcondu<mode><mode>): Likewise.
(vector_gtu<mode>): Likewise.
(vector_gte<mode>): Likewise.
(xor<mode>3): Don't allow logical operations on TImode in 32-bit
to prevent the compiler from converting DImode operations to
TImode.
(ior<mode>3): Likewise.
(and<mode>3): Likewise.
(one_cmpl<mode>2): Likewise.
(nor<mode>3): Likewise.
(andc<mode>3): Likewise.

* config/rs6000/constraints.md (wt constraint): New constraint
that returns VSX_REGS if TImode is allowed in VSX registers.

* config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
constant under VSX.

* config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
similar to TImode, but it is restricted to being in the GPRs.

* config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
TImode to occupy a single VSX register.

* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
-mvsx-timode for power7/power8.
(power7 cpu): Likewise.
(power8 cpu): Likewise.

* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
sure that TFmode/TDmode take up two registers if they are ever
allowed in the upper VSX registers.
(rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
registers.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_debug_reg_global): Add debugging for PTImode and wt
constraint.  Print if LRA is turned on.
(rs6000_option_override_internal): Give an error if -mvsx-timode
and VSX is not enabled.
(invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
-mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
to reg+offset addressing.  Use PTImode when checking offset
addresses for validity.
(reg_offset_addressing_ok_p): Likewise.
(rs6000_legitimate_offset_address_p): Likewise.
(rs6000_legitimize_address): Likewise.
(rs6000_legitimize_reload_address): Likewise.
(rs6000_legitimate_address_p): Likewise.
(rs6000_eliminate_indexed_memrefs): Likewise.
(rs6000_emit_move): Likewise.
(rs6000_secondary_reload): Likewise.
(rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
reloads to fpr registers to continue to use reg+offset addressing,
but 64-bit reloads to altivec registers need reg+reg addressing.
Drop test for PRE_MODIFY, since VSX loads/stores no longer support
it.  Treat LO_SUM like a PLUS operation.
(rs6000_secondary_reload_class): If type is 64-bit, prefer to use
FLOAT_REGS instead of VSX_RGS to allow use of reg+offset
addressing.
(rs6000_cannot_change_mode_class): Do not allow TImode in VSX
registers to share a register with a smaller sized type, since VSX
puts scalars in the upper 64-bits.
(print_operand): Add support for PTImode.
(rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
registers, but don't have arithmetic support.
(rs6000_memory_move_cost): Add test for VSX.
(rs6000_opt_masks): Add -mvsx-timode.

* config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
for TImode.
(VSs): Likewise.
(VSr): Use wt constraint for TImode.
(VSv): Drop TImode support.
(vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
(vsx_movti_64bit): Likewise.
(vsx_movti_32bit): Likewise.
(vec_store_<mode>): Use VSX iterator instead of vector iterator.
(vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
one '?' on the appropriate output constraint.  Do not allow TImode
logical operations on 32-bit systems.
(vsx_ior<mode>3): Likewise.
(vsx_xor<mode>3): Likewise.
(vsx_one_cmpl<mode>2): Likewise.
(vsx_nor<mode>3): Likewise.
(vsx_andc<mode>3): Likewise.
(vsx_concat_<mode>): Likewise.
(vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.

* config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
OPTION_MASK_VSX_TIMODE.
(enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
(STACK_SAVEAREA_MODE): Use PTImode instead of TImode.

* config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
(TI2 iterator): New iterator for TImode, PTImode.
(wd mode attribute): Add values for vector types.
(movti_string): Replace TI move operations with operations for
TImode and PTImode.  Add support for TImode being allowed in VSX
registers.
(mov<mode>_string, TImode/PTImode): Likewise.
(movti_ppc64): Likewise.
(mov<mode>_ppc64, TImode/PTImode): Likewise.
(TI mode splitters): Likewise.

* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
constraint.

[gcc/testsuite]
2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/mmfpgpr.c: New test.
* gcc.target/powerpc/sd-vsx.c: Likewise.
* gcc.target/powerpc/sd-pwr6.c: Likewise.
* gcc.target/powerpc/vsx-float0.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196831 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Marc Glisse <marc.glisse@inria.fr>
glisse [Wed, 20 Mar 2013 15:16:09 +0000 (15:16 +0000)]
2013-03-20  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/56355
gcc/
* fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
Also handle integers with undefined overflow.

gcc/testsuite/
* gcc.dg/pr56355-1.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196829 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agogcc/
clm [Wed, 20 Mar 2013 14:37:52 +0000 (14:37 +0000)]
gcc/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
    Maciej W. Rozycki  <macro@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>
    Nathan Sidwell <nathan@codesourcery.com>
    Iain Sandoe  <iain@codesourcery.com>
    Nathan Froyd  <froydnj@codesourcery.com>
    Chao-ying Fu <fu@mips.com>

* doc/extend.texi: (micromips, nomicromips, nocompression):
Document new function attributes.
* doc/invoke.texi (minterlink-compressed, mmicromips,
m14k, m14ke, m14kec): Document new options.
(minterlink-mips16): Update documentation.
* doc/md.texi (ZC, ZD): Document new constraints.
* configure.ac (gcc_cv_as_micromips): Check if linker
supports the .set micromips directive.
* configure: Regenerate.
* config.in: Regenerate.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/micromips.md: New file.
* constraints.md (ZC, ZD): New constraints.
* config/mips/predicates.md (movep_src_register): New predicate.
(movep_src_operand): New predicate.
(non_volatile_mem_operand): New predicate.
* config/mips/mips.md (multimem): New type.
(length): Differentiate between 17-bit and 18-bit branch offsets.
(MOVEP1, MOVEP2): New mode iterator.
  (mov_<load>l): Use ZC constraint.
(mov_<load>r): Likewise.
(mov_<store>l): Likewise.
(mov_<store>r): Likewise.
(*branch_equality<mode>_inverted): Add microMIPS support.
(*branch_equality<mode>): Likewise.
(*jump_absolute): Likewise.
(indirect_jump_<mode>): Likewise.
(tablejump_<mode>): Likewise.
(<optab>_internal): Likewise.
(sibcall_internal): Likewise.
(sibcall_value_internal): Likewise.
(prefetch): Use constraint ZD.
* config/mips/mips.opt (minterlink-compressed): New option.
(minterlink-mips16): Now an alias for minterlink-compressed.
(mmicromips): New option.
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
(compare_and_swap_12): Likewise.
(sync_add<mode>): Likewise.
(sync_<optab>_12): Likewise.
(sync_old_<optab>_12): Likewise.
(sync_new_<optab>_12): Likewise.
(sync_nand_12): Likewise.
(sync_old_nand_12): Likewise.
(sync_new_nand_12): Likewise.
(sync_sub<mode>): Likewise.
(sync_old_add<mode>): Likewise.
(sync_old_sub<mode>): Likewise.
(sync_new_add<mode>): Likewise.
(sync_new_sub<mode>): Likewise.
(sync_<optab><mode>): Likewise.
(sync_old_<optab><mode>): Likewise.
(sync_new_<optab><mode>): Likewise.
(sync_nand<mode>): Likewise.
(sync_old_nand<mode>): Likewise.
(sync_new_nand<mode>): Likewise.
(sync_lock_test_and_set<mode>): Likewise.
(test_and_set_12): Likewise.
(atomic_compare_and_swap<mode>): Likewise.
(atomic_exchange<mode>_llsc): Likewise.
(atomic_fetch_add<mode>_llsc): Likewise.
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
(umips_save_restore_pattern_p): Likewise.
(umips_load_store_pair_p): Likewise.
(umips_output_load_store_pair): Likewise.
(umips_movep_target_p): Likewise.
(umips_12bit_offset_address_p): Likewise.
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this. Update all uses.
(mips_attribute_table): Add micromips, nomicromips and nocompression.
(mips_mips16_decl_p): Delete.
(mips_nomips16_decl_p): Delete.
  (mips_get_compress_on_flags): New function.
(mips_get_compress_off_flags): New function.
(mips_get_compress_mode): New function.
(mips_get_compress_on_name): New function.
(mips_get_compress_off_name): New function.
(mips_insert_attributes): Support multiple compression types.
(mips_merge_decl_attributes): Likewise.
(umips_12bit_offset_address_p): New function.
(mips_start_function_definition): Emit .set micromips directive.
(mips_call_may_need_jalx_p): New function.
(mips_function_ok_for_sibcall): Add microMIPS support.
(mips_print_operand_punctuation): Support short delay slots and
compact jumps.
(umips_swm_mask, umips_swm_encoding): New.
(umips_build_save_restore): New function.
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
(was_mips16_p): Remove.
(old_compression_mode): New.
(mips_set_compression_mode): New function.
(mips_set_current_function): Add microMIPS support.
(mips_option_override): Likewise.
(umips_save_restore_pattern_p): New function.
(umips_output_save_restore): New function.
(umips_load_store_pair_p_1): New function.
(umips_load_store_pair_p): New function.
(umips_output_load_store_pair_1): New function.
(umips_output_load_store_pair): New function.
(umips_movep_target_p) New function.
(mips_prepare_pch_save): Add microMIPS support.
* config/mips/mips.h (TARGET_COMPRESSION): New.
(TARGET_CPU_CPP_BUILTINS): Update macro
to use new compression flags and to support microMIPS.
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
(MIPS_ARCH_FLOAT_SPEC): Likewise.
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
(ASM_SPEC): Support mmicromips and mno-micromips.
(M16STORE_REG_P): New macro.
(MIPS_CALL): Support TARGET_MICROMIPS.
(MICROMIPS_J): New macro.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this.
(UMIPS_12BIT_OFFSET_P): New macro.
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
(MULTILIB_DIRNAMES): Likewise.
libgcc/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
    Joseph Myers  <joseph@codesourcery.com>
    Chao-ying Fu  <fu@mips.com>

* config/mips/mips16.S:  Don't build for microMIPS.
* config/mips/linux-unwind.h: Handle microMIPS frame.
* config/mips/crtn.S (fini, init): New labels.
gcc/testsuite/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
    Richard Sandiford <rdsandiford@googlemail.com>

* gcc.target/mips/mips.exp: Add microMIPS support.
* gcc.target/mips/umips-movep-2.c: New test.
* gcc.target/mips/umips-lwp-2.c: New test.
* gcc.target/mips/umips-swp-5.c: New test.
* gcc.target/mips/umips-constraints-1.c: New test.
* gcc.target/mips/umips-lwp-3.c: New test.
* gcc.target/mips/umips-swp-6.c: New test.
* gcc.target/mips/umips-constraints-2.c: New test.
* gcc.target/mips/umips-save-restore-1.c: New test.
* gcc.target/mips/umips-lwp-4.c: New test.
* gcc.target/mips/umips-swp-7.c: New test.
* gcc.target/mips/umips-save-restore-2.c: New test.
* gcc.target/mips/umips-lwp-swp-volatile.c: New test.
* gcc.target/mips/umips-lwp-5.c: New test.
* gcc.target/mips/umips-save-restore-3.c: New test.
* gcc.target/mips/umips-lwp-6.c: New test.
* gcc.target/mips/umips-swp-1.c: New test.
* gcc.target/mips/umips-lwp-7.c: New test.
* gcc.target/mips/umips-swp-2.c: New test.
* gcc.target/mips/umips-lwp-8.c: New test.
* gcc.target/mips/umips-swp-3.c: New test.
* gcc.target/mips/umips-movep-1.c: New test.
* gcc.target/mips/umips-lwp-1.c: New test.
* gcc.target/mips/umips-swp-4.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196828 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Richard Biener <rguenther@suse.de>
rguenth [Wed, 20 Mar 2013 13:26:19 +0000 (13:26 +0000)]
2013-03-20  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56661
* tree-ssa-sccvn.c (visit_use): Only value-number calls if
the result does not have to be distinct.

* gcc.dg/torture/pr56661.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196825 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Richard Biener <rguenther@suse.de>
rguenth [Wed, 20 Mar 2013 13:25:08 +0000 (13:25 +0000)]
2013-03-20  Richard Biener  <rguenther@suse.de>

* tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
remap_gimple_op_r.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196824 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agogcc:
wschmidt [Wed, 20 Mar 2013 13:24:12 +0000 (13:24 +0000)]
gcc:

2013-03-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
    Steven Bosscher <steven@gcc.gnu.org>

PR rtl-optimization/56605
* loop-iv.c (implies_p): Handle equal RTXs and subregs.

gcc/testsuite:

2013-03-13  Bill Schmidt  wschmidt@linux.vnet.ibm.com>

PR rtl-optimization/56605
* gcc.target/powerpc/pr56605.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196823 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDon't XFAIL gfortran.dg/do_1.f90 (PR fortran/54932)
ro [Wed, 20 Mar 2013 11:34:56 +0000 (11:34 +0000)]
Don't XFAIL gfortran.dg/do_1.f90 (PR fortran/54932)

PR fortran/54932
* gfortran.dg/do_1.f90: Don't xfail.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196821 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Tobias Burnus <burnus@net-b.de>
burnus [Wed, 20 Mar 2013 09:24:59 +0000 (09:24 +0000)]
2013-03-20  Tobias Burnus  <burnus@net-b.de>

        * i-fortra.ads: Update comment, add Ada 2012's optional
        Star and Kind data types for enhanced interoperability.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196814 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR bootstrap/56656
uros [Wed, 20 Mar 2013 09:23:39 +0000 (09:23 +0000)]
PR bootstrap/56656
* config/i386/i386.md (*movdi_internal): Handle broken assemblers
that require movd instead of movq.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196813 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Richard Biener <rguenther@suse.de>
rguenth [Wed, 20 Mar 2013 09:06:24 +0000 (09:06 +0000)]
2013-03-20  Richard Biener  <rguenther@suse.de>

* tree-ssa-structalias.c (struct variable_info): Add pointer
to the first field of an aggregate with sub-vars.  Make
this and the pointer to the next subfield its ID.
(vi_next): New function.
(nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
storedanything_id, integer_id): Increment by one.
(new_var_info, get_call_vi, lookup_call_clobber_vi,
get_call_clobber_vi): Adjust.
(solution_set_expand): Simplify and speedup.
(solution_set_add): Inline into ...
(set_union_with_increment): ... this.  Adjust accordingly.
(do_sd_constraint): Likewise.
(do_ds_constraint): Likewise.
(do_complex_constraint): Simplify.
(build_pred_graph): Adjust.
(solve_graph): Likewise.  Simplify and speedup.
(get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
get_constraint_for_component_ref, get_constraint_for_1,
first_vi_for_offset, first_or_preceding_vi_for_offset,
create_function_info_for, create_variable_info_for_1,
create_variable_info_for, intra_create_variable_infos): Adjust.
(init_base_vars): Push NULL for ID zero.
(compute_points_to_sets): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196812 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Richard Biener <rguenther@suse.de>
rguenth [Wed, 20 Mar 2013 09:03:06 +0000 (09:03 +0000)]
2013-03-20  Richard Biener  <rguenther@suse.de>

* cfgloop.c (verify_loop_structure): Streamline and avoid
ICEing on corrupt loop tree.
* graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
loop tree.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196811 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Richard Biener <rguenther@suse.de>
rguenth [Wed, 20 Mar 2013 09:01:52 +0000 (09:01 +0000)]
2013-03-20  Richard Biener  <rguenther@suse.de>

* tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
check whether an SSA update is needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196810 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agogcc/
rsandifo [Wed, 20 Mar 2013 08:07:51 +0000 (08:07 +0000)]
gcc/
* config/mips/constraints.md (T): Rename to...
(Yf): ...this.
(U): Rename to...
(Yd): ...this.
* config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
(*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196807 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>
burnus [Wed, 20 Mar 2013 07:56:02 +0000 (07:56 +0000)]
2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * io/list_read.c (nml_read_obj): Don't end the component loop on
        a nested derived type, but continue with the next loop iteration.
        (nml_get_obj_data): Don't move the first_nl pointer further in
        the list if a qualifier was found.

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * gcc/testsuite/gfortran.dg/namelist_77.f90: New.
        * gcc/testsuite/gfortran.dg/namelist_78.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196806 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>
burnus [Wed, 20 Mar 2013 07:45:49 +0000 (07:45 +0000)]
2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/48618
        * io/open.c (st_open): Raise error for unit number < 0 only if
        unit number does not exist already.

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/48618
        * gfortran.dg/open_negative_unit_1.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196805 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Wed, 20 Mar 2013 00:16:46 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196804 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoYet another ChangeLog fix.
jakub [Tue, 19 Mar 2013 18:34:05 +0000 (18:34 +0000)]
Yet another ChangeLog fix.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196800 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAnother ChangeLog entry fix.
jakub [Tue, 19 Mar 2013 17:54:12 +0000 (17:54 +0000)]
Another ChangeLog entry fix.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196799 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAArch64 backend support for SBC instruction.
ibolton [Tue, 19 Mar 2013 16:23:08 +0000 (16:23 +0000)]
AArch64 backend support for SBC instruction.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196797 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAArch64 backend support for ROR instruction.
ibolton [Tue, 19 Mar 2013 16:18:46 +0000 (16:18 +0000)]
AArch64 backend support for ROR instruction.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196796 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoAArch64 backend support for EXTR instruction.
ibolton [Tue, 19 Mar 2013 16:17:14 +0000 (16:17 +0000)]
AArch64 backend support for EXTR instruction.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196795 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-19 Richard Biener <rguenther@suse.de>
rguenth [Tue, 19 Mar 2013 12:57:33 +0000 (12:57 +0000)]
2013-03-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56273
* passes.c (init_optimization_passes): Move second VRP after DOM.

* gcc.dg/tree-ssa/vrp47.c: Adjust.
* c-c++-common/uninit-17.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196792 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoUse C99 bool instead of enum try.
jb [Tue, 19 Mar 2013 11:13:32 +0000 (11:13 +0000)]
Use C99 bool instead of enum try.

2013-03-19  Janne Blomqvist  <jb@gcc.gnu.org>

* libgfortran.h: Include stdbool.h.
(enum try): Remove.
(notify_std): Change return type to bool.
* intrinsics/chmod.c: Don't include stdbool.h.
* intrinsics/execute_command_line.c: Likewise.
* io/format.c: Likewise.
* io/list_read.c (nml_parse_qualifier): Change return type to bool.
(nml_read_obj): Likewise.
(nml_get_obj_data): Likewise.
* io/transfer.c (read_block_form): Fix comment.
(write_buf): Change return type to bool.
* io/write.c: Don't include stdbool.h.
* io/write_float.def (output_float): Change return type to bool.
(output_float_FMT_G_ ## x): Change type of result variable.
* runtime/error.c (notify_std): Change return type to bool.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196791 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoRemove gcc/testsuite/ and testsuite/ leading paths from
jakub [Tue, 19 Mar 2013 10:35:47 +0000 (10:35 +0000)]
Remove gcc/testsuite/ and testsuite/ leading paths from
filenames.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196790 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoFix up ChangeLog entry formatting.
jakub [Tue, 19 Mar 2013 10:02:23 +0000 (10:02 +0000)]
Fix up ChangeLog entry formatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196789 138bc75d-0d04-0410-961f-82ee72b054a4

11 years agoDaily bump.
gccadmin [Tue, 19 Mar 2013 09:20:32 +0000 (09:20 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196788 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/i386/i386.md (*movti_internal): Merge from
uros [Tue, 19 Mar 2013 07:36:15 +0000 (07:36 +0000)]
* config/i386/i386.md (*movti_internal): Merge from
*movti_internal_rex64 and *movti_internal_sse.  Use x64 isa attribute.
(*movdi_internal): Merge with *movdi_internal_rex64.  Use x64 and
nox64 isa attributes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196784 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-18 Richard Biener <rguenther@suse.de>
rguenth [Mon, 18 Mar 2013 13:58:29 +0000 (13:58 +0000)]
2013-03-18  Richard Biener  <rguenther@suse.de>

* tree-ssa-structalias.c (find): Use gcc_checking_assert.
(unite): Likewise.
(merge_node_constraints): Likewise.
(build_succ_graph): Likewise.
(valid_graph_edge): Inline into single caller.
(unify_nodes): Likewise.  Use bitmap_set_bit return value
and cache varinfo.
(scc_visit): Fix formatting and variable use.
(do_sd_constraint): Use gcc_checking_assert.
(do_ds_constraint): Likewise.
(do_complex_constraint): Likewise.
(condense_visit): Likewise.  Cleanup.
(dump_pred_graph): New function.
(perform_var_substitution): Dump the pred-graph before
variable substitution.
(find_equivalent_node): Use gcc_checking_assert.
(rewrite_constraints): Guard checking loop with ENABLE_CHECKING.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196783 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-18 Richard Biener <rguenther@suse.de>
rguenth [Mon, 18 Mar 2013 13:57:33 +0000 (13:57 +0000)]
2013-03-18  Richard Biener  <rguenther@suse.de>

* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
Remove cond_expr_stmt_list argument and do not gimplify the
built expression.
(vect_loop_versioning): Adjust.
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
Cleanup to use less temporaries.
(vect_create_data_ref_ptr): Cleanup.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196782 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago PR tree-optimization/56635
jakub [Mon, 18 Mar 2013 13:01:49 +0000 (13:01 +0000)]
PR tree-optimization/56635
* fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
require types_compatible_p types.

* g++.dg/torture/pr56635.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196781 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
nickc [Mon, 18 Mar 2013 10:43:50 +0000 (10:43 +0000)]
* config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
spurious backslash.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196779 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
nickc [Mon, 18 Mar 2013 10:40:24 +0000 (10:40 +0000)]
* config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
Add missing line to comment describing function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196778 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-18 Richard Biener <rguenther@suse.de>
rguenth [Mon, 18 Mar 2013 10:33:11 +0000 (10:33 +0000)]
2013-03-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56210
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
Handle string / character search functions.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196777 138bc75d-0d04-0410-961f-82ee72b054a4

11 years ago2013-03-18 Richard Biener <rguenther@suse.de>
rguenth [Mon, 18 Mar 2013 10:29:43 +0000 (10:29 +0000)]
2013-03-18  Richard Biener  <rguenther@suse.de>

PR middle-end/56483
* cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
and implement properly.
* gimple.h (gimple_cond_single_var_p): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196776 138bc75d-0d04-0410-961f-82ee72b054a4