File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -429,18 +429,20 @@ struct MarkFunctionMemoryEffectsPass
429429 argEffectInfo.enzymexlaEffects );
430430
431431 if (isPointerType (funcOp.getArgument (i))) {
432- if (argEffectInfo.readOnly ) {
432+ assert ((argEffectInfo.readOnly ^ argEffectInfo.writeOnly ) &&
433+ " cannot have both readOnly and writeOnly" );
434+ if (argEffectInfo.readOnly && !argEffectInfo.readNone ) {
433435 funcOp.setArgAttr (i, LLVM::LLVMDialect::getReadonlyAttrName (),
434436 builder.getUnitAttr ());
435437 }
436- if (argEffectInfo.writeOnly ) {
438+ if (argEffectInfo.writeOnly && !argEffectInfo. readNone ) {
437439 funcOp.setArgAttr (i, LLVM::LLVMDialect::getWriteOnlyAttrName (),
438440 builder.getUnitAttr ());
439441 }
440- // if (argEffectInfo.readNone) {
441- // funcOp.setArgAttr(i, LLVM::LLVMDialect::getReadnoneAttrName(),
442- // builder.getUnitAttr());
443- // }
442+ if (argEffectInfo.readNone ) {
443+ funcOp.setArgAttr (i, LLVM::LLVMDialect::getReadnoneAttrName (),
444+ builder.getUnitAttr ());
445+ }
444446 if (!argEffects[i][3 ]) {
445447 funcOp.setArgAttr (i, LLVM::LLVMDialect::getNoFreeAttrName (),
446448 builder.getUnitAttr ());
You can’t perform that action at this time.
0 commit comments