From 07e876ef12df83815dde60eaca3cb7803c9fe337 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Wed, 30 Sep 2026 20:27:08 +0800 Subject: [PATCH 1/3] cl: tryToMethod bugfix --- cl/class.go | 2 +- cl/compile.go | 14 +++++++++----- cl/func.go | 42 ++++++++++++++---------------------------- cl/union.go | 2 +- cmd/llcppg/llcppg.go | 4 ++++ go.mod | 2 +- go.sum | 4 ++-- 7 files changed, 32 insertions(+), 38 deletions(-) diff --git a/cl/class.go b/cl/class.go index 6eb6a045..9e31be8c 100644 --- a/cl/class.go +++ b/cl/class.go @@ -454,7 +454,7 @@ func loadOutsideMethod(ctx *pkgCtx, outsideDecl clang.Cursor) { if m, ok := ctx.fns[fnUSR]; ok { m.decl = outsideDecl } else { - log.Panicln("method undeclared -", funcDisplayName(outsideDecl)) + ctx.panicf(outsideDecl, "method undeclared - %s", funcDisplayName(outsideDecl)) } } diff --git a/cl/compile.go b/cl/compile.go index 14c1fe60..1a08873a 100644 --- a/cl/compile.go +++ b/cl/compile.go @@ -29,18 +29,18 @@ import ( const ( DbgFlagCompileDecl = 1 << iota - DbgFlagImport - DbgFlagAll = DbgFlagCompileDecl | DbgFlagImport + DbgFlagMajorProc + DbgFlagAll = DbgFlagCompileDecl | DbgFlagMajorProc ) var ( debugCompileDecl bool - debugImport bool + debugMajorProc bool ) func SetDebug(flags int) { debugCompileDecl = (flags & DbgFlagCompileDecl) != 0 - debugImport = (flags & DbgFlagImport) != 0 + debugMajorProc = (flags & DbgFlagMajorProc) != 0 } // ----------------------------------------------------------------------------- @@ -224,12 +224,16 @@ func NewPackage(pkgPath, pkgName string, files []Source, conf *Config) (ret Pack lastSeen: make(map[string]none), impPkgs: make(map[string]none), } loadFiles(ctx, files, pkgPath, conf.GoFileOf) - ctx.compile() + // NOTE(xsw): should complete unitialized typDecls before compiling + if debugMajorProc { + log.Println("==> complete unitialized type declarations") + } for _, typDecl := range typdecls { if !typDecl.Inited() { typDecl.InitType(pkg, types.NewStruct(nil, nil)) } } + ctx.compile() ret.Package = pkg ret.Wrap = ctx.wrap ret.Public = ctx.pubs diff --git a/cl/func.go b/cl/func.go index edc8893a..56d64e8c 100644 --- a/cl/func.go +++ b/cl/func.go @@ -17,7 +17,6 @@ package cl import ( - "go/token" "go/types" "log" "strconv" @@ -124,7 +123,7 @@ func compileFuncOrMethod(ctx *pkgCtx, obj *funcObj, this *classCtx) { } } else { typNamed := this.typNamed - recv = types.NewParam(token.NoPos, pkgTypes, "this", types.NewPointer(typNamed)) + recv = types.NewParam(goNodePos(ctx, fn), pkgTypes, "this", types.NewPointer(typNamed)) typName = typNamed.Obj().Name() } fnName := ctx.funcName(origName, obj.order(), typName, typCName, this == nil, true) @@ -147,7 +146,8 @@ func compileFuncOrMethod(ctx *pkgCtx, obj *funcObj, this *classCtx) { sig := types.NewSignatureType(recv, nil, nil, types.NewTuple(params...), results, variadic) f, err := pkg.NewFuncWith(goNodePos(ctx, fn), fnName, sig, nil) if err != nil { - log.Panicln("compileFunc:", origName, err) + ctx.logf(fn, "recvType: %T", recv.Type()) + panic(err) } if recv == nil { @@ -188,8 +188,7 @@ func existMember(typ *types.Named, name string) bool { } const ( - llgoSupportAliasAsRecv = true - c2goMethodRecvName = "self" + c2goMethodRecvName = "self" ) func tryToMethod(ctx *pkgCtx, pkgTypes *types.Package, params []*types.Var) ([]*types.Var, *types.Var, *types.Named, string) { @@ -200,8 +199,9 @@ func tryToMethod(ctx *pkgCtx, pkgTypes *types.Package, params []*types.Var) ([]* // don't convert to method if the first two params have the same type return params, nil, nil, "" } - if tp, ok := t.(*types.Pointer); ok { - t = tp.Elem() + tPtr, isPtr := t.(*types.Pointer) + if isPtr { + t = tPtr.Elem() } switch t := t.(type) { case *types.Named: @@ -216,30 +216,16 @@ func tryToMethod(ctx *pkgCtx, pkgTypes *types.Package, params []*types.Var) ([]* break } ta := types.Unalias(t) - if tp, ok := ta.(*types.Pointer); ok { - ta = tp.Elem() + if !isPtr { + if tp, ok := ta.(*types.Pointer); ok { + ta = tp.Elem() + } } if tn, ok := ta.(*types.Named); ok && tn.Obj().Pkg() == pkgTypes { - if llgoSupportAliasAsRecv { - if ctx.stdRecvName { - first = types.NewParam(first.Pos(), pkgTypes, c2goMethodRecvName, first.Type()) - } - return params[1:], first, tn, t.Obj().Name() - } else { - var recvName string - if ctx.stdRecvName { - recvName = c2goMethodRecvName - } else { - recvName = first.Name() - } - first = types.NewParam(first.Pos(), pkgTypes, recvName, types.Unalias(t)) - tnObjName := tn.Obj().Name() - // add type abbreviation for alias type if not exists - if _, ok := ctx.typeAbbr[tnObjName]; !ok { - ctx.typeAbbr[tnObjName] = t.Obj().Name() - } - return params[1:], first, tn, tnObjName + if ctx.stdRecvName { + first = types.NewParam(first.Pos(), pkgTypes, c2goMethodRecvName, first.Type()) } + return params[1:], first, tn, t.Obj().Name() } } } diff --git a/cl/union.go b/cl/union.go index 104c9221..a4aa5226 100644 --- a/cl/union.go +++ b/cl/union.go @@ -234,7 +234,7 @@ func genUnionAccessor(ctx *pkgCtx, recvPtr types.Type, m clang.Cursor) { f, err := pkg.NewFuncWith(goNodePos(ctx, m), name, sig, nil) if err != nil { - log.Panicln("genUnionAccessor:", member, err) + ctx.panicf(m, "union field %s: genUnionAccessor failed - %v", member, err) } cb := f.BodyStart(pkg) // return (*T)(unsafe.Pointer(p)) diff --git a/cmd/llcppg/llcppg.go b/cmd/llcppg/llcppg.go index d194e302..a34e338e 100644 --- a/cmd/llcppg/llcppg.go +++ b/cmd/llcppg/llcppg.go @@ -21,6 +21,7 @@ import ( "fmt" "os" + "github.com/goplus/gogen" "github.com/goplus/llcppg/cl" "github.com/goplus/llcppg/clang" "github.com/goplus/llcppg/tool" @@ -47,8 +48,11 @@ func main() { if *debug { cl.SetDebug(cl.DbgFlagAll) tool.SetDebug(tool.DbgFlagAll) + gogen.SetDebug(gogen.DbgFlagAll) } else if *verbose { + cl.SetDebug(cl.DbgFlagMajorProc) tool.SetDebug(tool.DbgFlagSettings) + gogen.SetDebug(gogen.DbgFlagInstruction) } idx := clang.CreateIndex(1, 1) diff --git a/go.mod b/go.mod index e5569cc8..6dfdc46a 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/goplus/llcppg go 1.27.0 // llgo 1.0 require ( - github.com/goplus/gogen v1.25.2 + github.com/goplus/gogen v1.25.3 github.com/goplus/lib v0.5.4 github.com/goplus/mod v0.22.1 github.com/llarhub/clang-c v0.7.0 diff --git a/go.sum b/go.sum index 66e57996..37522e1b 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/goplus/gogen v1.25.2 h1:e7rpGecLv77cTVORoBGmjZS9YBDqqTP2/Et9FsFnAnk= -github.com/goplus/gogen v1.25.2/go.mod h1:Y7ulYW3wonQ3d9er00b0uGFEV/IUZa6okWJZh892ACQ= +github.com/goplus/gogen v1.25.3 h1:g8VWgNcCwTG9DFs08umVNtxl/BSLHH1cbvqWzyxrPVk= +github.com/goplus/gogen v1.25.3/go.mod h1:Y7ulYW3wonQ3d9er00b0uGFEV/IUZa6okWJZh892ACQ= github.com/goplus/lib v0.5.4 h1:Ltrj+lY844/jx0nJqCRQEq3YzBkHb3jBjCQZWFUdlTc= github.com/goplus/lib v0.5.4/go.mod h1:SgJv3oPqLLHCu0gcL46ejOP3x7/2ry2Jtxu7ta32kp0= github.com/goplus/mod v0.22.1 h1:3GQZqKlcQAiMpRUDAHvFryGYie+mT0JMjguEqOtIjkE= From cef00dab2c3c280d00ccc6da58c660d888282d20 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Wed, 30 Sep 2026 20:37:38 +0800 Subject: [PATCH 2/3] cl compileFuncOrMethod: remove temp code --- cl/compile.go | 4 ++-- cl/func.go | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cl/compile.go b/cl/compile.go index 1a08873a..045bb295 100644 --- a/cl/compile.go +++ b/cl/compile.go @@ -224,9 +224,9 @@ func NewPackage(pkgPath, pkgName string, files []Source, conf *Config) (ret Pack lastSeen: make(map[string]none), impPkgs: make(map[string]none), } loadFiles(ctx, files, pkgPath, conf.GoFileOf) - // NOTE(xsw): should complete unitialized typDecls before compiling + // NOTE(xsw): should complete uninitialized typDecls before compiling if debugMajorProc { - log.Println("==> complete unitialized type declarations") + log.Println("==> complete uninitialized type declarations") } for _, typDecl := range typdecls { if !typDecl.Inited() { diff --git a/cl/func.go b/cl/func.go index 56d64e8c..62f4a694 100644 --- a/cl/func.go +++ b/cl/func.go @@ -146,7 +146,6 @@ func compileFuncOrMethod(ctx *pkgCtx, obj *funcObj, this *classCtx) { sig := types.NewSignatureType(recv, nil, nil, types.NewTuple(params...), results, variadic) f, err := pkg.NewFuncWith(goNodePos(ctx, fn), fnName, sig, nil) if err != nil { - ctx.logf(fn, "recvType: %T", recv.Type()) panic(err) } From 39cc473ab17f7b76af35462cc6f28e30b9b6f99b Mon Sep 17 00:00:00 2001 From: xushiwei Date: Wed, 30 Sep 2026 21:54:13 +0800 Subject: [PATCH 3/3] cl: conf.TypeSuffix --- cl/compile.go | 10 +- cl/ctx.go | 17 +- .../AMDHSAKernelDescriptor/out.go | 305 ------------------ .../llvm-22.1.8-support/llcppg-system.cfg | 1 + .../system/AMDHSAKernelDescriptor.go | 2 +- tool/config.go | 1 + tool/gen.go | 1 + tool/gen_test.go | 5 +- 8 files changed, 26 insertions(+), 316 deletions(-) delete mode 100644 tool/_testcpp/llvm-22.1.8-support/AMDHSAKernelDescriptor/out.go diff --git a/cl/compile.go b/cl/compile.go index 045bb295..7605037b 100644 --- a/cl/compile.go +++ b/cl/compile.go @@ -119,9 +119,9 @@ type Config struct { // name will be used in function names (optional). TypeAbbr map[string]string - // TypePrefix specifies the prefix to remove from C/C++ type names when generating Go - // type names (optional). - TypePrefix []string + // TypePrefix/TypeSuffix specifies the prefix/suffix to remove from C/C++ type names + // when generating Go type names (optional). + TypePrefix, TypeSuffix []string // EnumPrefix specifies the prefix to remove from C/C++ enum value names when generating // Go const names (optional). @@ -213,8 +213,8 @@ func NewPackage(pkgPath, pkgName string, files []Source, conf *Config) (ret Pack overloads: make(map[string]*overloads), pkg: pkg, cb: pkg.CB(), llgo: llgo, fset: pkg.Fset, c: c, lang: conf.Language, keepDoc: !conf.DontKeepDoc, stdRecvName: conf.UseStdRecvName, - cflags: conf.CFlags, wrapFileHeader: conf.WrapFileHeader, - typeAbbr: conf.TypeAbbr, typePrefix: conf.TypePrefix, fnPrefix: conf.FuncPrefix, + cflags: conf.CFlags, wrapFileHeader: conf.WrapFileHeader, typeAbbr: conf.TypeAbbr, + typePrefix: conf.TypePrefix, typeSuffix: conf.TypeSuffix, fnPrefix: conf.FuncPrefix, enumPrefix: conf.EnumPrefix, macroPrefix: conf.MacroPrefix, varPrefix: conf.VarPrefix, nsIgnores: conf.NSIgnore, typeIgnores: conf.TypeIgnore, rename: rename, classes: conf.Class, nonClasses: conf.NonClass, typdecls: typdecls, diff --git a/cl/ctx.go b/cl/ctx.go index 4ded6117..91391467 100644 --- a/cl/ctx.go +++ b/cl/ctx.go @@ -123,6 +123,7 @@ type pkgCtx struct { enumPrefix []string macroPrefix []string typePrefix []string + typeSuffix []string classes []string // typedef names to be treated as classes nonClasses []string // typedef names to be treated as non-classes typeAbbr map[string]string // Go type name => abbreviated name, used in function names @@ -308,7 +309,12 @@ func (p *pkgCtx) enumvalName(name, ns string) string { } func (p *pkgCtx) typeName(name string, _ bool) string { - return p.globalName(name, p.typePrefix) + if v, ok := p.rename[name]; ok { + return v // special case + } + name = rmPrefix(name, p.typePrefix) + name = rmSuffix(name, p.typeSuffix) + return p.cstyleToGo(name, true) } func (p *pkgCtx) funcName(name string, order int, typName, typCName string, global, _ bool) string { @@ -446,6 +452,15 @@ func rmPrefix(name string, prefix []string) string { return name } +func rmSuffix(name string, suffix []string) string { + for _, sfx := range suffix { + if strings.HasSuffix(name, sfx) { + return name[:len(name)-len(sfx)] + } + } + return name +} + func contains(v string, names []string) bool { for _, name := range names { if name == v { diff --git a/tool/_testcpp/llvm-22.1.8-support/AMDHSAKernelDescriptor/out.go b/tool/_testcpp/llvm-22.1.8-support/AMDHSAKernelDescriptor/out.go deleted file mode 100644 index 260b8614..00000000 --- a/tool/_testcpp/llvm-22.1.8-support/AMDHSAKernelDescriptor/out.go +++ /dev/null @@ -1,305 +0,0 @@ -package AMDHSAKernelDescriptor - -import "github.com/goplus/lib/c" - -const LLGoPackage = "link: -L$(llvm-config --libdir) -lLLVM; -lLLVM" -const ( - AMDHSA_FLOAT_ROUND_MODE_NEAR_EVEN = 0 - AMDHSA_FLOAT_ROUND_MODE_PLUS_INFINITY = 1 - AMDHSA_FLOAT_ROUND_MODE_MINUS_INFINITY = 2 - AMDHSA_FLOAT_ROUND_MODE_ZERO = 3 -) -const ( - AMDHSA_FLOAT_DENORM_MODE_FLUSH_SRC_DST = 0 - AMDHSA_FLOAT_DENORM_MODE_FLUSH_DST = 1 - AMDHSA_FLOAT_DENORM_MODE_FLUSH_SRC = 2 - AMDHSA_FLOAT_DENORM_MODE_FLUSH_NONE = 3 -) -const ( - AMDHSA_SYSTEM_VGPR_WORKITEM_ID_X = 0 - AMDHSA_SYSTEM_VGPR_WORKITEM_ID_X_Y = 1 - AMDHSA_SYSTEM_VGPR_WORKITEM_ID_X_Y_Z = 2 - AMDHSA_SYSTEM_VGPR_WORKITEM_ID_UNDEFINED = 3 -) -const ( - AMDHSA_COMPUTE_PGM_RSRC1_GRANULATED_WORKITEM_VGPR_COUNT_SHIFT = 0 - AMDHSA_COMPUTE_PGM_RSRC1_GRANULATED_WORKITEM_VGPR_COUNT_WIDTH = 6 - AMDHSA_COMPUTE_PGM_RSRC1_GRANULATED_WORKITEM_VGPR_COUNT = 63 - AMDHSA_COMPUTE_PGM_RSRC1_GRANULATED_WAVEFRONT_SGPR_COUNT_SHIFT = 6 - AMDHSA_COMPUTE_PGM_RSRC1_GRANULATED_WAVEFRONT_SGPR_COUNT_WIDTH = 4 - AMDHSA_COMPUTE_PGM_RSRC1_GRANULATED_WAVEFRONT_SGPR_COUNT = 960 - AMDHSA_COMPUTE_PGM_RSRC1_PRIORITY_SHIFT = 10 - AMDHSA_COMPUTE_PGM_RSRC1_PRIORITY_WIDTH = 2 - AMDHSA_COMPUTE_PGM_RSRC1_PRIORITY = 3072 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_ROUND_MODE_32_SHIFT = 12 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_ROUND_MODE_32_WIDTH = 2 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_ROUND_MODE_32 = 12288 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_ROUND_MODE_16_64_SHIFT = 14 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_ROUND_MODE_16_64_WIDTH = 2 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_ROUND_MODE_16_64 = 49152 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_DENORM_MODE_32_SHIFT = 16 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_DENORM_MODE_32_WIDTH = 2 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_DENORM_MODE_32 = 196608 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_DENORM_MODE_16_64_SHIFT = 18 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_DENORM_MODE_16_64_WIDTH = 2 - AMDHSA_COMPUTE_PGM_RSRC1_FLOAT_DENORM_MODE_16_64 = 786432 - AMDHSA_COMPUTE_PGM_RSRC1_PRIV_SHIFT = 20 - AMDHSA_COMPUTE_PGM_RSRC1_PRIV_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_PRIV = 1048576 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX11_ENABLE_DX10_CLAMP_SHIFT = 21 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX11_ENABLE_DX10_CLAMP_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX11_ENABLE_DX10_CLAMP = 2097152 - AMDHSA_COMPUTE_PGM_RSRC1_GFX12_PLUS_ENABLE_WG_RR_EN_SHIFT = 21 - AMDHSA_COMPUTE_PGM_RSRC1_GFX12_PLUS_ENABLE_WG_RR_EN_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX12_PLUS_ENABLE_WG_RR_EN = 2097152 - AMDHSA_COMPUTE_PGM_RSRC1_DEBUG_MODE_SHIFT = 22 - AMDHSA_COMPUTE_PGM_RSRC1_DEBUG_MODE_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_DEBUG_MODE = 4194304 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX11_ENABLE_IEEE_MODE_SHIFT = 23 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX11_ENABLE_IEEE_MODE_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX11_ENABLE_IEEE_MODE = 8388608 - AMDHSA_COMPUTE_PGM_RSRC1_GFX12_PLUS_DISABLE_PERF_SHIFT = 23 - AMDHSA_COMPUTE_PGM_RSRC1_GFX12_PLUS_DISABLE_PERF_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX12_PLUS_DISABLE_PERF = 8388608 - AMDHSA_COMPUTE_PGM_RSRC1_BULKY_SHIFT = 24 - AMDHSA_COMPUTE_PGM_RSRC1_BULKY_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_BULKY = 16777216 - AMDHSA_COMPUTE_PGM_RSRC1_CDBG_USER_SHIFT = 25 - AMDHSA_COMPUTE_PGM_RSRC1_CDBG_USER_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_CDBG_USER = 33554432 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX8_RESERVED0_SHIFT = 26 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX8_RESERVED0_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX8_RESERVED0 = 67108864 - AMDHSA_COMPUTE_PGM_RSRC1_GFX9_PLUS_FP16_OVFL_SHIFT = 26 - AMDHSA_COMPUTE_PGM_RSRC1_GFX9_PLUS_FP16_OVFL_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX9_PLUS_FP16_OVFL = 67108864 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX120_RESERVED1_SHIFT = 27 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX120_RESERVED1_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX120_RESERVED1 = 134217728 - AMDHSA_COMPUTE_PGM_RSRC1_GFX125_FLAT_SCRATCH_IS_NV_SHIFT = 27 - AMDHSA_COMPUTE_PGM_RSRC1_GFX125_FLAT_SCRATCH_IS_NV_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX125_FLAT_SCRATCH_IS_NV = 134217728 - AMDHSA_COMPUTE_PGM_RSRC1_RESERVED2_SHIFT = 28 - AMDHSA_COMPUTE_PGM_RSRC1_RESERVED2_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_RESERVED2 = 268435456 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX9_RESERVED3_SHIFT = 29 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX9_RESERVED3_WIDTH = 3 - AMDHSA_COMPUTE_PGM_RSRC1_GFX6_GFX9_RESERVED3 = -536870912 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_WGP_MODE_SHIFT = 29 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_WGP_MODE_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_WGP_MODE = 536870912 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_MEM_ORDERED_SHIFT = 30 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_MEM_ORDERED_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_MEM_ORDERED = 1073741824 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_FWD_PROGRESS_SHIFT = 31 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_FWD_PROGRESS_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC1_GFX10_PLUS_FWD_PROGRESS = -2147483648 -) -const ( - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_PRIVATE_SEGMENT_SHIFT = 0 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_PRIVATE_SEGMENT_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_PRIVATE_SEGMENT = 1 - AMDHSA_COMPUTE_PGM_RSRC2_GFX6_GFX120_USER_SGPR_COUNT_SHIFT = 1 - AMDHSA_COMPUTE_PGM_RSRC2_GFX6_GFX120_USER_SGPR_COUNT_WIDTH = 5 - AMDHSA_COMPUTE_PGM_RSRC2_GFX6_GFX120_USER_SGPR_COUNT = 62 - AMDHSA_COMPUTE_PGM_RSRC2_GFX6_GFX11_ENABLE_TRAP_HANDLER_SHIFT = 6 - AMDHSA_COMPUTE_PGM_RSRC2_GFX6_GFX11_ENABLE_TRAP_HANDLER_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_GFX6_GFX11_ENABLE_TRAP_HANDLER = 64 - AMDHSA_COMPUTE_PGM_RSRC2_GFX120_ENABLE_DYNAMIC_VGPR_SHIFT = 6 - AMDHSA_COMPUTE_PGM_RSRC2_GFX120_ENABLE_DYNAMIC_VGPR_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_GFX120_ENABLE_DYNAMIC_VGPR = 64 - AMDHSA_COMPUTE_PGM_RSRC2_GFX125_USER_SGPR_COUNT_SHIFT = 1 - AMDHSA_COMPUTE_PGM_RSRC2_GFX125_USER_SGPR_COUNT_WIDTH = 6 - AMDHSA_COMPUTE_PGM_RSRC2_GFX125_USER_SGPR_COUNT = 126 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_X_SHIFT = 7 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_X_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_X = 128 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_Y_SHIFT = 8 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_Y_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_Y = 256 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_Z_SHIFT = 9 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_Z_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_ID_Z = 512 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_INFO_SHIFT = 10 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_INFO_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_SGPR_WORKGROUP_INFO = 1024 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_VGPR_WORKITEM_ID_SHIFT = 11 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_VGPR_WORKITEM_ID_WIDTH = 2 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_VGPR_WORKITEM_ID = 6144 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_ADDRESS_WATCH_SHIFT = 13 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_ADDRESS_WATCH_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_ADDRESS_WATCH = 8192 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_MEMORY_SHIFT = 14 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_MEMORY_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_MEMORY = 16384 - AMDHSA_COMPUTE_PGM_RSRC2_GRANULATED_LDS_SIZE_SHIFT = 15 - AMDHSA_COMPUTE_PGM_RSRC2_GRANULATED_LDS_SIZE_WIDTH = 9 - AMDHSA_COMPUTE_PGM_RSRC2_GRANULATED_LDS_SIZE = 16744448 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_INVALID_OPERATION_SHIFT = 24 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_INVALID_OPERATION_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_INVALID_OPERATION = 16777216 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_FP_DENORMAL_SOURCE_SHIFT = 25 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_FP_DENORMAL_SOURCE_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_FP_DENORMAL_SOURCE = 33554432 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_DIVISION_BY_ZERO_SHIFT = 26 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_DIVISION_BY_ZERO_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_DIVISION_BY_ZERO = 67108864 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_OVERFLOW_SHIFT = 27 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_OVERFLOW_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_OVERFLOW = 134217728 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_UNDERFLOW_SHIFT = 28 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_UNDERFLOW_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_UNDERFLOW = 268435456 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_INEXACT_SHIFT = 29 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_INEXACT_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_IEEE_754_FP_INEXACT = 536870912 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_INT_DIVIDE_BY_ZERO_SHIFT = 30 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_INT_DIVIDE_BY_ZERO_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_ENABLE_EXCEPTION_INT_DIVIDE_BY_ZERO = 1073741824 - AMDHSA_COMPUTE_PGM_RSRC2_RESERVED0_SHIFT = 31 - AMDHSA_COMPUTE_PGM_RSRC2_RESERVED0_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC2_RESERVED0 = -2147483648 -) -const ( - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_ACCUM_OFFSET_SHIFT = 0 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_ACCUM_OFFSET_WIDTH = 6 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_ACCUM_OFFSET = 63 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_RESERVED0_SHIFT = 6 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_RESERVED0_WIDTH = 10 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_RESERVED0 = 65472 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_TG_SPLIT_SHIFT = 16 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_TG_SPLIT_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_TG_SPLIT = 65536 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_RESERVED1_SHIFT = 17 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_RESERVED1_WIDTH = 15 - AMDHSA_COMPUTE_PGM_RSRC3_GFX90A_RESERVED1 = -131072 -) -const ( - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX11_SHARED_VGPR_COUNT_SHIFT = 0 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX11_SHARED_VGPR_COUNT_WIDTH = 4 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX11_SHARED_VGPR_COUNT = 15 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_RESERVED0_SHIFT = 0 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_RESERVED0_WIDTH = 4 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_RESERVED0 = 15 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_RESERVED1_SHIFT = 4 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_RESERVED1_WIDTH = 8 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_RESERVED1 = 4080 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_INST_PREF_SIZE_SHIFT = 4 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_INST_PREF_SIZE_WIDTH = 6 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_INST_PREF_SIZE = 1008 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_TRAP_ON_START_SHIFT = 10 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_TRAP_ON_START_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_TRAP_ON_START = 1024 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_TRAP_ON_END_SHIFT = 11 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_TRAP_ON_END_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_TRAP_ON_END = 2048 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_INST_PREF_SIZE_SHIFT = 4 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_INST_PREF_SIZE_WIDTH = 8 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_INST_PREF_SIZE = 4080 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_PLUS_RESERVED2_SHIFT = 12 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_PLUS_RESERVED2_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_PLUS_RESERVED2 = 4096 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX11_RESERVED3_SHIFT = 13 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX11_RESERVED3_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX11_RESERVED3 = 8192 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_GLG_EN_SHIFT = 13 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_GLG_EN_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX12_PLUS_GLG_EN = 8192 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX120_RESERVED4_SHIFT = 14 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX120_RESERVED4_WIDTH = 8 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_GFX120_RESERVED4 = 4177920 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT_SHIFT = 14 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT_WIDTH = 3 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_NAMED_BAR_CNT = 114688 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_ENABLE_DYNAMIC_VGPR_SHIFT = 17 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_ENABLE_DYNAMIC_VGPR_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_ENABLE_DYNAMIC_VGPR = 131072 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_TCP_SPLIT_SHIFT = 18 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_TCP_SPLIT_WIDTH = 3 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_TCP_SPLIT = 1835008 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_ENABLE_DIDT_THROTTLE_SHIFT = 21 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_ENABLE_DIDT_THROTTLE_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX125_ENABLE_DIDT_THROTTLE = 2097152 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_PLUS_RESERVED5_SHIFT = 22 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_PLUS_RESERVED5_WIDTH = 9 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_PLUS_RESERVED5 = 2143289344 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_RESERVED6_SHIFT = 31 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_RESERVED6_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX10_RESERVED6 = -2147483648 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_PLUS_IMAGE_OP_SHIFT = 31 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_PLUS_IMAGE_OP_WIDTH = 1 - AMDHSA_COMPUTE_PGM_RSRC3_GFX11_PLUS_IMAGE_OP = -2147483648 -) -const ( - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER_SHIFT = 0 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_BUFFER = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_PTR_SHIFT = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_PTR_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_PTR = 2 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_QUEUE_PTR_SHIFT = 2 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_QUEUE_PTR_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_QUEUE_PTR = 4 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_KERNARG_SEGMENT_PTR_SHIFT = 3 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_KERNARG_SEGMENT_PTR_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_KERNARG_SEGMENT_PTR = 8 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_ID_SHIFT = 4 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_ID_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_DISPATCH_ID = 16 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_FLAT_SCRATCH_INIT_SHIFT = 5 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_FLAT_SCRATCH_INIT_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_FLAT_SCRATCH_INIT = 32 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_SIZE_SHIFT = 6 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_SIZE_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_SGPR_PRIVATE_SEGMENT_SIZE = 64 - AMDHSA_KERNEL_CODE_PROPERTY_RESERVED0_SHIFT = 7 - AMDHSA_KERNEL_CODE_PROPERTY_RESERVED0_WIDTH = 3 - AMDHSA_KERNEL_CODE_PROPERTY_RESERVED0 = 896 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32_SHIFT = 10 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32 = 1024 - AMDHSA_KERNEL_CODE_PROPERTY_USES_DYNAMIC_STACK_SHIFT = 11 - AMDHSA_KERNEL_CODE_PROPERTY_USES_DYNAMIC_STACK_WIDTH = 1 - AMDHSA_KERNEL_CODE_PROPERTY_USES_DYNAMIC_STACK = 2048 - AMDHSA_KERNEL_CODE_PROPERTY_RESERVED1_SHIFT = 12 - AMDHSA_KERNEL_CODE_PROPERTY_RESERVED1_WIDTH = 4 - AMDHSA_KERNEL_CODE_PROPERTY_RESERVED1 = 61440 -) -const ( - AMDHSA_KERNARG_PRELOAD_SPEC_LENGTH_SHIFT = 0 - AMDHSA_KERNARG_PRELOAD_SPEC_LENGTH_WIDTH = 7 - AMDHSA_KERNARG_PRELOAD_SPEC_LENGTH = 127 - AMDHSA_KERNARG_PRELOAD_SPEC_OFFSET_SHIFT = 7 - AMDHSA_KERNARG_PRELOAD_SPEC_OFFSET_WIDTH = 9 - AMDHSA_KERNARG_PRELOAD_SPEC_OFFSET = 65408 -) - -type AMDHSAKernelDescriptorT struct { - GroupSegmentFixedSize c.Uint32T - PrivateSegmentFixedSize c.Uint32T - KernargSize c.Uint32T - Reserved0 [4]c.Uint8T - KernelCodeEntryByteOffset c.Int64T - Reserved1 [20]c.Uint8T - ComputePgmRsrc3 c.Uint32T - ComputePgmRsrc1 c.Uint32T - ComputePgmRsrc2 c.Uint32T - KernelCodeProperties c.Uint16T - KernargPreload c.Uint16T - Reserved3 [4]c.Uint8T -} - -const ( - AMDHSA_GROUP_SEGMENT_FIXED_SIZE_OFFSET = 0 - AMDHSA_PRIVATE_SEGMENT_FIXED_SIZE_OFFSET = 4 - AMDHSA_KERNARG_SIZE_OFFSET = 8 - AMDHSA_RESERVED0_OFFSET = 12 - AMDHSA_KERNEL_CODE_ENTRY_BYTE_OFFSET_OFFSET = 16 - AMDHSA_RESERVED1_OFFSET = 24 - AMDHSA_COMPUTE_PGM_RSRC3_OFFSET = 44 - AMDHSA_COMPUTE_PGM_RSRC1_OFFSET = 48 - AMDHSA_COMPUTE_PGM_RSRC2_OFFSET = 52 - AMDHSA_KERNEL_CODE_PROPERTIES_OFFSET = 56 - AMDHSA_KERNARG_PRELOAD_OFFSET = 58 - AMDHSA_RESERVED3_OFFSET = 60 -) diff --git a/tool/_testcpp/llvm-22.1.8-support/llcppg-system.cfg b/tool/_testcpp/llvm-22.1.8-support/llcppg-system.cfg index 5f47aaf8..ecc7c238 100644 --- a/tool/_testcpp/llvm-22.1.8-support/llcppg-system.cfg +++ b/tool/_testcpp/llvm-22.1.8-support/llcppg-system.cfg @@ -14,6 +14,7 @@ "FuncPrefix": ["Llvm"], "EnumPrefix": ["Llvm"], "TypePrefix": ["Llvm"], + "TypeSuffix": ["_t"], "MacroPrefix": ["LLVM_"], "TypeAbbr": { }, diff --git a/tool/_testcpp/llvm-22.1.8-support/system/AMDHSAKernelDescriptor.go b/tool/_testcpp/llvm-22.1.8-support/system/AMDHSAKernelDescriptor.go index 69181ae7..4c477a83 100644 --- a/tool/_testcpp/llvm-22.1.8-support/system/AMDHSAKernelDescriptor.go +++ b/tool/_testcpp/llvm-22.1.8-support/system/AMDHSAKernelDescriptor.go @@ -275,7 +275,7 @@ const ( AMDHSA_KERNARG_PRELOAD_SPEC_OFFSET = 65408 ) -type AMDHSAKernelDescriptorT struct { +type AMDHSAKernelDescriptor struct { GroupSegmentFixedSize c.Int PrivateSegmentFixedSize c.Int KernargSize c.Int diff --git a/tool/config.go b/tool/config.go index 3e7966aa..3a78f870 100644 --- a/tool/config.go +++ b/tool/config.go @@ -43,6 +43,7 @@ type Config struct { EnumPrefix []string `json:"EnumPrefix"` // enum value prefix to remove MacroPrefix []string `json:"MacroPrefix"` // macro prefix to remove TypePrefix []string `json:"TypePrefix"` // type prefix to remove + TypeSuffix []string `json:"TypeSuffix"` // type suffix to remove TypeAbbr map[string]string `json:"TypeAbbr"` // Go type name to its abbr, used in function names Rename map[string]string `json:"Rename"` // renaming of C/C++ names to Go names TypeIgnore []string `json:"TypeIgnore"` // C/C++ type names to ignore diff --git a/tool/gen.go b/tool/gen.go index d4b9f289..761433b0 100644 --- a/tool/gen.go +++ b/tool/gen.go @@ -173,6 +173,7 @@ func (cfg *Config) NewPackage(pkgPath, pkgName, workDir string, index clang.Inde EnumPrefix: cfg.EnumPrefix, MacroPrefix: cfg.MacroPrefix, TypePrefix: cfg.TypePrefix, + TypeSuffix: cfg.TypeSuffix, TypeAbbr: cfg.TypeAbbr, Rename: cfg.Rename, TypeIgnore: cfg.TypeIgnore, diff --git a/tool/gen_test.go b/tool/gen_test.go index 66b38479..331105f7 100644 --- a/tool/gen_test.go +++ b/tool/gen_test.go @@ -131,6 +131,7 @@ func testSingleFile(t *testing.T, idx clang.Index, pkgDir, headerDir, headerFile MacroPrefix: conf.MacroPrefix, VarPrefix: conf.VarPrefix, TypePrefix: conf.TypePrefix, + TypeSuffix: conf.TypeSuffix, TypeAbbr: conf.TypeAbbr, Rename: conf.Rename, TypeIgnore: conf.TypeIgnore, @@ -282,10 +283,6 @@ func TestLLVM_AMDGPUAddrSpace(t *testing.T) { testFromDir(t, "AMDGPUAddrSpace", "./_testcpp", true, "system") } -func TestLLVM_AMDHSAKernelDescriptor(t *testing.T) { - testFromDir(t, "AMDHSAKernelDescriptor", "./_testcpp", true, "system") -} - func TestLLVM_AtomicOrdering(t *testing.T) { testFromDir(t, "AtomicOrdering", "./_testcpp", true, "system") }