These are highlights of major changes since the
6.1 release of houdini.
Function Additions/Modifications
Custom VEX OPs
The optimization levels in specified in the custom VEX Ops
(i.e. VEX plug-ins) have changed slightly. The new meanings
of the optimization levels are:
VEX_OPTIMIZE_0
The plug-in function will never be optimized out by
the run-time optimizer. This allows users to write
functions like printf() which don't have any actual
bearing in the results of the VEX execution, but
shouldn't be optimized out.
VEX_OPTIMIZE_1
Minimal optimization is performed. If the results of
the computation performed by the plug-in function
aren't used, then the function will be optimized out.
However, the optimizer assumes that the result of the
plug-in function is not solely dependent on the inputs
to the function.
VEX_OPTIMIZE_2
Full optimization. The optimizer will attempt to
minimize the number of calls to the plug-in in order
to produce more efficient run-time code.
The constructor for plug-in's has changed to allow for hints
to be passed to the compiler about signature construction.
When a function modifies more than 1 argument, it is now
possible to force the first argument to be a return code
rather than having a void type as the return code.
Please see the header file (VEX_VexOp.h) for more details.
Compiler
There is a new #pragma to define arbitrary tags for a
parameter. This new
#pragma is explained in the compiler reference.
#pragma hint param invisible
This new pragma hint type will create the new parameter but remain
invisible from the user interface.