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 | 1a32ede6fd4c87b95a4bb7ff11b7e6dfba6b7af2 (patch) | |
tree | 93ccc0052dd94c3021552ca8487f9361b8d77c66 /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h | |
parent | d60abbf7f2aa0d689c8427f980fad59274e7e4f5 (diff) | |
download | bcm5719-llvm-1a32ede6fd4c87b95a4bb7ff11b7e6dfba6b7af2.tar.gz bcm5719-llvm-1a32ede6fd4c87b95a4bb7ff11b7e6dfba6b7af2.zip |
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.
llvm-svn: 92098
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h index c9c5f4f87c5..88a2017b474 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h +++ b/llvm/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); |