Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
all
-
Moderate
Description
new files [vm.zip]:
vm/jitrino/src/optimizer/abcd/AbcdFlags.h
vm/jitrino/src/optimizer/abcd/insertpi.cpp
vm/jitrino/src/optimizer/abcd/classic_abcd.h
vm/jitrino/src/optimizer/abcd/insertpi.h
vm/jitrino/src/optimizer/abcd/classic_abcd.cpp
vm/jitrino/config/ia32/abcd_static.emconf
This issue depends on HARMONY-1564.
Features:
- new optimization pass added (classic_abcd), off by default
- old optimization pass (abcd) is preserved to work with no change
(with bug fixed by Naveen inHARMONY-1564)
the fix should NOT visibly affect anyone (!!!)
- new EM config file for easier ABCD development (abcd_static.emconf)
(use java -Xem:abcd_static Hello)
- Pi instructions are now inserted by the separate class (InsertPi)
that is reused between both old and new ABCD algorithms
- Inequality graph can be printed to a .dot file on request.
Do it like this for method "main":
java -Xem:abcd_static -Djit.p.filter=.main -Djit.p.arg.log=ct,irdump,dotdump
and find inequality.graph.dot
("dot -Tpng inequality.graph.dot > viewme.png")
- checked on gcc 3.3.3 Linux/ia32
- HelloWorld passed in the new mode, does not affect other modes
- against r454400
Instructions on how to apply both contributions.
Suppose you have all files in working_vm/abcd_update:
abcd.patch (Naveen, HARMONY-1564)
abcd-original.tar.gz (Egor, HARMONY-1564)
naveen_2.patch (Naveen, HARMONY-1564)
enable-inequality-graph-building.patch.txt
vm.zip
$ cd working_vm
$ patch -p0 <abcd_update/abcd.patch
$ tar zxvf abcd_update/abcd-original.tar.gz
$ patch -p0 <../abcd_update/naveen_2.patch
$ mv * ../vm/jitrino/src/optimizer/abcd/
$ cd ..
$ rm -rf abcd-original/
$ unzip abcd_update/vm.zip
$ patch -p1 <abcd_update/enable-inequality-graph-building.patch.txt
What is left to do for the new ABCD:
- teach the optimization to invoke the solver
(detect array lengths, bounds checking operands)
- acquire not-a-small amount of tests
- fix bugs
- improve the algorithm supporting semantics of more more operations
such as Op_Conv, etc.
Attachments
Attachments
Issue Links
- depends upon
-
HARMONY-1564 [drlvm][jit] patch for possible ABCD bug
- Closed