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 |
|---|---|---|
| .. | ||
| gofrontend | Loading commit data... | |
| ChangeLog | Loading commit data... | |
| Make-lang.in | Loading commit data... | |
| README.gcc | Loading commit data... | |
| config-lang.in | Loading commit data... | |
| gccgo.texi | Loading commit data... | |
| go-backend.c | Loading commit data... | |
| go-c.h | Loading commit data... | |
| go-gcc-diagnostics.cc | Loading commit data... | |
| go-gcc.cc | Loading commit data... | |
| go-gcc.h | Loading commit data... | |
| go-lang.c | Loading commit data... | |
| go-linemap.cc | Loading commit data... | |
| go-location.h | Loading commit data... | |
| go-sha1.cc | Loading commit data... | |
| go-system.h | Loading commit data... | |
| gospec.c | Loading commit data... | |
| lang-specs.h | Loading commit data... | |
| lang.opt | Loading commit data... |