For: memory operations -> stores
authorReid Spencer <rspencer@reidspencer.com>
Tue, 19 Jul 2005 04:52:44 +0000 (04:52 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 19 Jul 2005 04:52:44 +0000 (04:52 +0000)
commita0f5bf306c0e66ca5fc519fd3b0cb732d37d4a5e
treee121afceb02c82bb1d1a2d21b3a66377246daa56
parenta307978610ae790724b04e9d58368ae82a43c49e
For: memory operations -> stores
This is the first incremental patch to implement this feature. It adds no
functionality to LLVM but setup up the information needed from targets in
order to implement the optimization correctly. Each target needs to specify
the maximum number of store operations for conversion of the llvm.memset,
llvm.memcpy, and llvm.memmove intrinsics into a sequence of store operations.
The limit needs to be chosen at the threshold of performance for such an
optimization (generally smallish). The target also needs to specify whether
the target can support unaligned stores for multi-byte store operations.
This helps ensure the optimization doesn't generate code that will trap on
an alignment errors.
More patches to follow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22468 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetLowering.h
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/Target/X86/X86ISelPattern.cpp