add a new TGError class and use it to propagate location info with
authorChris Lattner <sabre@nondot.org>
Fri, 13 Mar 2009 16:25:21 +0000 (16:25 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 13 Mar 2009 16:25:21 +0000 (16:25 +0000)
commita14b1ded69dc76f4e41ef60eeab89dc8575af44b
tree442f96347125ff44bddb8a3c32707364662ad559
parent7b9ffe4a6db2e59c18510aac4ba30902653e13eb
add a new TGError class and use it to propagate location info with
errors when thrown.  This gets us nice errors like this from tblgen:

CMOVL32rr:  (set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2))
/Users/sabre/llvm/Debug/bin/tblgen: error:
Included from X86.td:116:
Parsing X86InstrInfo.td:922: In CMOVL32rr: X86cmov node requires exactly 4 operands!
def CMOVL32rr : I<0x4C, MRMSrcReg,       // if <s, GR32 = GR32
^

instead of just:

CMOVL32rr:  (set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2))
/Users/sabre/llvm/Debug/bin/tblgen: In CMOVL32rr: X86cmov node requires exactly 4 operands!

This is all I plan to do with this, but it should be easy enough to improve if anyone
cares (e.g. keeping more loc info in "dag" expr records in tblgen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66898 91177308-0d34-0410-b5e6-96231b3b80d8
utils/TableGen/CodeGenDAGPatterns.cpp
utils/TableGen/Record.h
utils/TableGen/TableGen.cpp