diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2011-07-27 22:21:52 +0000 | 
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2011-07-27 22:21:52 +0000 | 
| commit | 26a484852efff773c8e093e6a408d2500a43d0ca (patch) | |
| tree | a2670797e5fcef811d0d694c7b605aa336771d80 /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | |
| parent | 1644409b477a12f45448970a96493366652a5e0d (diff) | |
| download | llvm-26a484852efff773c8e093e6a408d2500a43d0ca.zip llvm-26a484852efff773c8e093e6a408d2500a43d0ca.tar.gz llvm-26a484852efff773c8e093e6a408d2500a43d0ca.tar.bz2  | |
Code generation for 'fence' instruction.
llvm-svn: 136283
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index bdddca3..67707c6 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -3221,7 +3221,12 @@ void SelectionDAGBuilder::visitStore(const StoreInst &I) {  }  void SelectionDAGBuilder::visitFence(const FenceInst &I) { -  llvm_unreachable("Not implemented yet"); +  DebugLoc dl = getCurDebugLoc(); +  SDValue Ops[3]; +  Ops[0] = getRoot(); +  Ops[1] = DAG.getConstant(I.getOrdering(), TLI.getPointerTy()); +  Ops[2] = DAG.getConstant(I.getSynchScope(), TLI.getPointerTy()); +  DAG.setRoot(DAG.getNode(ISD::ATOMIC_FENCE, dl, MVT::Other, Ops, 3));  }  /// visitTargetIntrinsic - Lower a call of a target intrinsic to an INTRINSIC  | 
