MultiOberon as 64-bit compiler
- Ivan Denisov
- Posts: 363
- Joined: Tue Sep 17, 2013 12:21 am
- Location: Krasnoyarsk, Russia
MultiOberon as 64-bit compiler
Try the compiler MultiOberon for x64.
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423
-
- Posts: 263
- Joined: Tue Sep 17, 2013 6:50 am
Re: 64-bit compiler
Interesting approach!Ivan Denisov wrote:Try the compiler MultiOberon for x64.
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423
Are there any numbers available regarding compilation speed and execution speed?
- Josef
-
- Posts: 68
- Joined: Wed Mar 29, 2017 3:58 pm
Re: 64-bit compiler
MultiOberon is an Oberon Compiler with 3 different backends:
BlackBox Native x86 code Generator (now 1.6)
Ofront Generated C-Language Code Translator;
LLVM representation Generator.
The current version is 0.8 for BlackBox 1.6. BlackBox 1.7 and linux support is planned in 0.9.
BlackBox Native x86 code Generator (now 1.6)
Ofront Generated C-Language Code Translator;
LLVM representation Generator.
The current version is 0.8 for BlackBox 1.6. BlackBox 1.7 and linux support is planned in 0.9.
-
- Posts: 68
- Joined: Wed Mar 29, 2017 3:58 pm
Re: 64-bit compiler
Optimization usage is in development, the figures below are preliminary.Josef Templ wrote: Are there any numbers available regarding compilation speed and execution speed?
Compile time (no optimization) - 270% LLVM, 100% BlackBox;
Loading time - 1330% LLVM (JIT compiler), 100% BlackBox;
Execution time (no optimization) - similar.
The optimizer is not available now, llc.exe with -O0..-O3 can be used instead.
Re: 64 it compiler
Does it support generating OCF modules with correct descriptors and meta information?Ivan Denisov wrote:Try the compiler MultiOberon for x64.
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423
-
- Posts: 68
- Joined: Wed Mar 29, 2017 3:58 pm
Re: MultiOberon as 64-bit compiler
In recent 0.95 pre-version:
1. COFF and ELF object file formats modules loading implemented on Windows and Unix 32/64;
2. Building objects and executive files implemented;
3. Modules testing implemented and compiler tests included as examples.
1. COFF and ELF object file formats modules loading implemented on Windows and Unix 32/64;
2. Building objects and executive files implemented;
3. Modules testing implemented and compiler tests included as examples.
-
- Posts: 68
- Joined: Wed Mar 29, 2017 3:58 pm
Re: 64 it compiler
MultiOberon has 3 backends:X512 wrote:Does it support generating OCF modules with correct descriptors and meta information?
- Omb (based on DevCPP) generates OCF modules as usual;
- Omf (based on OFront) provides descriptors and meta, but does not support dynamic modules loading (to be implemented next);
- Oml (LLVM based) provides descriptors and meta, and dynamic loading is implemented in 2 ways:
--- LLVM bytecode .bc module file;
--- COFF and ELF .o module file.
-
- Posts: 68
- Joined: Wed Mar 29, 2017 3:58 pm
Re: MultiOberon as 64-bit compiler
MultiOberon version 1.0 released.
1. Omf (based on OFront) dynamic modules loading implemented;
2. Specific minimal shells ombsh,omfsh,omlsh for all backends;
3. Testing and benchmarking abilities;
4. Multi-platform development support.
1. Omf (based on OFront) dynamic modules loading implemented;
2. Specific minimal shells ombsh,omfsh,omlsh for all backends;
3. Testing and benchmarking abilities;
4. Multi-platform development support.
-
- Posts: 68
- Joined: Wed Mar 29, 2017 3:58 pm
Re: MultiOberon as 64-bit compiler
MultiOberon version 1.1 released.
1. Arm32 and Arm64 support added;
2. Installers are provided for all platforms (.msi for Windows, .deb for Linux)
1. Arm32 and Arm64 support added;
2. Installers are provided for all platforms (.msi for Windows, .deb for Linux)
-
- Posts: 68
- Joined: Wed Mar 29, 2017 3:58 pm
Re: MultiOberon as 64-bit compiler
MultiOberon version 1.2 released.
1. Testing environment and modules naming convention changes
2. X64 loader position independent code support
3. Metadata signatures for functions including params
4. Limited registers operations
1. Testing environment and modules naming convention changes
2. X64 loader position independent code support
3. Metadata signatures for functions including params
4. Limited registers operations