llvm-6502/lib
Chandler Carruth 1c7c2e8650 [x86] Fix PR22524: the DAG combiner was incorrectly handling illegal
nodes when folding bitcasts of constants.

We can't fold things and then check after-the-fact whether it was legal.
Once we have formed the DAG node, arbitrary other nodes may have been
collapsed to it. There is no easy way to go back. Instead, we need to
test for the specific folding cases we're interested in and ensure those
are legal first.

This could in theory make this less powerful for bitcasting from an
integer to some vector type, but AFAICT, that can't actually happen in
the SDAG so its fine. Now, we *only* whitelist specific int->fp and
fp->int bitcasts for post-legalization folding. I've added the test case
from the PR.

(Also as a note, this does not appear to be in 3.6, no backport needed)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228656 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-10 02:25:56 +00:00
..
Analysis MemDerefPrinter: Require DataLayoutPass for higher accuracy 2015-02-09 21:50:03 +00:00
AsmParser AsmParser: Add stubs for specialized MDNodes, NFC 2015-02-10 01:08:16 +00:00
Bitcode IR: Add specialized debug info metadata nodes 2015-02-10 00:52:32 +00:00
CodeGen [x86] Fix PR22524: the DAG combiner was incorrectly handling illegal 2015-02-10 02:25:56 +00:00
DebugInfo Fix -Wuninitialized build by referencing the relevant ctor parameter instead of the base class member variable. 2015-02-08 23:15:37 +00:00
ExecutionEngine [Orc] Add a JITSymbol class to the Orc APIs, refactor APIs, update clients. 2015-02-09 01:20:51 +00:00
Fuzzer [fuzzer] move default sanitizer options to a separate file 2015-02-06 19:52:07 +00:00
IR Verifier: reuse getInlinedAt() result, NFC 2015-02-10 02:25:18 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker [llvm link] Destroy ConstantArrays in LLVMContext if they are not used. 2015-01-20 19:24:59 +00:00
LTO [LTO API] split lto_codegen_compile to lto_codegen_optimize and 2015-02-03 18:39:15 +00:00
MC MC: Calculate intra-section symbol differences correctly for COFF 2015-02-09 06:31:31 +00:00
Object [ELFYAML] Provide default value 0 for YAML relocation addendum field 2015-01-29 06:56:24 +00:00
Option [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
ProfileData InstrProf: Use a stable sort when reading coverage regions 2015-02-04 00:12:18 +00:00
Support Reduce the LockFileManager timeout, and provide unsafeRemoveLockFile 2015-02-09 20:34:24 +00:00
TableGen Replace size method call of containers to empty method where appropriate 2015-01-15 11:41:30 +00:00
Target X86: Emit an ABI compliant prologue and epilogue for Win64 2015-02-10 00:57:42 +00:00
Transforms Adjust how we avoid poll insertion inside the poll function (NFC) 2015-02-10 00:04:53 +00:00
CMakeLists.txt Reverting r227452, which adds back the fuzzer library. Now excluding the fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset. 2015-01-29 16:58:29 +00:00
LLVMBuild.txt
Makefile Move DebugInfo to DebugInfo/DWARF. 2015-01-30 18:07:45 +00:00