PandA-2024.02
Data Structures | Macros | Typedefs
basic_block.hpp File Reference

Class specification of the basic_block structure. More...

#include "config_HAVE_UNORDERED.hpp"
#include "cdfg_edge_info.hpp"
#include "edge_info.hpp"
#include "graph.hpp"
#include "graph_info.hpp"
#include "node_info.hpp"
#include "refcount.hpp"
#include <cstddef>
#include <functional>
#include <list>
#include <string>
#include <utility>
#include "custom_map.hpp"
#include "custom_set.hpp"
Include dependency graph for basic_block.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  BBNodeInfo
 Definition of the node_info object for the basic_block graph. More...
 
struct  BBEdgeInfo
 Information associated with a basic block edge. More...
 
struct  BBGraphInfo
 Information associated with the whole basic-block graph. More...
 
class  BBGraphsCollection
 This structure defines graphs where nodes are basic_blocks. More...
 
struct  BBGraph
 Class used to describe a particular graph with basic blocks as nodes. More...
 
class  BBVertexSorter
 
class  BBEdgeSorter
 
class  bb_vertex_order_by_map
 The key comparison function for vertices set based on levels. More...
 

Macros

#define D_SELECTOR   (1 << 7)
 Selectors used only in basic block graphs; numbers continue from cdfg_edge_info.hpp. More...
 
#define PD_SELECTOR   (1 << 8)
 post-dominator graph edge selector More...
 
#define J_SELECTOR   (1 << 9)
 j graph edge selector for dj graph (used during loop computation) More...
 
#define PP_SELECTOR   (1 << 10)
 Path Profiling Basic Block edge selector. More...
 

Typedefs

using BBNodeInfoRef = refcount< BBNodeInfo >
 refcount definition of the class More...
 
using BBNodeInfoConstRef = refcount< const BBNodeInfo >
 
using BBEdgeInfoRef = refcount< BBEdgeInfo >
 refcount definition of the class More...
 
using BBEdgeInfoConstRef = refcount< const BBEdgeInfo >
 
using BBGraphInfoRef = refcount< BBGraphInfo >
 refcount definition of the class More...
 
using BBGraphInfoConstRef = refcount< const BBGraphInfo >
 
using BBGraphsCollectionRef = refcount< BBGraphsCollection >
 refcount definition of the class More...
 
using BBGraphsCollectionConstRef = refcount< const BBGraphsCollection >
 
using BBGraphRef = refcount< BBGraph >
 refcount definition of the class More...
 
using BBGraphConstRef = refcount< const BBGraph >
 

Functions

forward declarations
 CONSTREF_FORWARD_DECL (application_manager)
 
 REF_FORWARD_DECL (bloc)
 
 CONSTREF_FORWARD_DECL (Parameter)
 

Detailed Description

Class specification of the basic_block structure.

This structure is used to represent graphs where nodes are basic_block. A basic block is a sequence of instructions with only one entry and only one exit. If any of the instructions are executed, they will be all executed, and in sequence from first to last. Jumps, if any, start a block, and jumps end a block.

Author
Fabrizio Ferrandi fabri.nosp@m.zio..nosp@m.ferra.nosp@m.ndi@.nosp@m.polim.nosp@m.i.it
Marco Lattuada lattu.nosp@m.ada@.nosp@m.elet..nosp@m.poli.nosp@m.mi.it $Revision$ $Date$ Last modified by $Author$

Definition in file basic_block.hpp.

Macro Definition Documentation

◆ D_SELECTOR

#define D_SELECTOR   (1 << 7)

Selectors used only in basic block graphs; numbers continue from cdfg_edge_info.hpp.

dominator graph edge selector

Definition at line 85 of file basic_block.hpp.

Referenced by Bit_Value::Initialize(), eSSA::InternalExec(), dom_post_dom_computation::InternalExec(), CSE::InternalExec(), and BBEdgeWriter::operator()().

◆ J_SELECTOR

#define J_SELECTOR   (1 << 9)

j graph edge selector for dj graph (used during loop computation)

Definition at line 91 of file basic_block.hpp.

Referenced by Loops::DetectLoops(), and BBEdgeWriter::operator()().

◆ PD_SELECTOR

#define PD_SELECTOR   (1 << 8)

post-dominator graph edge selector

Definition at line 88 of file basic_block.hpp.

Referenced by dom_post_dom_computation::InternalExec(), and BBEdgeWriter::operator()().

◆ PP_SELECTOR

#define PP_SELECTOR   (1 << 10)

Path Profiling Basic Block edge selector.

Definition at line 94 of file basic_block.hpp.

Referenced by BBEdgeWriter::operator()().

Typedef Documentation

◆ BBEdgeInfoConstRef

Definition at line 242 of file basic_block.hpp.

◆ BBEdgeInfoRef

refcount definition of the class

Definition at line 241 of file basic_block.hpp.

◆ BBGraphConstRef

Definition at line 424 of file basic_block.hpp.

◆ BBGraphInfoConstRef

Definition at line 272 of file basic_block.hpp.

◆ BBGraphInfoRef

refcount definition of the class

Definition at line 271 of file basic_block.hpp.

◆ BBGraphRef

refcount definition of the class

Definition at line 423 of file basic_block.hpp.

◆ BBGraphsCollectionConstRef

Definition at line 319 of file basic_block.hpp.

◆ BBGraphsCollectionRef

refcount definition of the class

Definition at line 318 of file basic_block.hpp.

◆ BBNodeInfoConstRef

Definition at line 175 of file basic_block.hpp.

◆ BBNodeInfoRef

refcount definition of the class

Definition at line 174 of file basic_block.hpp.

Function Documentation

◆ CONSTREF_FORWARD_DECL() [1/2]

CONSTREF_FORWARD_DECL ( application_manager  )

◆ CONSTREF_FORWARD_DECL() [2/2]

CONSTREF_FORWARD_DECL ( Parameter  )

◆ REF_FORWARD_DECL()

REF_FORWARD_DECL ( bloc  )

Generated on Mon Feb 12 2024 13:03:13 for PandA-2024.02 by doxygen 1.8.13