188.ammp is working:
* runs native
* builds to cil (cil32)
* runs in mono (it should run in .NET as well)
* builds from cil to native (gcil)
* runs in cil-to-native (gcil)
You must:
1) Apply the Mono.Cecil.Cil patch for long jump optimization:
This benchmark was experiencing the bug that I just reported in the list as "Mono.Cecil.Cil: OptimizeBranch bug"
Any way, I attached it again. Just download it and apply to your Mono.Cecil.Cil, which should be in <cli-be>/gcc-src/binutils/tools/Mono.Cecil
(if you have problems to apply it, just edit the file Mono.Cecil.Cil/MethodBody.cs and add "return false;" right after the start of OptimizeBranch())
2) Fix deprecated prototypes:
This benchmark is coded in a very old fashion. Most of the prototypes are missing or they are different than the actual ones. I implemented a script to update the code:
* Uncompresss 188.amp.fix_prototypes.patch.tgz into your 188.amp source folder. It contains:
__autogen_prototypes.h -> the set of correct prototypes used in the program
<file.c>.missing_prototypes -> a per file list of each prototype that is missing
fix_prototypes.sh -> a bash script that will patch the source code (everything will be backed up before)
* Run ./fix_prototypes.sh
After this, your folder should contain a bunch of files like <file.c>.protos.h, and each file.c should have been modified. Now you can build everythinig (if you use the flags that I point right below)
3) Use these building flags:
You must use the following flags:
CFLAGS += -DSPEC_CPU2000 -DGCC4CLI -DNEWCCALL
David
|