llvm/lib
Andrea Di Biagio 124ce3ab36 [DAGCombiner] Fix a crash caused by a missing check for legal type when trying to fold shuffles.
Verify that DAGCombiner does not crash when trying to fold a pair of shuffles
according to rule (added at r212539):
  (shuffle (shuffle A, Undef, M0), Undef, M1) -> (shuffle A, Undef, M2)

The DAGCombiner avoids folding shuffles if the resulting shuffle dag node
is not legal for the target. That means, the resulting shuffle must have
legal type and legal mask.

Before, the DAGCombiner only called method
'TargetLowering::isShuffleMaskLegal' to check if it was "safe" to fold according
to the above-mentioned rule. However, this caused a crash in the x86 backend
since method 'isShuffleMaskLegal' always expects to be called on a
legal vector type.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212915 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-13 21:02:14 +00:00
..
Analysis Templatify DominanceFrontier. 2014-07-12 21:59:52 +00:00
AsmParser Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
Bitcode Fix a bug in the conversion to ErrorOr. 2014-07-04 20:05:56 +00:00
CodeGen [DAGCombiner] Fix a crash caused by a missing check for legal type when trying to fold shuffles. 2014-07-13 21:02:14 +00:00
DebugInfo Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
ExecutionEngine [RuntimeDyld] Fix stub size and offset for AArch64 in RuntimeDyldMachO.h. 2014-07-12 00:16:47 +00:00
IR IR: Allow comdats to be applied to globals with internal linkage 2014-07-13 04:56:11 +00:00
IRReader Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
LineEditor
Linker Include <tuple> to make buildbots happy 2014-06-27 18:38:12 +00:00
LTO Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
MC MC: make MCWin64EHInstruction a POD-like struct 2014-07-13 19:03:45 +00:00
Object Add forgotten break statement. 2014-07-13 16:18:56 +00:00
Option Generic: add range-adapter for option parsing. 2014-07-09 13:03:37 +00:00
ProfileData Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
Support Move the API and implementation of clang::driver::getARMCPUForMArch() to llvm::Triple::getARMCPUForArch(). 2014-07-11 21:44:54 +00:00
TableGen Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
Target MC: make DWARF and Windows unwinding handling more similar 2014-07-13 19:03:36 +00:00
Transforms [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32. 2014-07-13 13:36:48 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00