Commit 27fa6302 authored by Cédric VALENSI's avatar Cédric VALENSI

Sync

parent 4af99ad0
##
# Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
# Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
#
# This file is part of MAQAO.
#
......@@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
PROJECT(MAQAO)
ENABLE_LANGUAGE(C)
INCLUDE(InstallRequiredSystemLibraries)
......@@ -69,6 +69,17 @@ FOREACH(ARCH ${ARCHS})
SET(ARCHDEF_FLAGS "${ARCHDEF_FLAGS} -D_ARCHDEF_${ARCH}")
ENDFOREACH(ARCH)
## ------------------------------------------------------------------##
## Handling uarch exclusions ##
## ------------------------------------------------------------------##
IF (NOT "X${EXCLUDE_UARCHS}" STREQUAL "X")
FOREACH(EXCLUDE_UARCH ${EXCLUDE_UARCHS})
MESSAGE("Excluding uarch ${EXCLUDE_UARCH}")
SET(UARCH_EXCLUDE_FLAGS "${UARCH_EXCLUDE_FLAGS} -DUARCH_EXCLUDE_${EXCLUDE_UARCH}")
ENDFOREACH(EXCLUDE_UARCH)
ENDIF (NOT "X${EXCLUDE_UARCHS}" STREQUAL "X")
## ------------------------------------------------------------------##
## Compilation flags ##
## ------------------------------------------------------------------##
......@@ -129,11 +140,11 @@ ENDIF ()
# Initializing C/C++ compilation flags
IF (is_WINDOWS)
# C flags
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS} ${UARCH_EXCLUDE_FLAGS}")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Zi")
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
# C++ flags
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS} ${UARCH_EXCLUDE_FLAGS}")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Zi")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
# Static C flags (USER MADE ! YOU NEED TO INCLUDE IT WHEN REQUIRED)
......@@ -148,11 +159,11 @@ IF (is_WINDOWS)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
ELSEIF (is_UNIX)
# C flags
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS} -fPIC")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS} ${UARCH_EXCLUDE_FLAGS} -fPIC")
SET(CMAKE_C_FLAGS_DEBUG "-W -g")
SET(CMAKE_C_FLAGS_RELEASE "")
# C++ flags
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS} -fPIC")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${BASE_C_FLAGS} ${OPTIM_LEVEL} ${DBG_OPTS} ${ARCHDEF_FLAGS} ${UARCH_EXCLUDE_FLAGS} -fPIC")
SET(CMAKE_CXX_FLAGS_DEBUG "-W -g")
SET(CMAKE_CXX_FLAGS_RELEASE "")
# Static C flags (USER MADE ! YOU NEED TO INCLUDE IT WHEN REQUIRED)
......@@ -306,7 +317,7 @@ find_path(RPMBUILD_PATH NAMES rpmbuild) # look for rpmbuild
find_path(DPKG_DEB_PATH NAMES dpkg-deb) # look for dpkg-deb
SET(CPACK_PACKAGE_VERSION_MAJOR "2")
SET(CPACK_PACKAGE_VERSION_MINOR "2")
SET(CPACK_PACKAGE_VERSION_MINOR "3")
SET(CPACK_PACKAGE_VERSION_PATCH "0")
# ---- Check if at least one package generator has been found
......
##
# Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
# Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
#
# This file is part of MAQAO.
#
......@@ -48,6 +48,7 @@ if (${IS_LUADOC})
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/internals/DeveloperGuide.html ${CMAKE_CURRENT_SOURCE_DIR}/
COMMAND ${LUADOC_BIN} -d ${CMAKE_CURRENT_SOURCE_DIR}/internals/lua_API
${CMAKE_SOURCE_DIR}/src/plugins/built_in/abstract_objects/stub/ao_*.luadoc
${CMAKE_SOURCE_DIR}/src/plugins/built_in/classes/stub/cl_*.luadoc
)
ADD_DEPENDENCIES (doc doc_luadoc)
endif (${IS_LUADOC})
......
.\" File generated using by MAQAO.
.TH MAQAO-ANALYZE "1" "06/03/2016" "MAQAO-ANALYZE 2.2.0" "User Commands"
.TH MAQAO-ANALYZE "1" "07/19/2017" "MAQAO-ANALYZE 2.3.0" "User Commands"
.SH NAME
maqao-analyze \- manual page for maqao analyze module.
.SH SYNOPSIS
......@@ -58,8 +58,14 @@ Analyze all instructions returned by MADRAS. Default behaviour is to analyze ins
.TP
\fB\-\-uarch\fR\=<uarch>
Select the micro architecture used for analysis. Available values are:
CORE2_65, CORE2_45, NEHALEM, SANDY_BRIDGE, IVY_BRIDGE, HASWELL, BROADWELL, KNF, KNC.
.TP 20
\fB For architecture x86_64:\fR
CORE (CORE2_65), ENHANCED_CORE (CORE2_45), NEHALEM (NHM), WESTMERE, SANDY_BRIDGE (SNB), IVY_BRIDGE (IVB), IVY_BRIDGE_E (IVBE), HASWELL (HWL), BROADWELL (BWL), HASWELL_E (HWLE)
.
.SH ""
.TP
\fB\-\-proc\fR\=<proc>
Select the processor model used for analysis. maqao --list-procs to display supported processors
.TP
\fB\-ifr\fR, \fB\-\-interleaved-functions-recognition\fR\=<mode>
Select the mode of interleaved functions recognition. Available values are:
......@@ -93,7 +99,7 @@ Written by The MAQAO Team.
.SH "REPORTING BUGS"
Report bugs to <support@maqao.org>.
.SH COPYRIGHT
MAQAO (C), 2005-2016 Universite de Versailles Saint-Quentin-en-Yvelines (UVSQ),
MAQAO (C), 2004-2017 Universite de Versailles Saint-Quentin-en-Yvelines (UVSQ),
is distributed under the GNU Lesser General Public License (GNU LGPL). MAQAO is
free software; you can use it under the terms of the GNU Lesser General
Public License as published by the Free Software Foundation; either version 2.1
......
.\" File generated using by MAQAO.
.TH MAQAO-MADRAS "1" "" "MAQAO-MADRAS 2.2.0" "User Commands"
.TH MAQAO-MADRAS "1" "" "MAQAO-MADRAS 2.3.0" "User Commands"
.SH NAME
maqao-madras \- manual page for maqao madras module.
.SH SYNOPSIS
......@@ -162,7 +162,7 @@ Written by The MAQAO team.
.SH "REPORTING BUGS"
Report bugs to <support@maqao.org>.
.SH COPYRIGHT
Copyright (C) 2004 - 2013 Universite de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Universite de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
......
.\" File generated using by MAQAO.
.TH MAQAO "1" "06/03/2016" "MAQAO 2.2.0" "User Commands"
.TH MAQAO "1" "07/19/2017" "MAQAO 2.3.0" "User Commands"
.SH NAME
maqao \- manual page for maqao module.
.SH SYNOPSIS
......@@ -12,7 +12,7 @@ MAQAO (Modular Assembly Quality Analyzer and Optimizer) is a tool to analyze the
<command> can be a built-in module or a user module. Each module has its own options described using maqao <command> --help. Only built-in modules are described here. The list of available modules can be get using maqao --list-modules. Available values are:
.TP 20
\fB analyze\fR
Performs static analysis on a binary.
Displays results of static analysis on a binary.
.TP 20
\fB madras\fR
Disassemble, patch or display data on a binary.
......@@ -24,6 +24,9 @@ A user LUA script. The script name must be finished by the ".lua" extension
.TP
\fB\-\-list-modules\fR
List all available modules and alias.
.TP
\fB\-\-list-procs\fR
List all available processor models to use in proc=<proc>.
.SH " CREATE A MODULE"
.TP
\fB\-\-module-skeleton\fR
......@@ -71,8 +74,14 @@ Analyze all instructions returned by MADRAS. Default behaviour is to analyze ins
.TP
\fB\-\-uarch\fR\=<uarch>
Select the micro architecture used for analysis. Available values are:
CORE2_65, CORE2_45, NEHALEM, SANDY_BRIDGE, IVY_BRIDGE, HASWELL, BROADWELL, KNF, KNC.
.TP 20
\fB For architecture x86_64:\fR
CORE (CORE2_65), ENHANCED_CORE (CORE2_45), NEHALEM (NHM), WESTMERE, SANDY_BRIDGE (SNB), IVY_BRIDGE (IVB), IVY_BRIDGE_E (IVBE), HASWELL (HWL), BROADWELL (BWL), HASWELL_E (HWLE)
.
.SH ""
.TP
\fB\-\-proc\fR\=<proc>
Select the processor model used for analysis. maqao --list-procs to display supported processors
.TP
\fB\-ifr\fR, \fB\-\-interleaved-functions-recognition\fR\=<mode>
Select the mode of interleaved functions recognition. Available values are:
......@@ -110,7 +119,7 @@ Written by The MAQAO Team.
.SH "REPORTING BUGS"
Report bugs to <support@maqao.org>.
.SH COPYRIGHT
MAQAO (C), 2005-2016 Universite de Versailles Saint-Quentin-en-Yvelines (UVSQ),
MAQAO (C), 2004-2017 Universite de Versailles Saint-Quentin-en-Yvelines (UVSQ),
is distributed under the GNU Lesser General Public License (GNU LGPL). MAQAO is
free software; you can use it under the terms of the GNU Lesser General
Public License as published by the Free Software Foundation; either version 2.1
......
......@@ -27,6 +27,9 @@
# A list of tags in the source code to not include in the static binary separated by ';'
#SET(EXCLUDE_CODE "")
# A list of micro-architectures to not include in the static binary separated by ';'
#SET(EXCLUDE_UARCHS "")
# A list of MAQAO Lua modules to include in the static binary separated by ';'
#SET(INCLUDE_MODULES "")
......
##
# Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
# Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
#
# This file is part of MAQAO.
#
......
##
# Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
# Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
#
# This file is part of MAQAO.
#
......
##
# Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
# Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
#
# This file is part of MAQAO.
#
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......@@ -54,7 +54,7 @@ static list_t *lcore_dfs_mark(block_t *root, int *cinfo, block_t *defaulthead,
list_t *initheads)
{
FOREACH_INLIST(root->cfg_node->out, liter) {
edge_t* ed = GET_DATA_T(edge_t*, liter);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, liter);
block_t *b = (block_t*) (ed->to->data);
// Case where the default head has predecessors and is in the initlist : look to the addresses of the first instruction
......@@ -146,7 +146,7 @@ typedef struct cntxt_s {
* \param edge an edge to check
* \return TRUE if edge is a backedge, else FALSE
*/
static int _edge_isbackedge(edge_t* edge)
static int _edge_isbackedge(graph_edge_t* edge)
{
block_t* bfrom = ((block_t*) edge->from->data);
block_t* to = ((block_t*) edge->to->data);
......@@ -175,7 +175,7 @@ static int _block_is_CC_entry(block_t* b)
return (FALSE);
FOREACH_INLIST(b->cfg_node->in, it_in) {
edge_t* ed = GET_DATA_T(edge_t*, it_in);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_in);
block_t* pred = ed->from->data;
if (block_is_virtual(pred) == FALSE && block_is_padding(pred) == FALSE
......@@ -193,7 +193,7 @@ static int _block_is_CC_entry(block_t* b)
* \param node current node
* \param context current context
*/
static void _DFS_func(graph_t* node, void* context)
static void _DFS_func(graph_node_t* node, void* context)
{
cntxt_t* cntxt = (cntxt_t*) context;
block_t* b = node->data;
......@@ -222,7 +222,7 @@ static void _DFS_func(graph_t* node, void* context)
* \param node current node
* \param context current context
*/
static void _DFS_main(graph_t* node, void* context)
static void _DFS_main(graph_node_t* node, void* context)
{
cntxt_t* cntxt = (cntxt_t*) context;
block_t* b = node->data;
......@@ -238,8 +238,8 @@ static void _DFS_main(graph_t* node, void* context)
* \param marks used to mark traversed blocks
* \param func function call on each traversed block
*/
static void __traverse_CFG(graph_t* node, cntxt_t* cntxt, hashtable_t* marks,
void (*func)(graph_t *, void *))
static void __traverse_CFG(graph_node_t* node, cntxt_t* cntxt, hashtable_t* marks,
void (*func)(graph_node_t *, void *))
{
hashtable_insert(marks, node, node);
......@@ -249,8 +249,8 @@ static void __traverse_CFG(graph_t* node, cntxt_t* cntxt, hashtable_t* marks,
// Traverse predecessors
FOREACH_INLIST(node->in, it_in) {
edge_t* ed = GET_DATA_T(edge_t*, it_in);
graph_t* pred = ed->from;
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_in);
graph_node_t* pred = ed->from;
block_t* b = pred->data;
if (!block_is_virtual(b) && hashtable_lookup(marks, pred) == NULL)
__traverse_CFG(pred, cntxt, marks, func);
......@@ -259,8 +259,8 @@ static void __traverse_CFG(graph_t* node, cntxt_t* cntxt, hashtable_t* marks,
// Traverse successors
FOREACH_INLIST(node->out, it_out)
{
edge_t* ed = GET_DATA_T(edge_t*, it_out);
graph_t* succ = ed->to;
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_out);
graph_node_t* succ = ed->to;
block_t* b = succ->data;
if (!block_is_virtual(b) && hashtable_lookup(marks, succ) == NULL)
__traverse_CFG(succ, cntxt, marks, func);
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......@@ -119,7 +119,7 @@ struct adfa_cntxt_s {
ssa_block_t** ssa; /**< Result of SSA computation */
arch_t* arch; /**< Architecture */
fct_t* f; /**< Current function */
graph_t* graph; /**< CFG entry point */
graph_node_t* graph; /**< CFG entry point */
adfa_driver_t* driver; /**< Input driver*/
char* _traversed; /**< For internal use. Array of flag (one per block id) */
......@@ -705,7 +705,7 @@ adfa_val_t* ADFA_analyze_insn(ssa_insn_t* ssain, adfa_cntxt_t* cntxt)
* \param edge a CFG edge
* \return TRUE is edge is a backedge, else FALSE
*/
static int __DFA_edge_isbackedge(edge_t* edge)
static int __DFA_edge_isbackedge(graph_edge_t* edge)
{
block_t* bfrom = ((block_t*) edge->from->data);
block_t* to = ((block_t*) edge->to->data);
......@@ -730,14 +730,14 @@ static int __DFA_edge_isbackedge(edge_t* edge)
* \param node a CFG node
* \param context current context
*/
static void __DFA_BFS_is_computable(graph_t* node, void* context)
static void __DFA_BFS_is_computable(graph_node_t* node, void* context)
{
adfa_cntxt_t* cntxt = (adfa_cntxt_t*) context;
block_t* b = node->data;
if (cntxt->_traversed[b->id] == 0) {
FOREACH_INLIST(node->in, it) {
edge_t* ed = GET_DATA_T(edge_t*, it);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it);
block_t* pred = ed->from->data;
if (__DFA_edge_isbackedge(ed) == FALSE && pred != b
......@@ -775,7 +775,7 @@ static void _backup_strat(adfa_cntxt_t* cntxt)
if (!block_is_padding(b) && cntxt->_traversed[b->id] == 1) {
FOREACH_INLIST(b->cfg_node->out, it_next)
{
edge_t* ed = GET_DATA_T(edge_t*, it_next);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_next);
block_t* next = (block_t*) (ed->to->data);
if (cntxt->_traversed[next->id] == 0) {
DBGMSG("Randomly add block %d\n", next->global_id);
......@@ -801,7 +801,7 @@ static block_t* __DFA_find_computable_block(adfa_cntxt_t* cntxt)
block_t* bb = NULL;
if (queue_length(cntxt->_to_compute) == 0)
graph_BFS(cntxt->graph, &__DFA_BFS_is_computable, NULL, cntxt);
graph_node_BFS(cntxt->graph, &__DFA_BFS_is_computable, NULL, cntxt);
// Backup strat: if the list is empty but all blocks have not
// been analyzed, try analyzed blocks successors.
......
This diff is collapsed.
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......@@ -29,7 +29,7 @@
///////////////////////////////////////////////////////////////////////////////
// Dominance analysis //
///////////////////////////////////////////////////////////////////////////////
static void _DFS_postorder(graph_t* node, void* user)
static void _DFS_postorder(graph_node_t* node, void* user)
{
queue_t* postorder = (queue_t*) user;
queue_add_tail(postorder, node->data);
......@@ -64,7 +64,7 @@ void _compute_dominance(fct_t* fct)
// Order nodes in reverse-postorder
i = 0;
graph_DFS(start_node->cfg_node, NULL, &_DFS_postorder, NULL, postorder);
graph_node_DFS(start_node->cfg_node, NULL, &_DFS_postorder, NULL, postorder);
FOREACH_INQUEUE(postorder, it_b) {
block_t* b = GET_DATA_T(block_t*, it_b);
queue_add_head(reverse_postorder, b);
......@@ -85,7 +85,7 @@ void _compute_dominance(fct_t* fct)
// get the first processed predecessor
FOREACH_INLIST(b->cfg_node->in, it_ed) {
edge_t* ed = GET_DATA_T(edge_t*, it_ed);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_ed);
block_t* tmp = ed->from->data;
if (doms[tmp->id] != NULL) {
first_processed_pred = tmp;
......@@ -96,7 +96,7 @@ void _compute_dominance(fct_t* fct)
// then iterate over other predecessors
new_idom = first_processed_pred;
FOREACH_INLIST(b->cfg_node->in, it_ed0) {
edge_t* ed = GET_DATA_T(edge_t*, it_ed0);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_ed0);
block_t* p = ed->from->data;
if (p != first_processed_pred) {
if (doms[p->id] != NULL)
......@@ -197,7 +197,7 @@ void _compute_post_dominance(fct_t* fct)
// Order nodes in reverse-postorder
i = 0;
graph_BackDFS(start_node->cfg_node, NULL, &_DFS_postorder, NULL, postorder);
graph_node_BackDFS(start_node->cfg_node, NULL, &_DFS_postorder, NULL, postorder);
FOREACH_INQUEUE(postorder, it_b) {
block_t* b = GET_DATA_T(block_t*, it_b);
queue_add_head(reverse_postorder, b);
......@@ -218,7 +218,7 @@ void _compute_post_dominance(fct_t* fct)
// get the first processed successor
FOREACH_INLIST(b->cfg_node->out, it_ed) {
edge_t* ed = GET_DATA_T(edge_t*, it_ed);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_ed);
block_t* tmp = ed->to->data;
if (postdoms[tmp->id] != NULL) {
first_processed_succ = tmp;
......@@ -228,7 +228,7 @@ void _compute_post_dominance(fct_t* fct)
// then iterate over other successors
new_ipostdom = first_processed_succ;
FOREACH_INLIST(b->cfg_node->out, it_ed0) {
edge_t* ed = GET_DATA_T(edge_t*, it_ed0);
graph_edge_t* ed = GET_DATA_T(graph_edge_t*, it_ed0);
block_t* p = ed->to->data;
if (p != first_processed_succ) {
if (postdoms[p->id] != NULL)
......
/*
Copyright (C) 2004 - 2016 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
Copyright (C) 2004 - 2017 Université de Versailles Saint-Quentin-en-Yvelines (UVSQ)
This file is part of MAQAO.
......@@ -70,7 +70,7 @@ typedef struct cntxt_s {
* \param node current CFG node
* \param context current context
*/
void _DFS_move_block(graph_t* node, void* context)
void _DFS_move_block(graph_node_t* node, void* context)
{
cntxt_t* cntxt = (cntxt_t*) context;
block_t* b = node->data;
......@@ -98,7 +98,7 @@ void _DFS_move_block(graph_t* node, void* context)
* \param graph a CFG node
* \param user a pointer on a string, used to return the function name if it exist
*/
static void _func_node_look_debug(graph_t* g, void* user)
static void _func_node_look_debug(graph_node_t* g, void* user)
{
block_t* b = (block_t*) g->data;
char** ret = (char**) user;
......@@ -164,7 +164,7 @@ void lcore_function_extract_functions_from_cc(fct_t* f)
FOREACH_INQUEUE(cbs, it_en)
{
block_t* entry = GET_DATA_T(block_t*, it_en);
graph_DFS(entry->cfg_node, &_func_node_look_debug, NULL, NULL,
graph_node_DFS(entry->cfg_node, &_func_node_look_debug, NULL, NULL,
&dbg_name);
if (dbg_name != NULL)
......@@ -174,7 +174,7 @@ void lcore_function_extract_functions_from_cc(fct_t* f)
char* fnew_name = NULL;
char* fname = NULL;
edge_t* to_remove = NULL;