@@ -8,6 +8,8 @@ public unsafe partial struct LLVMBuilderRef(IntPtr handle) : IDisposable, IEquat
88{
99 public IntPtr Handle = handle ;
1010
11+ public readonly LLVMContextRef Context => ( Handle != IntPtr . Zero ) ? LLVM . GetBuilderContext ( this ) : default ;
12+
1113 public readonly LLVMValueRef CurrentDebugLocation
1214 {
1315 get
@@ -21,6 +23,32 @@ public readonly LLVMValueRef CurrentDebugLocation
2123 }
2224 }
2325
26+ public readonly LLVMMetadataRef CurrentDebugLocation2
27+ {
28+ get
29+ {
30+ return ( Handle != IntPtr . Zero ) ? LLVM . GetCurrentDebugLocation2 ( this ) : default ;
31+ }
32+
33+ set
34+ {
35+ LLVM . SetCurrentDebugLocation2 ( this , value ) ;
36+ }
37+ }
38+
39+ public readonly LLVMMetadataRef DefaultFPMathTag
40+ {
41+ get
42+ {
43+ return ( Handle != IntPtr . Zero ) ? LLVM . BuilderGetDefaultFPMathTag ( this ) : default ;
44+ }
45+
46+ set
47+ {
48+ LLVM . BuilderSetDefaultFPMathTag ( this , value ) ;
49+ }
50+ }
51+
2452 public readonly LLVMBasicBlockRef InsertBlock => ( Handle != IntPtr . Zero ) ? LLVM . GetInsertBlock ( this ) : default ;
2553
2654 public static implicit operator LLVMBuilderRef ( LLVMOpaqueBuilder * Builder ) => new LLVMBuilderRef ( ( IntPtr ) Builder ) ;
@@ -33,6 +61,8 @@ public readonly LLVMValueRef CurrentDebugLocation
3361
3462 public static LLVMBuilderRef Create ( LLVMContextRef C ) => LLVM . CreateBuilderInContext ( C ) ;
3563
64+ public readonly void AddMetadataToInst ( LLVMValueRef Inst ) => LLVM . AddMetadataToInst ( this , Inst ) ;
65+
3666 public readonly LLVMValueRef BuildAdd ( LLVMValueRef LHS , LLVMValueRef RHS , string Name = "" ) => BuildAdd ( LHS , RHS , Name . AsSpan ( ) ) ;
3767
3868 public readonly LLVMValueRef BuildAdd ( LLVMValueRef LHS , LLVMValueRef RHS , ReadOnlySpan < char > Name )
@@ -99,8 +129,14 @@ public readonly LLVMValueRef BuildAShr(LLVMValueRef LHS, LLVMValueRef RHS, ReadO
99129 return LLVM . BuildAShr ( this , LHS , RHS , marshaledName ) ;
100130 }
101131
132+ public readonly LLVMValueRef BuildAtomicCmpXchg ( LLVMValueRef Ptr , LLVMValueRef Cmp , LLVMValueRef New , LLVMAtomicOrdering SuccessOrdering , LLVMAtomicOrdering FailureOrdering , bool SingleThread ) => LLVM . BuildAtomicCmpXchg ( this , Ptr , Cmp , New , SuccessOrdering , FailureOrdering , SingleThread ? 1 : 0 ) ;
133+
134+ public readonly LLVMValueRef BuildAtomicCmpXchgSyncScope ( LLVMValueRef Ptr , LLVMValueRef Cmp , LLVMValueRef New , LLVMAtomicOrdering SuccessOrdering , LLVMAtomicOrdering FailureOrdering , uint SSID ) => LLVM . BuildAtomicCmpXchgSyncScope ( this , Ptr , Cmp , New , SuccessOrdering , FailureOrdering , SSID ) ;
135+
102136 public readonly LLVMValueRef BuildAtomicRMW ( LLVMAtomicRMWBinOp op , LLVMValueRef PTR , LLVMValueRef Val , LLVMAtomicOrdering ordering , bool singleThread ) => LLVM . BuildAtomicRMW ( this , op , PTR , Val , ordering , singleThread ? 1 : 0 ) ;
103137
138+ public readonly LLVMValueRef BuildAtomicRMWSyncScope ( LLVMAtomicRMWBinOp op , LLVMValueRef PTR , LLVMValueRef Val , LLVMAtomicOrdering ordering , uint SSID ) => LLVM . BuildAtomicRMWSyncScope ( this , op , PTR , Val , ordering , SSID ) ;
139+
104140 public readonly LLVMValueRef BuildBinOp ( LLVMOpcode Op , LLVMValueRef LHS , LLVMValueRef RHS , string Name = "" ) => BuildBinOp ( Op , LHS , RHS , Name . AsSpan ( ) ) ;
105141
106142 public readonly LLVMValueRef BuildBinOp ( LLVMOpcode Op , LLVMValueRef LHS , LLVMValueRef RHS , ReadOnlySpan < char > Name )
@@ -130,6 +166,31 @@ public readonly LLVMValueRef BuildCall2(LLVMTypeRef Ty, LLVMValueRef Fn, ReadOnl
130166 }
131167 }
132168
169+ public readonly LLVMValueRef BuildCallBr ( LLVMTypeRef Ty , LLVMValueRef Fn , LLVMBasicBlockRef DefaultDest , LLVMBasicBlockRef [ ] IndirectDests , LLVMValueRef [ ] Args , LLVMOperandBundleRef [ ] Bundles , string Name = "" ) => BuildCallBr ( Ty , Fn , DefaultDest , IndirectDests . AsSpan ( ) , Args . AsSpan ( ) , Bundles . AsSpan ( ) , Name . AsSpan ( ) ) ;
170+
171+ public readonly LLVMValueRef BuildCallBr ( LLVMTypeRef Ty , LLVMValueRef Fn , LLVMBasicBlockRef DefaultDest , ReadOnlySpan < LLVMBasicBlockRef > IndirectDests , ReadOnlySpan < LLVMValueRef > Args , ReadOnlySpan < LLVMOperandBundleRef > Bundles , ReadOnlySpan < char > Name )
172+ {
173+ using var marshaledName = new MarshaledString ( Name ) ;
174+ fixed ( LLVMBasicBlockRef * pIndirectDests = IndirectDests )
175+ fixed ( LLVMValueRef * pArgs = Args )
176+ fixed ( LLVMOperandBundleRef * pBundles = Bundles )
177+ {
178+ return LLVM . BuildCallBr ( this , Ty , Fn , DefaultDest , ( LLVMOpaqueBasicBlock * * ) pIndirectDests , ( uint ) IndirectDests . Length , ( LLVMOpaqueValue * * ) pArgs , ( uint ) Args . Length , ( LLVMOpaqueOperandBundle * * ) pBundles , ( uint ) Bundles . Length , marshaledName ) ;
179+ }
180+ }
181+
182+ public readonly LLVMValueRef BuildCallWithOperandBundles ( LLVMTypeRef Ty , LLVMValueRef Fn , LLVMValueRef [ ] Args , LLVMOperandBundleRef [ ] Bundles , string Name = "" ) => BuildCallWithOperandBundles ( Ty , Fn , Args . AsSpan ( ) , Bundles . AsSpan ( ) , Name . AsSpan ( ) ) ;
183+
184+ public readonly LLVMValueRef BuildCallWithOperandBundles ( LLVMTypeRef Ty , LLVMValueRef Fn , ReadOnlySpan < LLVMValueRef > Args , ReadOnlySpan < LLVMOperandBundleRef > Bundles , ReadOnlySpan < char > Name )
185+ {
186+ using var marshaledName = new MarshaledString ( Name ) ;
187+ fixed ( LLVMValueRef * pArgs = Args )
188+ fixed ( LLVMOperandBundleRef * pBundles = Bundles )
189+ {
190+ return LLVM . BuildCallWithOperandBundles ( this , Ty , Fn , ( LLVMOpaqueValue * * ) pArgs , ( uint ) Args . Length , ( LLVMOpaqueOperandBundle * * ) pBundles , ( uint ) Bundles . Length , marshaledName ) ;
191+ }
192+ }
193+
133194 public readonly LLVMValueRef BuildCast ( LLVMOpcode Op , LLVMValueRef Val , LLVMTypeRef DestTy , string Name = "" ) => BuildCast ( Op , Val , DestTy , Name . AsSpan ( ) ) ;
134195
135196 public readonly LLVMValueRef BuildCast ( LLVMOpcode Op , LLVMValueRef Val , LLVMTypeRef DestTy , ReadOnlySpan < char > Name )
@@ -138,6 +199,40 @@ public readonly LLVMValueRef BuildCast(LLVMOpcode Op, LLVMValueRef Val, LLVMType
138199 return LLVM . BuildCast ( this , Op , Val , DestTy , marshaledName ) ;
139200 }
140201
202+ public readonly LLVMValueRef BuildCatchPad ( LLVMValueRef ParentPad , LLVMValueRef [ ] Args , string Name = "" ) => BuildCatchPad ( ParentPad , Args . AsSpan ( ) , Name . AsSpan ( ) ) ;
203+
204+ public readonly LLVMValueRef BuildCatchPad ( LLVMValueRef ParentPad , ReadOnlySpan < LLVMValueRef > Args , ReadOnlySpan < char > Name )
205+ {
206+ using var marshaledName = new MarshaledString ( Name ) ;
207+ fixed ( LLVMValueRef * pArgs = Args )
208+ {
209+ return LLVM . BuildCatchPad ( this , ParentPad , ( LLVMOpaqueValue * * ) pArgs , ( uint ) Args . Length , marshaledName ) ;
210+ }
211+ }
212+
213+ public readonly LLVMValueRef BuildCatchRet ( LLVMValueRef CatchPad , LLVMBasicBlockRef BB ) => LLVM . BuildCatchRet ( this , CatchPad , BB ) ;
214+
215+ public readonly LLVMValueRef BuildCatchSwitch ( LLVMValueRef ParentPad , LLVMBasicBlockRef UnwindBB , uint NumHandlers , string Name = "" ) => BuildCatchSwitch ( ParentPad , UnwindBB , NumHandlers , Name . AsSpan ( ) ) ;
216+
217+ public readonly LLVMValueRef BuildCatchSwitch ( LLVMValueRef ParentPad , LLVMBasicBlockRef UnwindBB , uint NumHandlers , ReadOnlySpan < char > Name )
218+ {
219+ using var marshaledName = new MarshaledString ( Name ) ;
220+ return LLVM . BuildCatchSwitch ( this , ParentPad , UnwindBB , NumHandlers , marshaledName ) ;
221+ }
222+
223+ public readonly LLVMValueRef BuildCleanupPad ( LLVMValueRef ParentPad , LLVMValueRef [ ] Args , string Name = "" ) => BuildCleanupPad ( ParentPad , Args . AsSpan ( ) , Name . AsSpan ( ) ) ;
224+
225+ public readonly LLVMValueRef BuildCleanupPad ( LLVMValueRef ParentPad , ReadOnlySpan < LLVMValueRef > Args , ReadOnlySpan < char > Name )
226+ {
227+ using var marshaledName = new MarshaledString ( Name ) ;
228+ fixed ( LLVMValueRef * pArgs = Args )
229+ {
230+ return LLVM . BuildCleanupPad ( this , ParentPad , ( LLVMOpaqueValue * * ) pArgs , ( uint ) Args . Length , marshaledName ) ;
231+ }
232+ }
233+
234+ public readonly LLVMValueRef BuildCleanupRet ( LLVMValueRef CatchPad , LLVMBasicBlockRef BB ) => LLVM . BuildCleanupRet ( this , CatchPad , BB ) ;
235+
141236 public readonly LLVMValueRef BuildCondBr ( LLVMValueRef If , LLVMBasicBlockRef Then , LLVMBasicBlockRef Else ) => LLVM . BuildCondBr ( this , If , Then , Else ) ;
142237
143238 public readonly LLVMValueRef BuildExactSDiv ( LLVMValueRef LHS , LLVMValueRef RHS , string Name = "" ) => BuildExactSDiv ( LHS , RHS , Name . AsSpan ( ) ) ;
@@ -148,6 +243,14 @@ public readonly LLVMValueRef BuildExactSDiv(LLVMValueRef LHS, LLVMValueRef RHS,
148243 return LLVM . BuildExactSDiv ( this , LHS , RHS , marshaledName ) ;
149244 }
150245
246+ public readonly LLVMValueRef BuildExactUDiv ( LLVMValueRef LHS , LLVMValueRef RHS , string Name = "" ) => BuildExactUDiv ( LHS , RHS , Name . AsSpan ( ) ) ;
247+
248+ public readonly LLVMValueRef BuildExactUDiv ( LLVMValueRef LHS , LLVMValueRef RHS , ReadOnlySpan < char > Name )
249+ {
250+ using var marshaledName = new MarshaledString ( Name ) ;
251+ return LLVM . BuildExactUDiv ( this , LHS , RHS , marshaledName ) ;
252+ }
253+
151254 public readonly LLVMValueRef BuildExtractElement ( LLVMValueRef VecVal , LLVMValueRef Index , string Name = "" ) => BuildExtractElement ( VecVal , Index , Name . AsSpan ( ) ) ;
152255
153256 public readonly LLVMValueRef BuildExtractElement ( LLVMValueRef VecVal , LLVMValueRef Index , ReadOnlySpan < char > Name )
@@ -196,6 +299,14 @@ public readonly LLVMValueRef BuildFence(LLVMAtomicOrdering ordering, bool single
196299 return LLVM . BuildFence ( this , ordering , singleThread ? 1 : 0 , marshaledName ) ;
197300 }
198301
302+ public readonly LLVMValueRef BuildFenceSyncScope ( LLVMAtomicOrdering ordering , uint SSID , string Name = "" ) => BuildFenceSyncScope ( ordering , SSID , Name . AsSpan ( ) ) ;
303+
304+ public readonly LLVMValueRef BuildFenceSyncScope ( LLVMAtomicOrdering ordering , uint SSID , ReadOnlySpan < char > Name )
305+ {
306+ using var marshaledName = new MarshaledString ( Name ) ;
307+ return LLVM . BuildFenceSyncScope ( this , ordering , SSID , marshaledName ) ;
308+ }
309+
199310 public readonly LLVMValueRef BuildFMul ( LLVMValueRef LHS , LLVMValueRef RHS , string Name = "" ) => BuildFMul ( LHS , RHS , Name . AsSpan ( ) ) ;
200311
201312 public readonly LLVMValueRef BuildFMul ( LLVMValueRef LHS , LLVMValueRef RHS , ReadOnlySpan < char > Name )
@@ -289,6 +400,17 @@ public readonly LLVMValueRef BuildGEP2(LLVMTypeRef Ty, LLVMValueRef Pointer, Rea
289400 }
290401 }
291402
403+ public readonly LLVMValueRef BuildGEPWithNoWrapFlags ( LLVMTypeRef Ty , LLVMValueRef Pointer , LLVMValueRef [ ] Indices , LLVMGEPNoWrapFlags NoWrapFlags , string Name = "" ) => BuildGEPWithNoWrapFlags ( Ty , Pointer , Indices . AsSpan ( ) , NoWrapFlags , Name . AsSpan ( ) ) ;
404+
405+ public readonly LLVMValueRef BuildGEPWithNoWrapFlags ( LLVMTypeRef Ty , LLVMValueRef Pointer , ReadOnlySpan < LLVMValueRef > Indices , LLVMGEPNoWrapFlags NoWrapFlags , ReadOnlySpan < char > Name )
406+ {
407+ using var marshaledName = new MarshaledString ( Name ) ;
408+ fixed ( LLVMValueRef * pIndices = Indices )
409+ {
410+ return LLVM . BuildGEPWithNoWrapFlags ( this , Ty , Pointer , ( LLVMOpaqueValue * * ) pIndices , ( uint ) Indices . Length , marshaledName , ( uint ) NoWrapFlags ) ;
411+ }
412+ }
413+
292414 public readonly LLVMValueRef BuildGlobalString ( string Str , string Name = "" ) => BuildGlobalString ( Str . AsSpan ( ) , Name . AsSpan ( ) ) ;
293415
294416 public readonly LLVMValueRef BuildGlobalString ( ReadOnlySpan < char > Str , ReadOnlySpan < char > Name )
@@ -352,6 +474,14 @@ public readonly LLVMValueRef BuildIntCast(LLVMValueRef Val, LLVMTypeRef DestTy,
352474 return LLVM . BuildIntCast ( this , Val , DestTy , marshaledName ) ;
353475 }
354476
477+ public readonly LLVMValueRef BuildIntCast2 ( LLVMValueRef Val , LLVMTypeRef DestTy , bool IsSigned , string Name = "" ) => BuildIntCast2 ( Val , DestTy , IsSigned , Name . AsSpan ( ) ) ;
478+
479+ public readonly LLVMValueRef BuildIntCast2 ( LLVMValueRef Val , LLVMTypeRef DestTy , bool IsSigned , ReadOnlySpan < char > Name )
480+ {
481+ using var marshaledName = new MarshaledString ( Name ) ;
482+ return LLVM . BuildIntCast2 ( this , Val , DestTy , IsSigned ? 1 : 0 , marshaledName ) ;
483+ }
484+
355485 public readonly LLVMValueRef BuildIntToPtr ( LLVMValueRef Val , LLVMTypeRef DestTy , string Name = "" ) => BuildIntToPtr ( Val , DestTy , Name . AsSpan ( ) ) ;
356486
357487 public readonly LLVMValueRef BuildIntToPtr ( LLVMValueRef Val , LLVMTypeRef DestTy , ReadOnlySpan < char > Name )
@@ -371,6 +501,18 @@ public readonly LLVMValueRef BuildInvoke2(LLVMTypeRef Ty, LLVMValueRef Fn, ReadO
371501 }
372502 }
373503
504+ public readonly LLVMValueRef BuildInvokeWithOperandBundles ( LLVMTypeRef Ty , LLVMValueRef Fn , LLVMValueRef [ ] Args , LLVMBasicBlockRef Then , LLVMBasicBlockRef Catch , LLVMOperandBundleRef [ ] Bundles , string Name = "" ) => BuildInvokeWithOperandBundles ( Ty , Fn , Args . AsSpan ( ) , Then , Catch , Bundles . AsSpan ( ) , Name . AsSpan ( ) ) ;
505+
506+ public readonly LLVMValueRef BuildInvokeWithOperandBundles ( LLVMTypeRef Ty , LLVMValueRef Fn , ReadOnlySpan < LLVMValueRef > Args , LLVMBasicBlockRef Then , LLVMBasicBlockRef Catch , ReadOnlySpan < LLVMOperandBundleRef > Bundles , ReadOnlySpan < char > Name )
507+ {
508+ using var marshaledName = new MarshaledString ( Name ) ;
509+ fixed ( LLVMValueRef * pArgs = Args )
510+ fixed ( LLVMOperandBundleRef * pBundles = Bundles )
511+ {
512+ return LLVM . BuildInvokeWithOperandBundles ( this , Ty , Fn , ( LLVMOpaqueValue * * ) pArgs , ( uint ) Args . Length , Then , Catch , ( LLVMOpaqueOperandBundle * * ) pBundles , ( uint ) Bundles . Length , marshaledName ) ;
513+ }
514+ }
515+
374516 public readonly LLVMValueRef BuildIsNotNull ( LLVMValueRef Val , string Name = "" ) => BuildIsNotNull ( Val , Name . AsSpan ( ) ) ;
375517
376518 public readonly LLVMValueRef BuildIsNotNull ( LLVMValueRef Val , ReadOnlySpan < char > Name )
@@ -419,6 +561,12 @@ public readonly LLVMValueRef BuildMalloc(LLVMTypeRef Ty, ReadOnlySpan<char> Name
419561 return LLVM . BuildMalloc ( this , Ty , marshaledName ) ;
420562 }
421563
564+ public readonly LLVMValueRef BuildMemCpy ( LLVMValueRef Dst , uint DstAlign , LLVMValueRef Src , uint SrcAlign , LLVMValueRef Size ) => LLVM . BuildMemCpy ( this , Dst , DstAlign , Src , SrcAlign , Size ) ;
565+
566+ public readonly LLVMValueRef BuildMemMove ( LLVMValueRef Dst , uint DstAlign , LLVMValueRef Src , uint SrcAlign , LLVMValueRef Size ) => LLVM . BuildMemMove ( this , Dst , DstAlign , Src , SrcAlign , Size ) ;
567+
568+ public readonly LLVMValueRef BuildMemSet ( LLVMValueRef Ptr , LLVMValueRef Val , LLVMValueRef Len , uint Align ) => LLVM . BuildMemSet ( this , Ptr , Val , Len , Align ) ;
569+
422570 public readonly LLVMValueRef BuildMul ( LLVMValueRef LHS , LLVMValueRef RHS , string Name = "" ) => BuildMul ( LHS , RHS , Name . AsSpan ( ) ) ;
423571
424572 public readonly LLVMValueRef BuildMul ( LLVMValueRef LHS , LLVMValueRef RHS , ReadOnlySpan < char > Name )
0 commit comments