case LP_FUNC_ATTR_INREG: return "inreg";
case LP_FUNC_ATTR_NOALIAS: return "noalias";
case LP_FUNC_ATTR_NOUNWIND: return "nounwind";
- case LP_FUNC_ATTR_READNONE: return "readnone";
- case LP_FUNC_ATTR_READONLY: return "readonly";
- case LP_FUNC_ATTR_WRITEONLY: return "writeonly";
case LP_FUNC_ATTR_CONVERGENT: return "convergent";
case LP_FUNC_ATTR_PRESPLITCORO: return "presplitcoroutine";
default:
LP_FUNC_ATTR_INREG = (1 << 2),
LP_FUNC_ATTR_NOALIAS = (1 << 3),
LP_FUNC_ATTR_NOUNWIND = (1 << 4),
- LP_FUNC_ATTR_READNONE = (1 << 5),
- LP_FUNC_ATTR_READONLY = (1 << 6),
- LP_FUNC_ATTR_WRITEONLY = (1 << 7),
- LP_FUNC_ATTR_CONVERGENT = (1 << 8),
- LP_FUNC_ATTR_PRESPLITCORO = (1 << 9),
+ LP_FUNC_ATTR_CONVERGENT = (1 << 5),
+ LP_FUNC_ATTR_PRESPLITCORO = (1 << 6),
};
void
LLVMValueRef inputs_ptr = LLVMBuildCall2(builder, call_type, fetch_ptr, &elem, 1, "");
assert(LLVMGetTypeKind(LLVMTypeOf(inputs_ptr)) == LLVMPointerTypeKind);
- /* Mark the function read-only so that LLVM can optimize it away */
- lp_add_function_attr(inputs_ptr, -1, LP_FUNC_ATTR_READONLY);
lp_add_function_attr(inputs_ptr, -1, LP_FUNC_ATTR_NOUNWIND);
lp_build_name(inputs_ptr, "input%u_ptr", attrib);
LLVMValueRef texels_ptr = LLVMBuildCall2(builder, call_type, fetch_ptr, &elem, 1, "");
assert(LLVMGetTypeKind(LLVMTypeOf(texels_ptr)) == LLVMPointerTypeKind);
- /* Mark the function read-only so that LLVM can optimize it away */
- lp_add_function_attr(texels_ptr, -1, LP_FUNC_ATTR_READONLY);
lp_add_function_attr(texels_ptr, -1, LP_FUNC_ATTR_NOUNWIND);
lp_build_name(texels_ptr, "tex%u_ptr", attrib);