Adding a New Instruction to LLVM IR


I was planning to add a new instruction to the LLVM IR (and later to MIPS backend) for TLS(Thread level speculation) support. For this I tried to follow the steps described in dot html#instruction.

But I could not find any llvm/lib/AsmParser/Lexer.l and llvm/lib/AsmParser/llvmAsmParser.y file in both the svn repository and the source code downloaded from the website. Could you tell me what are the files that need to be modified to add a new token to parse my instruction from assembly text file (STEP 4) and add the grammar on how my instruction can be read and what it will construct as a result (STEP 5).


Side note: TLS = Thread Local Storage. You’ll need a different acronym in the LLVM context to avoid really confusing people.



Can you explain the semantics of this instruction? I also have hardware
that supports speculative execution, and we might be able to
collaborate [this may apply to others as well]?


The relevant code is still in lib/AsmParser/; it's just that we've
swtiched from a generated lexer/parser to a hand-written one. If you
want examples, try looking in the revision history for my atomics