about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2015-11-11 12:54:02 -0500
committerNiko Matsakis <niko@alum.mit.edu>2015-11-11 16:38:58 -0500
commit662232c8f66fcbb32a9f489a1df9cc9a09f0d9b2 (patch)
tree5bbb403dbe7dbb956ce02963d98888ea518a503b /src/rustllvm/RustWrapper.cpp
parentf1f5c04c07f2e888c43cb577810659a7c1d87a00 (diff)
downloadrust-662232c8f66fcbb32a9f489a1df9cc9a09f0d9b2.tar.gz
rust-662232c8f66fcbb32a9f489a1df9cc9a09f0d9b2.zip
Rewrite match algorithm to avoid massive blowup in generated code for
large matches that fallback to Eq. When we encounter a case where the
test being performed does not inform the candidate at all, we just stop
testing the candidates at that point, rather than adding the candidate
to both outcomes. The former behavior was not WRONG, but it generated a
lot of code, whereas this new behavior degenerates to an if-else-if
tree.

Fixes #29740.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions