OSDN Git Service

Split the store of a wide value merged from an int-fp pair into multiple stores.
authorWei Mi <wmi@google.com>
Fri, 2 Sep 2016 17:17:04 +0000 (17:17 +0000)
committerWei Mi <wmi@google.com>
Fri, 2 Sep 2016 17:17:04 +0000 (17:17 +0000)
commitc306b6131a490ee2292405c8a13ff5e0c5319caf
tree909375517fbd6152d55bd4322fdeb0f74f38e652
parentef2c8020397b8c6c7e6d2c26516dec91c584b88d
Split the store of a wide value merged from an int-fp pair into multiple stores.

For the store of a wide value merged from a pair of values, especially int-fp pair,
sometimes it is more efficent to split it into separate narrow stores, which can
remove the bitwise instructions or sink them to colder places.

Now the feature is only enabled on x86 target, and only store of int-fp pair is
splitted. It is possible that the application scope gets extended with perf evidence
support in the future.

Differential Revision: https://reviews.llvm.org/D22840

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280505 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetLowering.h
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/Target/X86/X86ISelLowering.h
test/Transforms/InstCombine/split-store.ll [new file with mode: 0644]