[LLVMdev] Intrinsic parameters verification (original) (raw)
Philip Reames listmail at philipreames.com
Thu Jul 2 17:16:40 PDT 2015
- Previous message: [LLVMdev] Intrinsic parameters verification
- Next message: [LLVMdev] MIScheduler + AA: Missed scheduling opportunity in MIsNeedChainEdge. Bug?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 07/01/2015 04:51 PM, Pete Cooper wrote:
On Jul 1, 2015, at 2:02 PM, Renato Golin <renato.golin at linaro.org> wrote:
On 28 June 2015 at 08:07, Demikhovsky, Elena <elena.demikhovsky at intel.com> wrote: I’m looking at Verifier::visitIntrinsicFunctionCall() but I see only common intrinsics here, not target specific. Hey, that's a nice project! A target-specific verifier that scans for all builtins and makes sure they conform to what the back-end accepts. +1. +1. I also have an out of tree use which would benefit from such a thing.
I'd argue that we should start small here. Rather than asking for someone to write a tablegen based one, why don't we start with a bit of hand written c++ code for the examples at hand and then tablegen it once we have a couple examples?
This is also something the IR optimizers have had to take in to consideration. For example, see SimplifyCFG SinkThenElseCodeToEnd which won’t sink intrinsic calls in if/else blocks to the end block if it would replace a constant parameter with a non-constant. Having some way to at least verify after that this has happened would be great. Having a way to annotate the intrinsic so that this code can check when its valid or not would be even better. Not sure how they would stay relevant with back-end changes, though... Maybe table-gen’ed? Tagging the intrinsics with(for example) which parameters must be constants is ideal I think, as then we could even verify that the backend patterns don’t try to match a constant intrinsic parameter with a register. Then we know that the backend is consistent with the intrinsic definitions. Cheers, Pete Surely interesting to try next GSOC.
--renato
LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
- Previous message: [LLVMdev] Intrinsic parameters verification
- Next message: [LLVMdev] MIScheduler + AA: Missed scheduling opportunity in MIsNeedChainEdge. Bug?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]