[LLVMdev] Tablegen bug???
Chris Lattner
clattner at apple.com
Thu Nov 29 19:19:07 PST 2012
Out of curiosity, what is wrong about that? It looks ok to me.
-Chris
On Nov 29, 2012, at 6:52 PM, "Relph, Richard" <Richard.Relph at amd.com> wrote:
> Should tablegen detect this as an error, or is it documented as a limitation somewhere that we've missed?
>
> In the tablegen-generated file AMDILGenIntrinsics.inc, we have a bunch of if statements comparing strings, many of which are dead, preventing correct recognition of some intrinsics in the their text form. I'm not quite sure what GET_FUNCTION_RECOGNIZER is used for, but if it's used, it's broken… ;-)
>
> Here's a small segment:
>
> // Function name -> enum value recognizer code.
> #ifdef GET_FUNCTION_RECOGNIZER
> StringRef NameR(Name+6, Len-6); // Skip over 'llvm.'
> switch (Name[5]) { // Dispatch on first letter.
> default: break;
> case 'A':
> …
> if (NameR.startswith("MDIL.barrier.")) return AMDILIntrinsic::AMDIL_barrier;
> if (NameR.startswith("MDIL.barrier.global.")) return AMDILIntrinsic::AMDIL_barrier_global;
> if (NameR.startswith("MDIL.barrier.local.")) return AMDILIntrinsic::AMDIL_barrier_local;
> if (NameR.startswith("MDIL.barrier.region.")) return AMDILIntrinsic::AMDIL_barrier_region;
> …
> if (NameR.startswith("MDIL.fma.")) return AMDILIntrinsic::AMDIL_fma;
> if (NameR.startswith("MDIL.fma.rte.")) return AMDILIntrinsic::AMDIL_fma_rte;
> if (NameR.startswith("MDIL.fma.rtn.")) return AMDILIntrinsic::AMDIL_fma_rtn;
> if (NameR.startswith("MDIL.fma.rtp.")) return AMDILIntrinsic::AMDIL_fma_rtp;
> if (NameR.startswith("MDIL.fma.rtz.")) return AMDILIntrinsic::AMDIL_fma_rtz;
> …
> and several other similar instances.
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list