llvm/lib
Chandler Carruth 1d02acb7a0 [x86] Remove the 2-addr-to-3-addr "optimization" from shufps to pshufd.
This trades a (register-renamer-friendly) movaps for a floating point
/ integer domain cross. That is a very bad trade, even on architectures
where domain crossing is relatively fast. On any chip where there is
even a cycle stall, this is a Very Bad Idea. It doesn't even seem likely
to cause a spill to be introduced because the reason for the copy is to
destructively shuffle in place.

Thanks to Ben Kramer for fixing a bug in this code that my new shuffle
lowering exposed and highlighting that perhaps it should just go away.
=]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219090 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-05 22:57:31 +00:00
..
Analysis Simplify code. No functionality change. 2014-10-05 12:21:57 +00:00
AsmParser Make CallingConv::ID an alias of "unsigned". 2014-09-10 18:00:17 +00:00
Bitcode Do not destroy external linkage when deleting function body 2014-09-23 12:54:19 +00:00
CodeGen [x86, dag] Teach the DAG combiner to prune inputs toa vector_shuffle 2014-10-05 19:14:34 +00:00
DebugInfo Remove unnecessary copying or replace it with moves in a bunch of places. 2014-10-04 16:55:56 +00:00
ExecutionEngine [MCJIT] Don't crash in debugging output for sections that aren't emitted. 2014-10-01 21:57:47 +00:00
IR Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
IRReader Pass a && to getLazyBitcodeModule. 2014-09-03 17:31:46 +00:00
LineEditor
Linker Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
LTO LTO: Document the Boolean argument from r218784 2014-10-02 21:11:04 +00:00
MC MCParser: Modernize memory handling. 2014-10-03 18:32:55 +00:00
Object llvm-readobj: print out the fields of the COFF delay-import table 2014-10-03 18:07:18 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData Eliminate some deep std::vector copies. NFC. 2014-10-03 18:33:16 +00:00
Support Converting the ErrorHandlerMutex to a ManagedStatic to avoid the static constructor and destructor. 2014-10-03 22:03:12 +00:00
TableGen Eliminate some deep std::vector copies. NFC. 2014-10-03 18:33:16 +00:00
Target [x86] Remove the 2-addr-to-3-addr "optimization" from shufps to pshufd. 2014-10-05 22:57:31 +00:00
Transforms [InstCombine] Simplify the logic from r219067 using ValueTracking 2014-10-05 00:53:02 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile