llvm-capstone/llvm
Sanjay Patel eaf13044bd [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
2019-08-05 11:27:07 +00:00
..
benchmarks
bindings
cmake
docs Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
examples Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
include [llvm/Object] - Remove ELFFile<ELFT>::getSection(const StringRef SectionName). NFC. 2019-08-05 11:19:28 +00:00
lib [DAGCombiner][x86] prevent infinite loop from truncate/extend transforms 2019-08-05 11:27:07 +00:00
projects
resources
runtimes
test [DAGCombiner][x86] prevent infinite loop from truncate/extend transforms 2019-08-05 11:27:07 +00:00
tools Revert "[llvm-objdump] Re-commit r367284." 2019-08-05 08:52:28 +00:00
unittests [MVT][SVE] Map between scalable vector IR Type and VTs 2019-08-05 11:18:19 +00:00
utils build_llvm_package.bat: Set PYTHON_EXECUTABLE (PR42724) 2019-08-05 08:51:45 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.