[Eresi-cvs] ERESI-SVN:1029:may - First multi-blocks code transformation in evarista (0.81a13)

ERESI-SVN Postmaster elfsh-cvs at grid.einherjar.de
Mon Jul 21 03:05:36 UTC 2008



====Comments====


Now evarista is capable of transforming multiple blocks
of code by following outlinks of blocks. This was tested
on the sparc backend. Many fixes were necessary to finally 
make it works:

- Created generic function revm_type_reflect() that can take 
a typed internal data structure and reflect it in the eresi 
language whatever its type.

- Create a new type object : OID (Object ID). Such type is
aliased to an integer, but cary an additional semantics: when
set $data $oid ($data a new variable, $oid a variable of type OID) 
is used, the $oid is used to lookup a container by this id, and 
the contained structure is copied as $data. This allows especially
to do: set $nextblock $link.id (very practical !)

- Created function revm_expr_lookup() that allows to lookup
an expression using its container id.

- Added a hash table in the mjollnir context for storing all
links between containers.

- Fixed many bugs related to 32/64 bits cross-compatibility.
(Renamed elfsh_Addr and elfsh_Off by eresi_Addr and eresi_Off
and moved them into libaspect instead of libelfsh (since
libaspect needed them to correct a 32/64 bits bug).

- Fixed a bug in the expression code that was forbidding to
do a copy of a scalar variable in some cases. Test script
declare.esh was updated to reflect the update.

- Now evarista print the call graph before doing any code transformation.



====List of Changes====

You may gain more informations checking out our website:

http://www.eresi-project.org/changeset/1029




More information about the eresi-cvs mailing list