I'm still relatively new to llvm, good to know these errors are from CodeGen. On 03/03/19 10:49 AM, Tim Northover wrote:> On Sat, 2 Mar 2019 at 21:00, preejackie via llvm-dev > <llvm-dev at lists.llvm.org> wrote: >> Could you please explain how you are using this? like commands >> >> When I run this IR in opt, it doesn't throw any errors. > The error he's reporting is from CodeGen, so opt would never be able > to reproduce it (you'd have to use llc). I haven't tried, but the > input is so basic I assume it's also from a private backend. > > Unfortunately I can only speculate about the cause. LLVM doesn't > usually even try to select machine nodes, so the best idea I've come > up with is that some custom selection code is both modifying the DAG > and then reporting failure to select. The key questions Josh needs to > look into are: > > + Is this node there in -view-isel-dags (i.e. before selection)? > + If not, what creates it (this'll probably involve looking at > build/lib/Target/XYZ/XYZGenInstrInfo.inc to work out what 284 is. > > Calls are pretty special at the best of times, but I can't think of a > way they could cause this. > > Tim.-- Have a great day! PreeJackie
I think "Unknown Target Node" is a target specific ISD opcode. A machine node would be "Unknown Machine Node". Assuming I'm reading SDNode::getOperationName correctly. Josh, you should make sure all you target specific ISD opcodes are handled in your *TargetLowering::getTargetNodeName method. ~Craig On Sat, Mar 2, 2019 at 9:42 PM preejackie via llvm-dev < llvm-dev at lists.llvm.org> wrote:> I'm still relatively new to llvm, good to know these errors are from > CodeGen. > > On 03/03/19 10:49 AM, Tim Northover wrote: > > On Sat, 2 Mar 2019 at 21:00, preejackie via llvm-dev > > <llvm-dev at lists.llvm.org> wrote: > >> Could you please explain how you are using this? like commands > >> > >> When I run this IR in opt, it doesn't throw any errors. > > The error he's reporting is from CodeGen, so opt would never be able > > to reproduce it (you'd have to use llc). I haven't tried, but the > > input is so basic I assume it's also from a private backend. > > > > Unfortunately I can only speculate about the cause. LLVM doesn't > > usually even try to select machine nodes, so the best idea I've come > > up with is that some custom selection code is both modifying the DAG > > and then reporting failure to select. The key questions Josh needs to > > look into are: > > > > + Is this node there in -view-isel-dags (i.e. before selection)? > > + If not, what creates it (this'll probably involve looking at > > build/lib/Target/XYZ/XYZGenInstrInfo.inc to work out what 284 is. > > > > Calls are pretty special at the best of times, but I can't think of a > > way they could cause this. > > > > Tim. > > -- > Have a great day! > PreeJackie > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190303/2856c7a1/attachment.html>
I would recommend adding -debug-only=isel to the command line. It will show you the selection DAG before and during ISEL. You can then decipher what that target-dependent node is and what patterns ISEL has tried before giving up. On Sun., Mar. 3, 2019, 3:17 a.m. Craig Topper via llvm-dev, < llvm-dev at lists.llvm.org> wrote:> I think "Unknown Target Node" is a target specific ISD opcode. A machine > node would be "Unknown Machine Node". Assuming I'm reading > SDNode::getOperationName correctly. > > Josh, you should make sure all you target specific ISD opcodes are handled > in your *TargetLowering::getTargetNodeName method. > > ~Craig > > > On Sat, Mar 2, 2019 at 9:42 PM preejackie via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> I'm still relatively new to llvm, good to know these errors are from >> CodeGen. >> >> On 03/03/19 10:49 AM, Tim Northover wrote: >> > On Sat, 2 Mar 2019 at 21:00, preejackie via llvm-dev >> > <llvm-dev at lists.llvm.org> wrote: >> >> Could you please explain how you are using this? like commands >> >> >> >> When I run this IR in opt, it doesn't throw any errors. >> > The error he's reporting is from CodeGen, so opt would never be able >> > to reproduce it (you'd have to use llc). I haven't tried, but the >> > input is so basic I assume it's also from a private backend. >> > >> > Unfortunately I can only speculate about the cause. LLVM doesn't >> > usually even try to select machine nodes, so the best idea I've come >> > up with is that some custom selection code is both modifying the DAG >> > and then reporting failure to select. The key questions Josh needs to >> > look into are: >> > >> > + Is this node there in -view-isel-dags (i.e. before selection)? >> > + If not, what creates it (this'll probably involve looking at >> > build/lib/Target/XYZ/XYZGenInstrInfo.inc to work out what 284 is. >> > >> > Calls are pretty special at the best of times, but I can't think of a >> > way they could cause this. >> > >> > Tim. >> >> -- >> Have a great day! >> PreeJackie >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190304/5ff55db7/attachment.html>