cmd/compile: remove Greater* and Geq* generic integer ops

The generic Greater and Geq ops can always be replaced with the Less and
Leq ops. This CL therefore removes them. This simplifies the compiler since
it reduces the number of operations that need handling in both code and in
rewrite rules. This will be especially true when adding control flow
optimizations such as the integer-in-range optimizations in CL 165998.

Change-Id: If0648b2b19998ac1bddccbf251283f3be4ec3040
Reviewed-on: https://go-review.googlesource.com/c/go/+/220417
Run-TryBot: Michael Munday <mike.munday@ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Michael Munday 2020-02-20 17:46:08 +00:00
parent 44fe355694
commit cb74dcc172
30 changed files with 284 additions and 4379 deletions

View file

@ -2466,24 +2466,8 @@ const (
OpLeq64U
OpLeq32F
OpLeq64F
OpGreater8
OpGreater8U
OpGreater16
OpGreater16U
OpGreater32
OpGreater32U
OpGreater64
OpGreater64U
OpGreater32F
OpGreater64F
OpGeq8
OpGeq8U
OpGeq16
OpGeq16U
OpGeq32
OpGeq32U
OpGeq64
OpGeq64U
OpGeq32F
OpGeq64F
OpCondSelect
@ -31925,46 +31909,6 @@ var opcodeTable = [...]opInfo{
argLen: 2,
generic: true,
},
{
name: "Greater8",
argLen: 2,
generic: true,
},
{
name: "Greater8U",
argLen: 2,
generic: true,
},
{
name: "Greater16",
argLen: 2,
generic: true,
},
{
name: "Greater16U",
argLen: 2,
generic: true,
},
{
name: "Greater32",
argLen: 2,
generic: true,
},
{
name: "Greater32U",
argLen: 2,
generic: true,
},
{
name: "Greater64",
argLen: 2,
generic: true,
},
{
name: "Greater64U",
argLen: 2,
generic: true,
},
{
name: "Greater32F",
argLen: 2,
@ -31975,46 +31919,6 @@ var opcodeTable = [...]opInfo{
argLen: 2,
generic: true,
},
{
name: "Geq8",
argLen: 2,
generic: true,
},
{
name: "Geq8U",
argLen: 2,
generic: true,
},
{
name: "Geq16",
argLen: 2,
generic: true,
},
{
name: "Geq16U",
argLen: 2,
generic: true,
},
{
name: "Geq32",
argLen: 2,
generic: true,
},
{
name: "Geq32U",
argLen: 2,
generic: true,
},
{
name: "Geq64",
argLen: 2,
generic: true,
},
{
name: "Geq64U",
argLen: 2,
generic: true,
},
{
name: "Geq32F",
argLen: 2,