[llvm-dev] [RFC] Backend for Motorola 6800 series CPU (M68k)

Min-Yih Hsu via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 8 10:03:24 PST 2021


Hi All,

Happy New Year!

This is another update on the M68k backend.

Currently we still have 3 patches to review:
1. (1/8) TableGen changes https://reviews.llvm.org/D88385 <https://reviews.llvm.org/D88385> 
2. (4/8) MC layer changes https://reviews.llvm.org/D88390 <https://reviews.llvm.org/D88390> 
3. (5/8) Target Lowering https://reviews.llvm.org/D88391 <https://reviews.llvm.org/D88391> 

4th (D88390) and 5th (D88391) patches only have minor formatting issues. 

The biggest challenge now is in the first patch, D88385. Currently the patch proposed to add a new TableGen backend (CodeBeads) to generate auxiliary data structures for variable length encoding as well as complex addressing mode encodings. This is equivalent to X86’s usage of `MCInstrDesc::TSFlags` to carry their instruction encoding. However, TSFlags only has 64 bits, where M68k’s current design needs at least 24 bytes to encode all the instructions. While we might able to find an optimal way to fit M68k’s info into 64 bits in the future, the refactoring efforts to do it now is huge, especially on changing instructions definitions in TG files.

Jessica, who is listed in the blocker list of this patch, raised concerns about the necessity of this specialized TG backend, and proposed to re-use X86’s way to handle this problem. That is, put the M68k’s encoding info into MCInstrDesc with modifications in the InstrInfoEmitter TG backend.

Simon thought special handling in the InstrInfoEmitter/MCInstrDesc for M68k doesn’t have a huge difference with adding a specialized CodeBeads backend like the patch is doing now.

Renado preferred to keep the CodeBeads backend since it works well for M68k and later refactoring, if there is any, will probably only affect M68k. He also thought “where” to put this implementation - whether a TableGen or MCInstrDesc change - should come before asking “why” doing this change.

Personally, I also prefer to keep the current CodeBeads implementation and optimize it in the future. Since:
1. CodeBeads is an optional TG backend. It will not affect any existing Target. 
2. As mentioned earlier, it works well on M68k now. And if there is any changes on it or even removal on this TG backend in the future, the refactoring cost is pretty low.
3. We don’t have many resources to conduct large scale fixes in a short time (the longer this patch series diverged from upstream, the higher the rebasing cost for other parts of M68k backend) on this issue right now.

I would happy to hear if there is any suggestion on solving this challenge.

Thank you for the all the reviewing efforts!

Best,
-Min

> On Dec 17, 2020, at 11:42 PM, John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de> wrote:
> 
> Hi Min!
> 
> On 12/18/20 1:21 AM, Min-Yih Hsu wrote:
>> Another update on this topic: Currently three patches have been approved, thanks for all reviewers’ time and efforts :-)
> 
> I've read the reviews. Awesome progress.
> 
>> Here are the remaining patches:
>> - Patch 1/8 D88385: Got one LGTM, however I believe Jessica Clarke (jrtc27) (CC-ed here) is listed as blocker.
>     Does anyone here know the best way to contact Jessica? Since the patch has been blocked for quite a long time
>     and pinging @jrtc27 on Phab didn’t seem to work
> 
> I pinged jrtc27 on IRC (OFTC) and will keep pinging until we get an answer.
> 
>> - Patch 3/8 D88389   (Basic .td files)
>> - Patch 4/8 D88390   (MC layer)
>> - Patch 5/8 D88391   (Target lowering)
>> - Patch 6/8 D88392   (IR Tests)
>> 
>> Except Patch 6, which only has minor formatting issues to fix, I didn’t see any major
>> objections or concerns on other patches at this time point.
> 
> Sounds great.
> 
>> In addition to the patch review, tomorrow Dec 18th 19:00 CET (10:00 AM PST), Nick Desaulniers
>> is going to give a talk on compiling Linux Kernel for M68k using LLVM.
>> Please checkout http://m68k.info/ <http://m68k.info/> for more info about the live stream
> 
> Yep. I'm very exciting for this talk! And we're planning to put it on Youtube later.
> 
> Adrian
> 
> -- 
> .''`.  John Paul Adrian Glaubitz
> : :' :  Debian Developer - glaubitz at debian.org
> `. `'   Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
>  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210108/4e871743/attachment-0001.html>


More information about the llvm-dev mailing list