diff options
author | Brian Paul <brianp@vmware.com> | 2010-05-13 10:24:10 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2010-05-13 14:15:44 -0600 |
commit | 45d6289fab1aa012f265e5b51a10c2a07c85679b (patch) | |
tree | e82b4d6adbed9da18c8bf962ac902ba38204ca74 | |
parent | adc6e73538e33156e9a489dbdae2e4452361bb6b (diff) |
gallivm: added lp_dump_llvmtype() debug helper
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_type.c | 36 | ||||
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_type.h | 4 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_type.c b/src/gallium/auxiliary/gallivm/lp_bld_type.c index 9028963139..37d278d237 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_type.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_type.c @@ -285,6 +285,42 @@ lp_typekind_name(LLVMTypeKind t) } +/** + * Print an LLVMTypeRef. Like LLVMDumpValue(). For debugging. + */ +void +lp_dump_llvmtype(LLVMTypeRef t) +{ + LLVMTypeKind k = LLVMGetTypeKind(t); + + if (k == LLVMVectorTypeKind) { + LLVMTypeRef te = LLVMGetElementType(t); + LLVMTypeKind ke = LLVMGetTypeKind(te); + unsigned len = LLVMGetVectorSize(t); + if (ke == LLVMIntegerTypeKind) { + unsigned b = LLVMGetIntTypeWidth(te); + debug_printf("Vector [%u] of %u-bit Integer\n", len, b); + } + else { + debug_printf("Vector [%u] of %s\n", len, lp_typekind_name(ke)); + } + } + else if (k == LLVMArrayTypeKind) { + LLVMTypeRef te = LLVMGetElementType(t); + LLVMTypeKind ke = LLVMGetTypeKind(te); + unsigned len = LLVMGetArrayLength(t); + debug_printf("Array [%u] of %s\n", len, lp_typekind_name(ke)); + } + else if (k == LLVMIntegerTypeKind) { + unsigned b = LLVMGetIntTypeWidth(t); + debug_printf("%u-bit Integer\n", b); + } + else { + debug_printf("%s\n", lp_typekind_name(k)); + } +} + + void lp_build_context_init(struct lp_build_context *bld, LLVMBuilderRef builder, diff --git a/src/gallium/auxiliary/gallivm/lp_bld_type.h b/src/gallium/auxiliary/gallivm/lp_bld_type.h index f1922ef9ac..b3f9e9175d 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_type.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_type.h @@ -321,6 +321,10 @@ lp_typekind_name(LLVMTypeKind t); void +lp_dump_llvmtype(LLVMTypeRef t); + + +void lp_build_context_init(struct lp_build_context *bld, LLVMBuilderRef builder, struct lp_type type); |