<commit_before>/*
 * This file is part of libFirm.
 * Copyright (C) 2012 University of Karlsruhe.
 */

/**
 * @file
 * @brief   Write vcg representation of firm to file.
 * @author  <NAME>, <NAME>, <NAME>, <NAME>,
 *          <NAME>
 */
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdbool.h>
#include <errno.h>

#include "irnode_t.h"
#include "irgraph_t.h"
#include "irprog_t.h"
#include "entity_t.h"
#include "irop.h"

#include "irdump_t.h"

#include "irgwalk.h"
#include "tv_t.h"
#include "irouts.h"
#include "iredges.h"
#include "irdom.h"
#include "irloop_t.h"
#include "callgraph.h"
#include "irhooks.h"
#include "dbginfo_t.h"
#include "irprintf.h"

#include "irverify.h"

#include "error.h"
#include "array.h"
#include "pmap.h"
#include "obst.h"
#include "pset.h"
#include "util.h"

/**
 * Symbolic names for the different dumping colors.
 */
typedef enum ird_color_t {
	ird_color_none = -1,
	ird_color_prog_background,
	ird_color_block_background,
	ird_color_dead_block_background,
	ird_color_block_inout,
	ird_color_default_node,
	ird_color_phi,
	ird_color_memory,
	ird_color_controlflow,
	ird_color_const,
	ird_color_anchor,
	ird_color_proj,
	ird_color_uses_memory,
	ird_color_error,
	ird_color_entity,
	ird_color_count
} ird_color_t;

/**
 * Edge kinds.
 */
typedef enum {
	data_edge           = 0x01,   /**< A data edge between two basic blocks. */
	block_edge          = 0x02,   /**< An edge from a node to its basic block. */
	cf_edge             = 0x03,   /**< A regularly control flow edge. */
	exc_cf_edge         = 0x04,   /**< An exceptional control flow edge. */
	mem_edge            = 0x05,   /**< A memory edge. */
	dominator_edge      = 0x06,   /**< A dominator edge from a block to its immediate dominator. */
	node2type_edge      = 0x07,   /**< An edge from an IR node to a type. */

	ent_type_edge       = 0x11,   /**< An edge from an entity to its type. */
	ent_own_edge        = 0x12,   /**< An edge from an entity to its owner type. */
	ent_overwrites_edge = 0x13,   /**< An edge from an entity to the entity it overwrites. */
	ent_value_edge      = 0x14,   /**< An edge from an entity to its value entity. */
	ent_corr_edge       = 0x15,   /**< An edge from an entity to the member entity its initializes. */

	meth_par_edge       = 0x21,   /**< An edge from a method type to one of its parameter types. */
	meth_res_edge       = 0x22,   /**< An edge from a method type to one of its result types. */
	type_super_edge     = 0x23,   /**< An edge from a class type to its super/basis type. */
	union_edge          = 0x24,   /**< An edge from a union type to its member types. */
	ptr_pts_to_edge     = 0x25,   /**< An edge from a pointer type to its points-to type. */
	arr_elt_type_edge   = 0x26,   /**< An edge from an array type to its element type. */
	arr_ent_edge        = 0x27,   /**< An edge from a array type to its element entity. */
	type_member_edge    = 0x28,   /**< An edge from a compound type to its member entities. */

	/* additional flags */
	intra_edge          = 0,      /**< Intra edge flag: edge do not cross basic block boundaries */
	inter_edge          = 0x40,   /**< Inter edge flag: edge cross basic block boundaries */
	back_edge           = 0x80    /**< Backwards edge flag. */
} edge_kind;

/* Attributes of nodes */
#define PRINT_DEFAULT_NODE_ATTR
#define DEFAULT_NODE_ATTR " "
#define DEFAULT_TYPE_ATTRIBUTE " "
#define DEFAULT_ENUM_ITEM_ATTRIBUTE " "

/* Attributes of edges between Firm nodes */
#define INTRA_DATA_EDGE_ATTR     "class:1  priority:50"
#define INTER_DATA_EDGE_ATTR     "class:16 priority:10"
#define BLOCK_EDGE_ATTR          "class:2  priority:50 linestyle:dotted"<commit_msg>irdump: remove unused edge_kind enum<commit_after>/*
 * This file is part of libFirm.
 * Copyright (C) 2012 University of Karlsruhe.
 */

/**
 * @file
 * @brief   Write vcg representation of firm to file.
 * @author  <NAME>, <NAME>, <NAME>, <NAME>,
 *          <NAME>
 */
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdbool.h>
#include <errno.h>

#include "irnode_t.h"
#include "irgraph_t.h"
#include "irprog_t.h"
#include "entity_t.h"
#include "irop.h"

#include "irdump_t.h"

#include "irgwalk.h"
#include "tv_t.h"
#include "irouts.h"
#include "iredges.h"
#include "irdom.h"
#include "irloop_t.h"
#include "callgraph.h"
#include "irhooks.h"
#include "dbginfo_t.h"
#include "irprintf.h"

#include "irverify.h"

#include "error.h"
#include "array.h"
#include "pmap.h"
#include "obst.h"
#include "pset.h"
#include "util.h"

/**
 * Symbolic names for the different dumping colors.
 */
typedef enum ird_color_t {
	ird_color_none = -1,
	ird_color_prog_background,
	ird_color_block_background,
	ird_color_dead_block_background,
	ird_color_block_inout,
	ird_color_default_node,
	ird_color_phi,
	ird_color_memory,
	ird_color_controlflow,
	ird_color_const,
	ird_color_anchor,
	ird_color_proj,
	ird_color_uses_memory,
	ird_color_error,
	ird_color_entity,
	ird_color_count
} ird_color_t;

/* Attributes of nodes */
#define PRINT_DEFAULT_NODE_ATTR
#define DEFAULT_NODE_ATTR " "
#define DEFAULT_TYPE_ATTRIBUTE " "
#define DEFAULT_ENUM_ITEM_ATTRIBUTE " "

/* Attributes of edges between Firm nodes */
#define INTRA_DATA_EDGE_ATTR     "class:1  priority:50"
#define INTER_DATA_EDGE_ATTR     "class:16 priority:10"
#define BLOCK_EDGE_ATTR          "class:2  priority:50 linestyle:dotted"
{'fraction_non_alphanumeric': 0.120699274688488, 'fraction_numerical': 0.018225776455272458, 'mean_word_length': 3.515533165407221, 'pattern_counts': {'":': 0, '<': 46, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6386125', 'n_tokens_mistral': 2056, 'n_tokens_neox': 1972, 'n_words': 540}