mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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:
parent
44fe355694
commit
cb74dcc172
30 changed files with 284 additions and 4379 deletions
|
|
@ -718,24 +718,6 @@ var (
|
|||
OpLeq64: {signed, lt | eq},
|
||||
OpLeq64U: {unsigned, lt | eq},
|
||||
|
||||
OpGeq8: {signed, eq | gt},
|
||||
OpGeq8U: {unsigned, eq | gt},
|
||||
OpGeq16: {signed, eq | gt},
|
||||
OpGeq16U: {unsigned, eq | gt},
|
||||
OpGeq32: {signed, eq | gt},
|
||||
OpGeq32U: {unsigned, eq | gt},
|
||||
OpGeq64: {signed, eq | gt},
|
||||
OpGeq64U: {unsigned, eq | gt},
|
||||
|
||||
OpGreater8: {signed, gt},
|
||||
OpGreater8U: {unsigned, gt},
|
||||
OpGreater16: {signed, gt},
|
||||
OpGreater16U: {unsigned, gt},
|
||||
OpGreater32: {signed, gt},
|
||||
OpGreater32U: {unsigned, gt},
|
||||
OpGreater64: {signed, gt},
|
||||
OpGreater64U: {unsigned, gt},
|
||||
|
||||
// For these ops, the negative branch is different: we can only
|
||||
// prove signed/GE (signed/GT) if we can prove that arg0 is non-negative.
|
||||
// See the special case in addBranchRestrictions.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue