aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2013-10-31 19:37:29 +0100
committerUros Bizjak <uros@gcc.gnu.org>2013-10-31 19:37:29 +0100
commite5ccdfcd51ccbd0c9353f94f73bce18d42adbaac (patch)
tree3f4deea604524913db4766b044ac517245f03376 /gcc
parent5e5f34bf635888199217753e461cfea3bb8ab390 (diff)
downloadgcc-e5ccdfcd51ccbd0c9353f94f73bce18d42adbaac.zip
gcc-e5ccdfcd51ccbd0c9353f94f73bce18d42adbaac.tar.gz
gcc-e5ccdfcd51ccbd0c9353f94f73bce18d42adbaac.tar.bz2
i386.c (ix86_expand_sse2_abs): Rename function arguments.
* config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments. Use gcc_unreachable for unhandled modes. Do not check results of expand_simple_binop. If not expanded to target, move the result. From-SVN: r204271
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog65
-rw-r--r--gcc/config/i386/i386.c43
-rw-r--r--gcc/testsuite/ChangeLog20
3 files changed, 58 insertions, 70 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c2e139f..48a6aab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-31 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments.
+ Use gcc_unreachable for unhandled modes. Do not check results of
+ expand_simple_binop. If not expanded to target, move the result.
+
2013-10-31 Chung-Ju Wu <jasonwucj@gmail.com>
Shiva Chen <shiva0217@gmail.com>
@@ -131,9 +137,8 @@
PR other/58545
* reload1.c (update_eliminables_and_spill): New function, broken
out of reload.
- (reload): Use it. Check for frame size change after frame
- size alignment, and call update_eliminables_and_spill first
- if continue-ing.
+ (reload): Use it. Check for frame size change after frame size
+ alignment, and call update_eliminables_and_spill first if continue-ing.
2013-10-30 Cong Hou <congh@google.com>
@@ -162,9 +167,8 @@
2013-10-30 David Malcolm <dmalcolm@redhat.com>
- * cgraphunit.c (analyze_functions): Split symtab_node
- declarations onto multiple lines to make things easier
- for rename_symtab.py.
+ * cgraphunit.c (analyze_functions): Split symtab_node declarations
+ onto multiple lines to make things easier for rename_symtab.py.
* symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
(symtab_semantically_equivalent_p): Likewise.
@@ -198,10 +202,8 @@
(struct ira_allocno) New member allocno_prefs.
(ALLOCNO_PREFS): New macro.
(ira_prefs, ira_prefs_num): New external vars.
- (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New
- prototypes.
- (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref):
- Ditto.
+ (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes.
+ (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto.
(ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs):
Ditto.
(ira_add_allocno_copy_to_list): Remove prototype.
@@ -354,7 +356,8 @@
BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
* common.opt (fcheck-pointer-bounds): New.
- * toplev.c (process_options): Check Pointer Bounds Checker is supported.
+ * toplev.c (process_options): Check Pointer Bounds Checker is
+ supported.
* doc/extend.texi: Document Pointer Bounds Checker built-in functions.
2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
@@ -391,11 +394,10 @@
2013-10-29 Andrew Pinski <apinski@cavium.com>
* tree-ssa-ifcombine.c: Include rtl.h and tm_p.h.
- (ifcombine_ifandif): Handle cases where
- maybe_fold_and_comparisons fails, combining the branches
- anyways.
- (tree_ssa_ifcombine): Inverse the order of
- the basic block walk, increases the number of combinings.
+ (ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons
+ fails, combining the branches anyways.
+ (tree_ssa_ifcombine): Inverse the order of the basic block walk,
+ increases the number of combinings.
* gimple.h (gsi_start_nondebug_after_labels_bb): New function.
2013-10-29 Mike Stump <mikestump@comcast.net>
@@ -489,7 +491,7 @@
(CILK_SYNC_STMT): Added documentation for _Cilk_sync.
* passes.texi (Cilk Keywords): New section that describes the compiler
code changes for handling Cilk Keywords.
-
+
2013-10-29 David Malcolm <dmalcolm@redhat.com>
Patch autogenerated by refactor_symtab.py from
@@ -898,8 +900,7 @@
(varpool_remove_node): Likewise.
(varpool_node_for_decl): Likewise.
(varpool_create_empty_node): Likewise.
- * config/i386/i386.c (ix86_generate_version_dispatcher_body):
- Likewise.
+ * config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise.
(ix86_get_function_versions_dispatcher): Likewise.
2013-10-29 David Malcolm <dmalcolm@redhat.com>
@@ -927,13 +928,13 @@
* symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base.
(assembler_name_hash): Likewise.
-2013-10-29 Martin Liska <marxin.liska@gmail.com>
+2013-10-29 Martin Liska <marxin.liska@gmail.com>
- * doc/tree-ssa.texi (gimple_phi_result): Document.
- (gimple_phi_num_args, gimple_phi_arg): Likewise.
- (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
- (PHI_RESULT, PHI_NUM_ARGS): Remove.
- (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
+ * doc/tree-ssa.texi (gimple_phi_result): Document.
+ (gimple_phi_num_args, gimple_phi_arg): Likewise.
+ (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
+ (PHI_RESULT, PHI_NUM_ARGS): Remove.
+ (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
2013-10-29 Andrew MacLeod <amacleod@redhat.com>
@@ -1050,8 +1051,7 @@
fields of the type (including inherited ones).
(write_func_for_structure): Don't write fns for subclasses, only
for the ultimate base class within an inheritance hierarchy.
- Subclasses-marking will be handled by the base class marking
- functions.
+ Subclasses-marking will be handled by the base class marking functions.
(write_types): Likewise.
(write_local_func_for_structure): Likewise.
(USED_BY_TYPED_GC_P): Emit allocators for subclasses that have
@@ -1213,7 +1213,6 @@
(VEC_PERM_AVX2): Ditto.
(VEC_PERM_CONST): Ditto.
-
2013-10-28 Joern Rennecke <joern.rennecke@embecosm.com>
* config/arc/arc.c (arc_ccfsm_post_advance):
@@ -1310,8 +1309,7 @@
(rs6000_legitimate_offset_address_p): Call
legitimate_constant_pool_address_p in strict mode for LRA.
(rs6000_legitimate_address_p): Ditto.
- (legitimate_lo_sum_address_p): Add code for LRA.
- Use lra_in_progress.
+ (legitimate_lo_sum_address_p): Add code for LRA. Use lra_in_progress.
(rs6000_emit_move): Add LRA version of code to generate load/store
of SDmode values.
(rs6000_secondary_memory_needed_mode): New.
@@ -1319,8 +1317,7 @@
(rs6000_secondary_reload_class): Return NO_REGS for LRA for
constants, memory, and FP registers.
(rs6000_lra_p): New.
- * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New
- macro.
+ * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
* config/rs6000/rs6000.opt (mlra): New option.
* lra-spills.c (lra_final_code_change): Remove useless move insns.
@@ -1379,8 +1376,8 @@
2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/58831
- * alias.c (init_alias_analysis): At the beginning of each iteration, set
- the reg_seen[N] bit if static_reg_base_value[N] is non-null.
+ * alias.c (init_alias_analysis): At the beginning of each iteration,
+ set the reg_seen[N] bit if static_reg_base_value[N] is non-null.
2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 3131efd..5a2597b 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -42020,51 +42020,54 @@ ix86_bnd_prefixed_insn_p (rtx insn ATTRIBUTE_UNUSED)
return false;
}
+/* Calculate integer abs() using only SSE2 instructions. */
+
void
-ix86_expand_sse2_abs (rtx op0, rtx op1)
+ix86_expand_sse2_abs (rtx target, rtx input)
{
- enum machine_mode mode = GET_MODE (op0);
- rtx tmp0, tmp1;
+ enum machine_mode mode = GET_MODE (target);
+ rtx tmp0, tmp1, x;
switch (mode)
{
/* For 32-bit signed integer X, the best way to calculate the absolute
value of X is (((signed) X >> (W-1)) ^ X) - ((signed) X >> (W-1)). */
case V4SImode:
- tmp0 = expand_simple_binop (mode, ASHIFTRT, op1,
+ tmp0 = expand_simple_binop (mode, ASHIFTRT, input,
GEN_INT (GET_MODE_BITSIZE
- (GET_MODE_INNER (mode)) - 1),
+ (GET_MODE_INNER (mode)) - 1),
NULL, 0, OPTAB_DIRECT);
- if (tmp0)
- tmp1 = expand_simple_binop (mode, XOR, op1, tmp0,
- NULL, 0, OPTAB_DIRECT);
- if (tmp0 && tmp1)
- expand_simple_binop (mode, MINUS, tmp1, tmp0,
- op0, 0, OPTAB_DIRECT);
+ tmp1 = expand_simple_binop (mode, XOR, tmp0, input,
+ NULL, 0, OPTAB_DIRECT);
+ x = expand_simple_binop (mode, MINUS, tmp1, tmp0,
+ target, 0, OPTAB_DIRECT);
break;
/* For 16-bit signed integer X, the best way to calculate the absolute
value of X is max (X, -X), as SSE2 provides the PMAXSW insn. */
case V8HImode:
- tmp0 = expand_unop (mode, neg_optab, op1, NULL_RTX, 0);
- if (tmp0)
- expand_simple_binop (mode, SMAX, op1, tmp0, op0, 0,
- OPTAB_DIRECT);
+ tmp0 = expand_unop (mode, neg_optab, input, NULL_RTX, 0);
+
+ x = expand_simple_binop (mode, SMAX, tmp0, input,
+ target, 0, OPTAB_DIRECT);
break;
/* For 8-bit signed integer X, the best way to calculate the absolute
value of X is min ((unsigned char) X, (unsigned char) (-X)),
as SSE2 provides the PMINUB insn. */
case V16QImode:
- tmp0 = expand_unop (mode, neg_optab, op1, NULL_RTX, 0);
- if (tmp0)
- expand_simple_binop (V16QImode, UMIN, op1, tmp0, op0, 0,
- OPTAB_DIRECT);
+ tmp0 = expand_unop (mode, neg_optab, input, NULL_RTX, 0);
+
+ x = expand_simple_binop (V16QImode, UMIN, tmp0, input,
+ target, 0, OPTAB_DIRECT);
break;
default:
- break;
+ gcc_unreachable ();
}
+
+ if (x != target)
+ emit_move_insn (target, x);
}
/* Expand an insert into a vector register through pinsr insn.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2e5642b..68f93f4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,6 +1,6 @@
2013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
- Implement C++14 digit separators.
+ Implement C++14 digit separators.
* g++.dg/cpp1y/digit-sep.C: New.
* g++.dg/cpp1y/digit-sep-neg.C: New.
* g++.dg/cpp1y/digit-sep-cxx11-neg.C: New.
@@ -29,19 +29,6 @@
2013-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58466
-The Velvet Underground and Nico Full album vinyl LP
-vinylanalog vinylanalog·13 videos
-581
-150,561
-Like 1,087 Dislike 6
-
-Published on Jun 18, 2013
-
-The Velvet Underground and Nico legendary debut record produced by Andy Warhol (1967) presented in a non-modified recording of Verve V6-5008 vinyl LP. All efforts were made to realistically reproduce the natural vinyl stereo LP sound, so record levels were restrained and album noise is present.
-
-NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE RIGHTFUL ARTISTS AND OWNERS.
-
-
* g++.dg/cpp0x/variadic145.C: New.
* g++.dg/cpp0x/sfinae49.C: New.
@@ -80,7 +67,7 @@ NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE
2013-10-30 Mikael Pettersson <mikpe@it.uu.se>
- * PR rtl-optimization/58369
+ PR rtl-optimization/58369
* g++.dg/torture/pr58369.C: New test.
2013-10-30 Tobias Burnus <burnus@net-b.de>
@@ -133,7 +120,7 @@ NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE
* gcc.dg/ira-shrinkwrap-prep-2.c: Likewise.
2013-10-29 Andrew Pinski <apinski@cavium.com>
- Zhenqiang Chen <zhenqiang.chen@linaro.org>
+ Zhenqiang Chen <zhenqiang.chen@linaro.org>
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: New test case.
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: New test case.
@@ -2429,6 +2416,7 @@ NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE
2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
+ PR rtl-optimization/58079
* gcc.dg/torture/pr58079.c: New test.
2013-08-07 Eric Botcazou <ebotcazou@adacore.com>