forked from OSchip/llvm-project
1b179bc5ff
Summary: LazyValueInfo currently computes the constant value of the switch condition through case edges, which allows the constant value to be propagated through the case edges. But we have seen a case where a zero-extended value of the switch condition is used past case edges for which the constant propagation doesn't occur. This patch adds a small logic to handle such a case in getEdgeValueLocal(). This is motivated by the Python 2.7 eval loop in PyEval_EvalFrameEx() where the lack of the constant propagation causes longer live ranges and more spill code than necessary. With this patch, we see that the code size of PyEval_EvalFrameEx() decreases by ~5.4% and a performance test improves by ~4.6%. Reviewers: wmi, dberlin, sanjoy Reviewed By: sanjoy Subscribers: davide, davidxl, llvm-commits Differential Revision: https://reviews.llvm.org/D34822 llvm-svn: 309415 |
||
---|---|---|
.. | ||
2010-09-02-Trunc.ll | ||
2010-09-26-MergeConstantRange.ll | ||
add.ll | ||
alloca.ll | ||
ashr.ll | ||
basic.ll | ||
conflict.ll | ||
crash.ll | ||
guards.ll | ||
icmp.ll | ||
non-null.ll | ||
range.ll | ||
sdiv.ll | ||
select.ll | ||
srem.ll |