llvm-6502/lib
Sanjay Patel 3d89ab8299 fix invalid load folding with SSE/AVX FP logical instructions (PR22371)
This is a follow-up to the FIXME that was added with D7474 ( http://reviews.llvm.org/rL229531 ).
I thought this load folding bug had been made hard-to-hit, but it turns out to be very easy
when targeting 32-bit x86 and causes a miscompile/crash in Wine:
https://bugs.winehq.org/show_bug.cgi?id=38826
https://llvm.org/bugs/show_bug.cgi?id=22371#c25

The quick fix is to simply remove the scalar FP logical instructions from the load folding table
in X86InstrInfo, but that causes us to miss load folds that should be possible when lowering fabs,
fneg, fcopysign. So the majority of this patch is altering those lowerings to use *vector* FP
logical instructions (because that's all x86 gives us anyway). That lets us do the load folding 
legally.

Differential Revision: http://reviews.llvm.org/D11477



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243361 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-28 00:48:32 +00:00
..
Analysis [LAA] Split out a helper to print a collection of memchecks 2015-07-27 23:54:41 +00:00
AsmParser [opaque pointers] Avoid the use of pointee types when parsing inline asm in IR 2015-07-27 23:32:19 +00:00
Bitcode Add argmemonly attribute. 2015-07-11 10:30:36 +00:00
CodeGen MIR Serialization: Serialize the unnamed basic block references. 2015-07-27 22:42:41 +00:00
DebugInfo Return ErrorOr from getSymbolAddress. 2015-07-03 18:19:00 +00:00
ExecutionEngine Fix ODR violation. NFC. 2015-07-27 18:27:23 +00:00
Fuzzer [libFuzzer] allow users to supply their own implementation of rand 2015-07-24 01:06:40 +00:00
IR [opaque pointer type] Avoid using pointee types to retrieve InlineAsm's function type 2015-07-28 00:06:38 +00:00
IRReader Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
LibDriver Add support for producing thin archives in llvm-lib. 2015-07-17 16:01:11 +00:00
LineEditor
Linker Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LTO Remove access to the DataLayout in the TargetMachine 2015-07-24 16:04:22 +00:00
MC [llvm-mc] Add --no-warn flag with -W alias to disable outputting warnings while assembling. 2015-07-27 22:39:14 +00:00
Object Fix fetching the symbol table of a thin archive. 2015-07-22 19:34:26 +00:00
Option [Option] Plug a leak when move-assigning an InputArgList. 2015-06-23 15:28:10 +00:00
Passes [PM] Fixup for r231556 where I missed a dependency on intrinsics 2015-03-07 09:08:20 +00:00
ProfileData Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Support - Added support for parsing HWDiv features using Target Parser. 2015-07-27 22:26:59 +00:00
TableGen [TableGen] Emit the correct error message. 2015-07-27 17:22:19 +00:00
Target fix invalid load folding with SSE/AVX FP logical instructions (PR22371) 2015-07-28 00:48:32 +00:00
Transforms [LSR] Generate and use zero extends 2015-07-27 23:27:51 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00