# module `concrete.compiler.compilation_feedback`
Compilation feedback.
---
## function `tag_from_location`
```python
tag_from_location(location)
```
Extract tag of the operation from its location.
---
## class `CircuitCompilationFeedback`
CircuitCompilationFeedback is a set of hint computed by the compiler engine for a circuit.
### method `__init__`
```python
__init__(circuit_compilation_feedback: CircuitCompilationFeedback)
```
Wrap the native Cpp object.
**Args:**
- `circuit_compilation_feeback` (_CircuitCompilationFeedback): object to wrap
**Raises:**
- `TypeError`: if circuit_compilation_feedback is not of type _CircuitCompilationFeedback
---
### method `count`
```python
count(operations: Set[PrimitiveOperation]) → int
```
Count the amount of specified operations in the program.
**Args:**
operations (Set[PrimitiveOperation]): set of operations used to filter the statistics
**Returns:**
int: number of specified operations in the program
---
### method `count_per_parameter`
```python
count_per_parameter(
operations: Set[PrimitiveOperation],
key_types: Set[KeyType],
client_parameters: ClientParameters
) → Dict[Parameter, int]
```
Count the amount of specified operations in the program and group by parameters.
**Args:**
operations (Set[PrimitiveOperation]): set of operations used to filter the statistics
key_types (Set[KeyType]): set of key types used to filter the statistics
client_parameters (ClientParameters): client parameters required for grouping by parameters
**Returns:**
Dict[Parameter, int]: number of specified operations per parameter in the program
---
### method `count_per_tag`
```python
count_per_tag(operations: Set[PrimitiveOperation]) → Dict[str, int]
```
Count the amount of specified operations in the program and group by tags.
**Args:**
operations (Set[PrimitiveOperation]): set of operations used to filter the statistics
**Returns:**
Dict[str, int]: number of specified operations per tag in the program
---
### method `count_per_tag_per_parameter`
```python
count_per_tag_per_parameter(
operations: Set[PrimitiveOperation],
key_types: Set[KeyType],
client_parameters: ClientParameters
) → Dict[str, Dict[Parameter, int]]
```
Count the amount of specified operations in the program and group by tags and parameters.
**Args:**
operations (Set[PrimitiveOperation]): set of operations used to filter the statistics
key_types (Set[KeyType]): set of key types used to filter the statistics
client_parameters (ClientParameters): client parameters required for grouping by parameters
**Returns:**
Dict[str, Dict[Parameter, int]]: number of specified operations per tag per parameter in the program
---
## class `ProgramCompilationFeedback`
CompilationFeedback is a set of hint computed by the compiler engine.
### method `__init__`
```python
__init__(program_compilation_feedback: ProgramCompilationFeedback)
```
Wrap the native Cpp object.
**Args:**
- `compilation_feeback` (_CompilationFeedback): object to wrap
**Raises:**
- `TypeError`: if program_compilation_feedback is not of type _CompilationFeedback
---
### method `circuit`
```python
circuit(circuit_name: str) → CircuitCompilationFeedback
```
Returns the feedback for the circuit circuit_name.
**Args:**
circuit_name (str): the name of the circuit.
**Returns:**
CircuitCompilationFeedback: the feedback for the circuit.
**Raises:**
- `TypeError`: if the circuit_name is not a string
- `ValueError`: if there is no circuit with name circuit_name