[PATCH] JIT: Print debug location of inline asm and ignore DBG_VALUE instructions

Adrian Prantl aprantl at apple.com
Wed May 14 15:50:33 PDT 2014


> On May 1, 2014, at 1:40 PM, Yaron Keren <yaron.keren at gmail.com> wrote:
> 
> Printing the instruction is not needed as you'd usually want just the debug location to workaround.
> 
> Using dump() does the patch trivial not using printDebugLoc().
> 
> TargetOpcode has DBG_VALUE but not DBG_DECLARE ? how to add this?
> 

There is no such thing as a DBG_DECLARE in the MI layer. Most dbg.declare intrinsics are lowered to dbg.values in Local.cpp. In the MI layer they turn into DBG_VALUES and what (allocas described by) dbg.declares remain are stored in the MMI side-table.


> http://reviews.llvm.org/D3416
> 
> Files:
>  lib/Target/X86/X86CodeEmitter.cpp
> 
> Index: lib/Target/X86/X86CodeEmitter.cpp
> ===================================================================
> --- lib/Target/X86/X86CodeEmitter.cpp
> +++ lib/Target/X86/X86CodeEmitter.cpp
> @@ -1113,9 +1113,12 @@
>     case TargetOpcode::INLINEASM:
>       // We allow inline assembler nodes with empty bodies - they can
>       // implicitly define registers, which is ok for JIT.
> -      if (MI.getOperand(0).getSymbolName()[0])
> +      if (MI.getOperand(0).getSymbolName()[0]) {
> +        MI.dump();
>         report_fatal_error("JIT does not support inline asm!");
> +      }
>       break;
> +    case TargetOpcode::DBG_VALUE:
>     case TargetOpcode::CFI_INSTRUCTION:
>       break;
>     case TargetOpcode::GC_LABEL:
> <D3416.9021.patch>_______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list