pub fn LLVMExtAddDefaultAttrs(context: LLVMContextRef, function: LLVMValueRef) {
    unsafe {
        let cpu_name_attr = LLVMCreateStringAttribute(
            context,
            c_str!("target-cpu"),
            10,
            HOST_CPU_NAME.as_ptr(),
            HOST_CPU_NAME.as_bytes().len() as u32,
        );
        let cpu_features_attr = LLVMCreateStringAttribute(
            context,
            c_str!("target-features"),
            15,
            HOST_CPU_FEATURES.as_ptr(),
            HOST_CPU_FEATURES.as_bytes().len() as u32,
        );

        LLVMAddAttributeAtIndex(function, LLVMAttributeFunctionIndex, cpu_name_attr);
        LLVMAddAttributeAtIndex(function, LLVMAttributeFunctionIndex, cpu_features_attr);
    }
}
Add the host-specific attributes to a function.

These attributes should be added to each function, since they define target-specific features
that enhance generated machine code quality.
weld/src/codegen/llvm2/llvm_exts.rs