Autor Thema: 68k & LLVM  (Gelesen 10261 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline goetz @ 3rz

  • Benutzer
  • Beiträge: 2.053
68k & LLVM
« am: Mo 08.03.2021, 23:27:48 »
Crosspost von der Debian 68k ML (Adrian):

https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/M68k

Ein 68k-Backend für LLVM, experimentell.
Wider dem Signaturspam!

Offline czietz

  • Benutzer
  • Beiträge: 3.686
Re: 68k & LLVM
« Antwort #1 am: Di 09.03.2021, 08:02:30 »
Schön, hat er es geschafft!

Min, der Autor des Backends, hatte vor einiger Zeit im Rahmen der m68k Evening Chats einen Vortrag gehalten, u.a. auch über die Vorbehalte seitens LLVM so eine obsolete Architektur neu aufzunehmen:
http://m68k.info/#orgfad9ab5

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: 68k & LLVM
« Antwort #2 am: Di 09.03.2021, 09:25:10 »
Schön, dass es da möglicherweise in absehbarer Zeit Wahlmöglichkeiten gibt!

Wer allerdings auf einen schlanken, hochoptimierenden Compiler gehofft hat, wird wohl möglicherweise entäuscht.

Letzeres (Optimierung) kann ich (noch) nicht einschätzen, aber ersteres (schlank) ist definitiv nicht der Fall: LLVM zu bauen ist für einen modernen 8-Kerner mit 32GB Hauptspeicher ungefähr so, wie EmuTOS (s. anderer Thread) auf dem TT zu compilieren: seeeeehr zäh (läuft jetzt schon über eine Stunde und ist mittlerweile bei 21%)...
And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: 68k & LLVM
« Antwort #3 am: Di 09.03.2021, 15:09:08 »
... damit nicht noch mal jemand - wie ich  ::) - ewig llvm baut und hinterher feststellt, dass da kein m68k unterstützt wird: m68k ist noch ein "experimental target", und wird *nicht* default-mässig mitgebaut.

Das Rezept, um den Kuchen zu backen, ist gut versteckt. Um m68k-Unterstützung einzucompilieren, muss cmake mit dem extra-Parameter

-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="M68k"
aufgerufen werden. Ja, mit *genau der* Groß-/Kleinschreibung. Ansonsten so, wie in der (an sich guten) Anleitung beschrieben.

... übrigens existiert (noch?) keine ColdFire-Unterstützung. Schade.
« Letzte Änderung: Di 09.03.2021, 15:20:23 von mfro »
And remember: Beethoven wrote his first symphony in C

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: 68k & LLVM
« Antwort #4 am: Di 09.03.2021, 17:09:12 »
Ich habs mir zwar noch nicht angeschaut, aber ich gehe mal davon daß der elf-ausgabe erzeugt, von daher wird das wohl keine wirkliche Alternative für Atari werden.

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: 68k & LLVM
« Antwort #5 am: Di 09.03.2021, 17:32:51 »
ggn hat doch dieses "brownout"-Dingens?

Ob das natürlich mit clang funktioniert, weiss keiner...
And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: 68k & LLVM
« Antwort #6 am: Di 09.03.2021, 18:14:24 »
... übrigens erstaunlich, wie schnell heutzutage 64GB RAM zu wenig sind ;)
And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: 68k & LLVM
« Antwort #7 am: Mi 10.03.2021, 11:14:23 »
... leider bedeutet ein implementiertes ("M68k"-) Backend längst nicht, dass das auch mit dem existierenden Frontend zusammenspielt:

Selbst bei trivialem Code kommt augenblicklich leider nur das zustande:

# clang -target m68k-linux-elf -O2 -c tst002.c
Not implemented yet
UNREACHABLE executed at llvm-project/clang/lib/Basic/Targets/M68k.cpp:164!
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang -target m68k-linux-elf -O2 -c tst002.c
1. <eof> parser at end of file
 #0 0x000055a5290a0c8a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) llvm-project/llvm/lib/Support/Unix/Signals.inc:565:22
And remember: Beethoven wrote his first symphony in C