Although the process of porting the LLVM backend to a new architecture looks pretty straightforward (and is very well documented) there's a frontend issue that I'm not clear on: How do we to tell the frontend about implementation-defined constants like integer width? In other words, when llvm-gcc does a promote-to-integer operation, this acts differently if the target architecture has 16-bit vs 32-bit integers. Thanks, John Regehr
On Tue, 1 Jul 2008, John Regehr wrote:> Although the process of porting the LLVM backend to a new architecture > looks pretty straightforward (and is very well documented) there's a > frontend issue that I'm not clear on: > > How do we to tell the frontend about implementation-defined constants > like integer width? In other words, when llvm-gcc does a > promote-to-integer operation, this acts differently if the target > architecture has 16-bit vs 32-bit integers.There was a recent discussion about this specific issue. We need to eliminate the implicit sign/zero extend to 32 bit logic from the code generator and have the front-ends insert them. -Chris -- http://nondot.org/sabre/ http://llvm.org/
Thanks Chris. I'll follow any ongoing discussion about this. Unless I'm missing something, customizable widths for integer types is necessary to achieve source-level compatibility with existing cross-compilers. It would be great to see the fronend being parameterized by integer widths at runtime. There would be no noticable loss of efficiency and this would avoid the obnoxious and error-prone situation of keeping many C frontends sitting around. FWIW CIL just lately became parameterizable at runtime with machine-specific information and it's really handy. John> There was a recent discussion about this specific issue. We need to > eliminate the implicit sign/zero extend to 32 bit logic from the code > generator and have the front-ends insert them. > > -Chris > > -- > http://nondot.org/sabre/ > http://llvm.org/ > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >