- initial version of the WMC tool
- added support for PROM Counting
- added support for Table ROM Instrumentation
- added support for stack counting
- added progress bar (0-100%)
- added support for
S("string")
macro in manually-instrumented sections
-
added Unident mode to remove unused left margin
-
added automatic conversion of TABs to spaces
-
added a command-line switch to disable all warnings (
/dw99
) -
modified the atomatically-generated file "wmc_auto.h" to eliminate warnings when compiled with
gcc
-
removed
#pragma WMC_TOOL_MESSAGE
in therom_*.c
files -
removed
#pragma WMC_TOOL_MESSAGE
for manually-instrumented sections -
changed the default PROM counting weights to those specified in [S4-110479 - FTO - On Program ROM measurement for EVS standardization.doc] ([https://www.3gpp.org/ftp/tsg_sa/WG4_CODEC/TSGS4_64/docs/S4-110479.zip)
-
fix of a small bug where using
/op2
,/op3
crashes the WMC tool -
added support for Windows 8 command line and Cygwin V1.7.17 and later versions
-
fix for a bug where a
$("[]M[]")
was inserted at the end of some C source files when it was re-instrumented
- break in early-return out of .each early with return false
- prevent adding unnecessary space by the functions
Move_on_Chars()
andSkip_Chars()
- optimize the function
Find_Region()
to improve the speef of instrumentation - optimize the function calculating the next pointer address after hitting the search target
- order macro names, system functions, etc. in the highest priority order
- combine
strlno
andstrcno
insideMake_Position_String()
- optimize the usage of the function
Instrument_Names()
insideFind_Keywords()
andFind_Calls()
- remove the cases where
item_link
is always NULL
-
first version uploaded to the Open-ITU/STL Github repository
-
remove obsolete parts of the source code (e.g. FLC)
-
bug in PROM calculation fixed
-
command-line options modified (
/ic
and/op
removed) -
memory instrumentation (PROM, Table ROM, static RAM and stack) integrated within the WMC tool (auxiliary files
PROM_Size_xxx.c
no longer generated) -
merging and renaming of files: **
wmops.h
andwmops.c
->wmc_auto.h
andwmc_auto.c
**memory.c
->wmc_auto.c
**mem_count.h
andmem_count.c
->wmc_auto.h
andwmc_auto.c
**wmc_auto.h
andwmc_auto.c
are optionally generated by the WMC tool with the./wmc_tool /cp dir_name
command-line option -
PROM consumption calculated during instrumentation and added at the end in each
.c
file -
total PROM consumption may be printed with the function
print_mem()
-
re-factoring of the Table ROM instrumentation, calculation and reporting
- fixed compilation issues on MaC platforms
- fixed a problem where
NaN
was printed for a non-instrumented function having zero complexity - dynamic allocation and re-allocation of all internal buffers tracking both heap and stack call trees
- introduction of
-f FRAME_PER_SECONDS
command-line option allowing the user to choose the number of frames per second (default is still 50.0) - fixed a problem when
push_wmops()
was called twice whenWMOPS_DETAILS
was activated - raise an error message if
#define WMC_TOOL_SKIP
is not paired with#undef WMC_TOOL_SKIP
- export information about all dynamic allocations/de-allocations occuring during the runtime of the codec to a
.csv
file - added an exemplary Python script
mem_analysis.py
for graphical analysis and profiling of dynamic memory alloations based on the generated.csv
file - added support for counting complexity and PROM size of BASOP operations and BASOP functions within floating-point source code
- added the -s (--skip_cmplx_instrumentation) command-line option, which avoids the instrumentation of function bodies. The func_start_ and return_ keywords, along with the remaining functionality, remain unchanged.
- fixed instrumentation issues in encoder.c of the 3GPP EVS codec where malloc() is instrumented and print_mem() is present as well
- when #undef WMC_TOOL_SKIP is missing, automatically assume end of file, but before the last automatically instrumented segment
- the function DesInstrument_ROM() is called in all regular files as well as the file pointed to with the -m command-line argument