Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/Amanieu/regalloc3
/ functions
Functions
705 in github.com/Amanieu/regalloc3
⨍
Functions
705
◇
Types & classes
175
↓ 6 callers
Method
clear
(&mut self, func: &impl Function)
src/internal/spill_allocator.rs:91
↓ 6 callers
Method
def_value
Handles the definition of a value. This consists of 4 parts: 1) Invalidating any previous mapping for the same value, since those are from the previo
src/internal/move_optimizer.rs:481
↓ 6 callers
Method
find
Returns the leader of the set containing the given key. This takes a mutable reference to self because it performs path compression for improved perf
src/union_find.rs:47
↓ 6 callers
Method
index
(&self, k: K)
src/entity/primary_map.rs:214
↓ 6 callers
Method
is_reserved_value
(&self)
src/output.rs:162
↓ 6 callers
Method
keys
(&self)
src/entity/sparse.rs:257
↓ 6 callers
Method
last_mut
(&mut self)
src/entity/primary_map.rs:171
↓ 6 callers
Method
new_value
Defines a new value with randomized properties.
src/debug_utils/generic_function/arbitrary.rs:317
↓ 6 callers
Method
num_spillslots
(&self)
src/output.rs:298
↓ 6 callers
Method
regs
(&self)
src/reginfo.rs:433
↓ 6 callers
Method
retain
(&mut self, mut keep: F)
src/entity/sparse.rs:289
↓ 6 callers
Method
spill
Spills the given virtual register to a spillslot. Any uses which must be in a register are split off into separate virtual registers which only cover
src/internal/allocator/split.rs:1231
↓ 6 callers
Method
sub_classes
(&self, class: RegClass)
src/debug_utils/generic_reginfo/mod.rs:203
↓ 6 callers
Method
swap_remove
Removes an element from the list at the given index. The removed element is replaced with the last element of the list and the list is shrunk by one
src/entity/compact_list.rs:100
↓ 6 callers
Method
value
(&self)
src/internal/reg_matrix.rs:54
↓ 6 callers
Method
value_use
Visits a use of a value.
src/internal/value_live_ranges.rs:773
↓ 6 callers
Method
values
(&self)
src/entity/sparse.rs:264
↓ 5 callers
Method
cfg_postorder
Returns the list of basic blocks in control-flow postorder. The returned iterator only includes basic blocks reachable from an entry point. Use `rev
src/debug_utils/postorder.rs:79
↓ 5 callers
Method
check_interference
Iterates over all the interference in the current unit.
src/internal/reg_matrix.rs:115
↓ 5 callers
Method
class_spill_cost
(&self, class: RegClass)
src/debug_utils/generic_reginfo/mod.rs:188
↓ 5 callers
Method
clobber_unit
Clobbers any existing value on a register that contains the given unit.
src/internal/move_optimizer.rs:461
↓ 5 callers
Method
common_subclass
(&self, a: RegClass, b: RegClass)
src/reginfo.rs:409
↓ 5 callers
Method
compute
Computes the control-flow post-order.
src/debug_utils/postorder.rs:89
↓ 5 callers
Method
dump
Dumps the value live ranges to the log.
src/internal/value_live_ranges.rs:259
↓ 5 callers
Method
end_for_fixed_use_reservation
Fixed use reservations only span a single Use in one instruction, so we can save space by only storing the start point and deriving the end point from
src/internal/live_range.rs:123
↓ 5 callers
Method
index
(self)
src/allocation_unit.rs:27
↓ 5 callers
Method
iter
(&self)
src/entity/sparse.rs:244
↓ 5 callers
Method
len
(&self)
src/entity/compact_list.rs:55
↓ 5 callers
Method
len
(&self)
src/entity/primary_map.rs:86
↓ 5 callers
Function
parse_entity_list
(pair: Pair<'_, Rule>)
src/debug_utils/generic_reginfo/parse.rs:70
↓ 5 callers
Method
round_to_prev_inst
Rounds this point to the previous instruction boundary.
src/internal/live_range.rs:114
↓ 5 callers
Method
set_value
Sets the `AllocationUnit` to contain only the given value.
src/debug_utils/checker.rs:104
↓ 5 callers
Method
spillslot_layout
(&self, slot: SpillSlot)
src/output.rs:315
↓ 5 callers
Method
split_at
Splits the live range in the middle at the given point.
src/internal/live_range.rs:199
↓ 5 callers
Method
trailing_zeros
(self)
src/entity/small_set.rs:46
↓ 5 callers
Function
validate_reginfo
Checks `reginfo` to ensure it satisfies all of the pre-conditions required by the register allocator.
src/debug_utils/validate_reginfo.rs:16
↓ 5 callers
Method
vregs
(self, _virt_regs: &VirtRegs)
src/internal/allocator/mod.rs:113
↓ 5 callers
Method
zip_with_reg_group
( self, reg: PhysReg, _virt_regs: &VirtRegs, _reginfo: &impl RegInfo, )
src/internal/allocator/mod.rs:121
↓ 4 callers
Method
allocation_order
(&self, class: RegClass)
src/debug_utils/generic_reginfo/mod.rs:193
↓ 4 callers
Method
assignments
Returns the mapping of all `VirtReg` to `PhysReg` for which an assignment exists. This does not include any virtual registers that have been spilled.
src/internal/allocator/mod.rs:488
↓ 4 callers
Method
block_is_critical_edge
(&self, block: Block)
src/debug_utils/generic_function/mod.rs:210
↓ 4 callers
Method
check_fixed
Check for multiple conflicting uses of a fixed register in a single constraint scope.
src/debug_utils/validate_func.rs:169
↓ 4 callers
Method
check_group_class
Checks that the allocation is the first member of a group in the given register class, and returns the register group it is part of.
src/debug_utils/checker.rs:706
↓ 4 callers
Method
coalesce_values
Attempts to merge the two given values into the same `ValueSet`. Returns whether a merge was performed.
src/internal/coalescing.rs:264
↓ 4 callers
Method
create_vreg_from_segments
Creates new virtual registers from the given segments.
src/internal/virt_regs/mod.rs:154
↓ 4 callers
Method
enqueue
Enqueues an entry into the priority queue.
src/internal/allocator/queue.rs:162
↓ 4 callers
Method
get_mut
(&mut self, key: K)
src/entity/sparse.rs:123
↓ 4 callers
Method
get_scratch_reg
Returns a scratch `Allocation` in the given `RegClass` which is currently unused. This may return a `SpillSlot` if the register class allows spillslo
src/internal/parallel_moves.rs:260
↓ 4 callers
Method
get_value_for_use
Returns a value for use as an `OperandKind::Use` in the given block. Because we process instructions in post-order, uses are processed before definit
src/debug_utils/generic_function/arbitrary.rs:460
↓ 4 callers
Method
group_allocation_order
(&self, class: RegClass)
src/debug_utils/generic_reginfo/mod.rs:198
↓ 4 callers
Method
grow_to_with
(&mut self, max_index: usize, f: impl FnMut() -> V)
src/entity/secondary_map.rs:103
↓ 4 callers
Method
insert
(&mut self, key: K, value: V)
src/entity/sparse.rs:171
↓ 4 callers
Method
insert_unique
(&mut self, key: K, value: V)
src/entity/sparse.rs:187
↓ 4 callers
Method
into_mut
(self)
src/entity/sparse.rs:518
↓ 4 callers
Method
len
(&self)
src/entity/sparse.rs:89
↓ 4 callers
Function
load_reginfo
(path: &Path)
regalloc3-tool/src/main.rs:126
↓ 4 callers
Method
merge_use
Updates the constraints to accept the given `Use`, or returns false if this is not possible. Constraints are not updated if this function returns fal
src/internal/virt_regs/builder.rs:216
↓ 4 callers
Method
num_reg_groups
(&self)
src/debug_utils/generic_reginfo/mod.rs:228
↓ 4 callers
Method
num_regs
(&self)
src/debug_utils/generic_reginfo/mod.rs:213
↓ 4 callers
Method
num_virt_regs
Number of virtual registers currently defined.
src/internal/virt_regs/mod.rs:132
↓ 4 callers
Method
order
Returns an iterator over all the registers in the allocation order.
src/internal/allocator/order.rs:120
↓ 4 callers
Function
parse_entity_list
(pair: Pair<'_, Rule>)
src/debug_utils/generic_function/parse.rs:73
↓ 4 callers
Function
parse_expected_entity
(pair: Pair<'_, Rule>, expected: T)
src/debug_utils/generic_reginfo/parse.rs:58
↓ 4 callers
Function
parse_number
(pair: Pair<'_, Rule>)
src/debug_utils/generic_reginfo/parse.rs:44
↓ 4 callers
Method
release
(&mut self, slot: SpillSlot, size: SpillSlotSize)
src/internal/parallel_moves.rs:53
↓ 4 callers
Method
run
Runs the coalescing pass to group values into `ValueSet`s.
src/internal/coalescing.rs:71
↓ 4 callers
Method
set_fixedhint
Sets the fixed-hint bit to the given value.
src/internal/uses.rs:399
↓ 4 callers
Method
set_for_value
Returns the `ValueSet` containing the given `Value`.
src/internal/coalescing.rs:65
↓ 4 callers
Method
set_livein
Sets the live-in bit to the given value.
src/internal/uses.rs:381
↓ 4 callers
Method
stack_to_stack_class
(&self, bank: RegBank)
src/debug_utils/generic_reginfo/mod.rs:148
↓ 3 callers
Method
add_indirect_remat
Adds an indirect rematerialization recipe for a value defined at the current program point.
src/debug_utils/generic_function/arbitrary.rs:571
↓ 3 callers
Method
allocation_order
(class: RegClass, reginfo: &impl RegInfo)
src/internal/allocator/mod.rs:151
↓ 3 callers
Method
assign
Assigns `vreg` to the chosen register. `evicted_for_preference` is true if we evicted a virtual register with a higher spill weight due to our prefer
src/internal/allocator/mod.rs:732
↓ 3 callers
Method
banks
(&self)
src/reginfo.rs:277
↓ 3 callers
Method
block_immediate_dominator
(&self, block: Block)
src/debug_utils/generic_function/mod.rs:180
↓ 3 callers
Method
can_eliminate_dead_inst
(&self, inst: Inst)
src/debug_utils/generic_function/mod.rs:262
↓ 3 callers
Method
check_constraint
Checks that the allocation for an operand matches the operand constraints.
src/debug_utils/checker.rs:861
↓ 3 callers
Method
check_fixed_conflict
Checks if the given register can be used as an early/late fixed-register constraint, and if successful, marks all of the register's sub-units as in-us
src/debug_utils/generic_function/arbitrary.rs:440
↓ 3 callers
Method
check_value_def
Record the definition of a value and check for duplicate definitions.
src/debug_utils/validate_func.rs:159
↓ 3 callers
Method
class_group_members
(&self, class: RegClass)
src/debug_utils/generic_reginfo/mod.rs:178
↓ 3 callers
Method
clear_spillslot
(&mut self, alloc: Allocation)
src/internal/dead_spill_elimination.rs:242
↓ 3 callers
Method
count
(&self)
src/entity/set.rs:155
↓ 3 callers
Method
def_value_group
Calls `def_value` for each member of a group.
src/internal/move_optimizer.rs:535
↓ 3 callers
Method
dump
(self, virt_regs: &VirtRegs, uses: &Uses)
src/internal/allocator/mod.rs:130
↓ 3 callers
Method
evicted_for_preference
Whether this virtual register has evicted another virtual register with a higher spill weight to steal a physical register for which it has a higher p
src/internal/allocator/mod.rs:282
↓ 3 callers
Method
first_half
First half of the split.
src/internal/live_range.rs:405
↓ 3 callers
Method
first_inst
Returns the first instruction that this segment covers.
src/internal/live_range.rs:268
↓ 3 callers
Method
for_each_move_source
Helper function to deal with uses that move an incoming value to another location. This figures out where the values comes from and which moves need t
src/internal/move_resolver.rs:756
↓ 3 callers
Method
gen_allocation_order
Generates an allocation order for a register class.
src/debug_utils/generic_reginfo/arbitrary.rs:162
↓ 3 callers
Method
group_for_reg
( reg: PhysReg, group_index: usize, class: RegClass, reginfo: &impl RegInfo,
src/internal/allocator/mod.rs:141
↓ 3 callers
Method
has_fixedhint
Indicates that the live range that contains this use list has a fixed register hint.
src/internal/uses.rs:371
↓ 3 callers
Method
has_liveout
Indicates that the live range that contains this use list is live-out to another segment at the end of the live range.
src/internal/uses.rs:365
↓ 3 callers
Method
hints_for_segment
Returns an iterator over all the fixed-register hints covered by the given live range segment.
src/internal/hints.rs:180
↓ 3 callers
Method
index
(&self, k: K)
src/entity/secondary_map.rs:168
↓ 3 callers
Method
indices
Returns the range of indices encoded in the `UseList`.
src/internal/uses.rs:433
↓ 3 callers
Method
inst
Instruction before which the move must be placed.
src/internal/move_resolver.rs:101
↓ 3 callers
Method
into_second_half
Second half of the split.
src/internal/live_range.rs:410
↓ 3 callers
Method
is_dead_spillslot_write
(&self, alloc: Allocation)
src/internal/dead_spill_elimination.rs:232
↓ 3 callers
Method
iter
(&self)
src/entity/primary_map.rs:119
↓ 3 callers
Method
iter
(&self)
src/entity/secondary_map.rs:112
← previous
next →
101–200 of 705, ranked by callers