@@ -33,9 +33,15 @@ use std::{i8, ptr};
3333use super :: * ;
3434use llvm_zluda:: analysis:: { LLVMVerifierFailureAction , LLVMVerifyModule } ;
3535use llvm_zluda:: bit_writer:: LLVMWriteBitcodeToMemoryBuffer ;
36- use llvm_zluda:: { core:: * , * } ;
37- use llvm_zluda:: { prelude:: * , LLVMZludaBuildAtomicRMW } ;
38- use llvm_zluda:: { LLVMCallConv , LLVMZludaBuildAlloca } ;
36+ use llvm_zluda:: prelude:: * ;
37+ use llvm_zluda:: target:: { LLVMGetModuleDataLayout , LLVMSizeOfTypeInBits } ;
38+ use llvm_zluda:: { core:: * , LLVMAtomicOrdering , LLVMIntPredicate , LLVMRealPredicate } ;
39+ use llvm_zluda:: {
40+ LLVMAttributeFunctionIndex , LLVMCallConv , LLVMZludaAtomicRMWBinOp , LLVMZludaBuildAlloca ,
41+ LLVMZludaBuildAtomicCmpXchg , LLVMZludaBuildAtomicRMW , LLVMZludaBuildFence ,
42+ LLVMZludaFastMathAllowReciprocal , LLVMZludaFastMathApproxFunc , LLVMZludaFastMathNone ,
43+ LLVMZludaSetFastMathFlags ,
44+ } ;
3945
4046const LLVM_UNNAMED : & CStr = c"" ;
4147// https://llvm.org/docs/AMDGPUUsage.html#address-spaces
@@ -434,7 +440,7 @@ impl<'a, 'input> ModuleEmitContext<'a, 'input> {
434440 & mut self ,
435441 type_ : & ast:: Type ,
436442 array_init : & [ u8 ] ,
437- global : * mut llvm_zluda :: LLVMValue ,
443+ global : LLVMValueRef ,
438444 ) -> Result < ( ) , TranslateError > {
439445 match type_ {
440446 ast:: Type :: Array ( None , scalar, dimensions) => {
@@ -1357,7 +1363,7 @@ impl<'a> MethodEmitContext<'a> {
13571363 if repack. is_extract {
13581364 let src = self . resolver . value ( repack. packed ) ?;
13591365 for ( index, dst) in repack. unpacked . iter ( ) . enumerate ( ) {
1360- let index: * mut LLVMValue = unsafe { LLVMConstInt ( i8_type, index as _ , 0 ) } ;
1366+ let index: LLVMValueRef = unsafe { LLVMConstInt ( i8_type, index as _ , 0 ) } ;
13611367 self . resolver . with_result ( * dst, |dst| unsafe {
13621368 LLVMBuildExtractElement ( self . builder , src, index, dst)
13631369 } ) ;
@@ -1723,8 +1729,9 @@ impl<'a> MethodEmitContext<'a> {
17231729
17241730 // Check if bitcast is valid between these types
17251731 // Bitcast requires same size types
1726- let src_size = unsafe { LLVMSizeOfTypeInBits ( self . context , src_type) } ;
1727- let dst_size = unsafe { LLVMSizeOfTypeInBits ( self . context , dst_type) } ;
1732+ let data_layout = unsafe { LLVMGetModuleDataLayout ( self . module ) } ;
1733+ let src_size = unsafe { LLVMSizeOfTypeInBits ( data_layout, src_type) } ;
1734+ let dst_size = unsafe { LLVMSizeOfTypeInBits ( data_layout, dst_type) } ;
17281735
17291736 if src_size == dst_size {
17301737 // Same size, we can use bitcast
0 commit comments