For a select statement with zero-, one-, or two-case with a
default case, we can generate simpler code instead of calling the
generic selectgo. A zero-case select is just blocking the
execution. A one-case select is mostly just executing the case. A
two-case select with a default case is a non-blocking send or
receive. We add these special cases for lowering a select
statement.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184998
From-SVN: r273034
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| config | Loading commit data... | |
| go | Loading commit data... | |
| misc/cgo | Loading commit data... | |
| runtime | Loading commit data... | |
| testsuite | Loading commit data... | |
| LICENSE | Loading commit data... | |
| MERGE | Loading commit data... | |
| Makefile.am | Loading commit data... | |
| Makefile.in | Loading commit data... | |
| PATENTS | Loading commit data... | |
| README | Loading commit data... | |
| README.gcc | Loading commit data... | |
| VERSION | Loading commit data... | |
| aclocal.m4 | Loading commit data... | |
| check-packages.txt | Loading commit data... | |
| config.h.in | Loading commit data... | |
| configure | Loading commit data... | |
| configure.ac | Loading commit data... | |
| goarch.sh | Loading commit data... | |
| godeps.sh | Loading commit data... | |
| gotool-packages.txt | Loading commit data... | |
| libgo-packages.txt | Loading commit data... | |
| libgo.imp | Loading commit data... | |
| match.sh | Loading commit data... | |
| merge.sh | Loading commit data... | |
| mkrsysinfo.sh | Loading commit data... | |
| mkruntimeinc.sh | Loading commit data... | |
| mksigtab.sh | Loading commit data... | |
| mksysinfo.sh | Loading commit data... | |
| mvifdiff.sh | Loading commit data... | |
| sysinfo.c | Loading commit data... |