To be a better me via llvm-dev
2017-Jul-06 02:51 UTC
[llvm-dev] The doubt to LLVM.org-How to add the new type?
Dear Mr. : So far, I still have two questions. The first is: I am not clear the LLVM / CLANG operating mechanism .can you send me some relevant information? The second is: I am using the compiler environment is LLVM and CLANG. The official description of the CLANG is equivalent to the front, like lexical analysis and parsing. LLVM is equivalent to the back-end, mainly intermediate code generation and optimization. I now want to add a recognition to new type , should be in the LLVM or the CLANG to add the relevant code? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170706/eafca7bc/attachment.html>
Tim Northover via llvm-dev
2017-Jul-06 03:31 UTC
[llvm-dev] The doubt to LLVM.org-How to add the new type?
Hi, On 5 July 2017 at 19:51, To be a better me via llvm-dev <llvm-dev at lists.llvm.org> wrote:> So far, I still have two questions. The first is: I am not clear the LLVM / > CLANG operating mechanism .can you send me some relevant information?I don't think this is a coherent question. If you're asking how LLVM and Clang work you're going to have to be a lot more directed. We could write a hundred articles and we'd miss important details. In the very broadest outline Clang parses C, C++ and related languages and produces LLVM IR (look for files ending in .ll in the LLVM sources). The bulk of LLVM itself is dedicated to optimizing this IR and converting it into CPU-specific assembly and object files.> The > official description of the CLANG is equivalent to the front, like lexical > analysis and parsing. LLVM is equivalent to the back-end, mainly > intermediate code generation and optimization. I now want to add a > recognition to new type , should be in the LLVM or the CLANG to add the > relevant code?If the new type is for C or C++ the chances are you only need to modify Clang. You can usually decide on a roughly equivalent LLVM type (maybe a struct or something) and emit all the necessary IR to handle it from Clang. Certain really odd ideas might need LLVM changes too: the most recent one I know of is ARM's proposal for vectors that have a size that's only known at runtime. Cheers. Tim.