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 /src | |
| parent | adc6e73538e33156e9a489dbdae2e4452361bb6b (diff) | |
gallivm: added lp_dump_llvmtype() debug helper
Diffstat (limited to 'src')
| -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); | 
