瀏覽代碼

better memcpy integration

Nicolas Winkler 6 年之前
父節點
當前提交
d1d312c7b0
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      src/CodegenVisitor.cpp

+ 4 - 2
src/CodegenVisitor.cpp

@@ -503,9 +503,11 @@ llvm::Value* StatementVisitor::visit(sem::AssignmentStatement& assignment,
     
     if (val->getType()->isPointerTy() && val->getType()->getPointerElementType()->isStructTy()) {
         const llvm::DataLayout& layout = fg.builder.GetInsertBlock()->getModule()->getDataLayout();
+#if LLVM_VERSION_MAJOR >= 7
         return fg.builder.CreateMemCpy(target, 1, val, 1, layout.getTypeAllocSize(val->getType()->getPointerElementType()), false);
-        //llvm::Intrinsic::memcpy_element_unordered_atomic
-        //return fg.builder.CreateMemMove(target, val, layout.getTypeAllocSize(val->getType()->getPointerElementType()), 1);
+#else
+        return fg.builder.CreateMemCpy(target, val, layout.getTypeAllocSize(val->getType()->getPointerElementType()), 1);
+#endif
     }
     else {
         return fg.builder.CreateStore(val, target);