diff options
author | Chris Lattner <sabre@nondot.org> | 2009-12-24 00:37:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-12-24 00:37:38 +0000 |
commit | 8047d9a6be9c6261c4d3f286786be856d619ed0f (patch) | |
tree | e776a41a241dfd104c9d5f49d28f5cbd5bfb5ab9 /lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h | |
parent | 465e2b950d61c870fb3120c80191973e8282a3ef (diff) | |
download | external_llvm-8047d9a6be9c6261c4d3f286786be856d619ed0f.zip external_llvm-8047d9a6be9c6261c4d3f286786be856d619ed0f.tar.gz external_llvm-8047d9a6be9c6261c4d3f286786be856d619ed0f.tar.bz2 |
move an optimization for memcmp out of simplifylibcalls and into
SDISel. This optimization was causing simplifylibcalls to
introduce type-unsafe nastiness. This is the first step, I'll be
expanding the memcmp optimizations shortly, covering things that
we really really wouldn't want simplifylibcalls to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92098 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h index c9c5f4f..88a2017 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h @@ -91,11 +91,13 @@ class SelectionDAGBuilder { DenseMap<const Value*, SDValue> NodeMap; +public: /// PendingLoads - Loads are not emitted to the program immediately. We bunch /// them up and then emit token factor nodes when possible. This allows us to /// get simple disambiguation between loads without worrying about alias /// analysis. SmallVector<SDValue, 8> PendingLoads; +private: /// PendingExports - CopyToReg nodes that copy values to virtual registers /// for export to other blocks need to be emitted before any terminator @@ -461,6 +463,8 @@ private: void visitStore(StoreInst &I); void visitPHI(PHINode &I) { } // PHI nodes are handled specially. void visitCall(CallInst &I); + bool visitMemCmpCall(CallInst &I); + void visitInlineAsm(CallSite CS); const char *visitIntrinsicCall(CallInst &I, unsigned Intrinsic); void visitTargetIntrinsic(CallInst &I, unsigned Intrinsic); |