diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2019-08-05 11:27:07 +0000 | 
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2019-08-05 11:27:07 +0000 | 
| commit | eaf13044bda2f58562a7e5f4ee762e70294299a9 (patch) | |
| tree | a6ba175317a108d7e60824ee533f93a5b1a56c4b /llvm/lib/CodeGen/LocalStackSlotAllocation.cpp | |
| parent | c9051861cb29b0d539a42ece13cdf2b133aae19b (diff) | |
| download | bcm5719-llvm-eaf13044bda2f58562a7e5f4ee762e70294299a9.tar.gz bcm5719-llvm-eaf13044bda2f58562a7e5f4ee762e70294299a9.zip | |
[DAGCombiner][x86] prevent infinite loop from truncate/extend transforms
The test case is based on the example from the post-commit thread for:
https://reviews.llvm.org/rGc9171bd0a955
This replaces the x86-specific simple-type check from:
rL367766
with a check in the DAGCombiner. Adding the check isn't
strictly necessary after the fix from:
rL367768
...but it seems likely that we're heading for trouble if
we are creating weird types in this transform.
I combined the earlier legality check into the initial
clause to simplify the code.
So we should only try the trunc/sext transform at the
earliest combine stage, but we limit the transform to
simple types anyway because the TLI hook is probably
too lax about what it considers a free truncate.
llvm-svn: 367834
Diffstat (limited to 'llvm/lib/CodeGen/LocalStackSlotAllocation.cpp')
0 files changed, 0 insertions, 0 deletions

