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
↓ 3 callers
Method
log2_bytes
(self)
src/reginfo.rs:253
↓ 3 callers
Method
make_available
Makes the given register available for use as a scratch register. This should be called after writing to a move destination which, since we are emitt
src/internal/parallel_moves.rs:183
↓ 3 callers
Method
members
Returns the members of the `ValueGroup`, or the single `Value`.
src/debug_utils/validate_func.rs:83
↓ 3 callers
Method
next_absent_from
(&self, from: T)
src/entity/set.rs:191
↓ 3 callers
Function
normalize_spill_weight
Computes a normalized spill weight from the total weights of all uses in a virtual register and the total number of live instructions in that virtual
src/internal/virt_regs/builder.rs:45
↓ 3 callers
Method
num_classes
(&self)
src/debug_utils/generic_reginfo/mod.rs:168
↓ 3 callers
Method
output_insts
(&self, block: Block)
src/output.rs:208
↓ 3 callers
Function
parse_entity
(pair: Pair<'_, Rule>)
src/debug_utils/generic_reginfo/parse.rs:52
↓ 3 callers
Function
parse_number
(pair: Pair<'_, Rule>)
src/debug_utils/generic_function/parse.rs:47
↓ 3 callers
Method
process_segment
(&mut self, segment: &ValueSegment, alloc: Option<Allocation>)
src/internal/move_resolver.rs:1050
↓ 3 callers
Method
queue_new_vregs
(&mut self)
src/internal/allocator/split.rs:1398
↓ 3 callers
Method
reg_groups
(&self)
src/reginfo.rs:473
↓ 3 callers
Method
remove_value
Removes the given value from all `AllocationUnit`s. This is used at value definition points to remove any stale versions of a value (e.g. from a prev
src/debug_utils/checker.rs:89
↓ 3 callers
Method
reserve_fixed_def
Indicates that a portion of the given register is reserved for a fixed def or clobber constraint for the given live range. Unlike fixed uses, these c
src/internal/reg_matrix.rs:312
↓ 3 callers
Method
set_liveout
Sets the live-out bit to the given value.
src/internal/uses.rs:390
↓ 3 callers
Method
spilled_segments
Returns all segments that have been spilled along with the `SpillSlot` that they have been spilled to. The spill slot is only valid after `allocate`
src/internal/spill_allocator.rs:144
↓ 3 callers
Method
try_reuse_value
Check if the given value is reused by a def operand in the same instruction. This also checks if the class of the def operand is compatible with that
src/internal/value_live_ranges.rs:401
↓ 3 callers
Method
unevict_for_reg
Restore all evicted registers that conflict with the given register.
src/internal/parallel_moves.rs:219
↓ 3 callers
Function
use_spill_cost
Computes the spill cost for a single use after applying allocator-level rematerialization heuristics.
src/internal/virt_regs/builder.rs:61
↓ 3 callers
Method
values_mut
( &mut self, )
src/entity/sparse.rs:270
↓ 2 callers
Method
acquire
( &mut self, size: SpillSlotSize, alloc_emergency_spillslot: &mut impl FnMut(SpillSlot
src/internal/parallel_moves.rs:41
↓ 2 callers
Method
add_fixed_def
Records a fixed definition at the given instruction. This adds an incoming fixed register hint at all successor instructions.
src/internal/hints.rs:91
↓ 2 callers
Method
add_use_list
Adds a new `UseList` from an iterator.
src/internal/uses.rs:492
↓ 2 callers
Method
advance_right
( &mut self, gap_idx: usize, interference_weight: &mut f32,
src/internal/allocator/split.rs:644
↓ 2 callers
Method
allocate
Attempts to assign the given virtual register to a physical register.
src/internal/allocator/mod.rs:521
↓ 2 callers
Method
as_mut_slice
(&self, pool: &'a mut CompactListPool<T>)
src/entity/compact_list.rs:67
↓ 2 callers
Method
block_frequency
Generates a reasonable block frequency.
src/debug_utils/generic_function/arbitrary.rs:218
↓ 2 callers
Method
blockparam_allocs
Returns the locations for block parameter values at the start of a block.
src/internal/move_resolver.rs:558
↓ 2 callers
Method
build
Constructs virtual registers from the given live range segments. If `split_placement` is `None` then there must be no constraint conflicts.
src/internal/virt_regs/builder.rs:124
↓ 2 callers
Method
bytes
(self)
src/reginfo.rs:246
↓ 2 callers
Method
calc_spill_weight
Calculates the spill weight of the virtual register currently being built. This also detects cases where a virtual register only spans a single instr
src/internal/virt_regs/builder.rs:750
↓ 2 callers
Method
check_bank
Checks that the allocation can hold values of the given bank.
src/debug_utils/checker.rs:582
↓ 2 callers
Method
check_class
Checks that the allocation is compatible with the given register class.
src/debug_utils/checker.rs:675
↓ 2 callers
Method
check_indirect_remat_input_value
Check dominance constraints on an indirect-rematerialization input.
src/debug_utils/validate_func.rs:667
↓ 2 callers
Method
check_skipped_inst
Checks that no instructions were skipped and that instructions are processed in order. An exception is made for pure instructions which are allowed t
src/debug_utils/checker.rs:561
↓ 2 callers
Method
clear
(&mut self)
src/entity/sparse.rs:102
↓ 2 callers
Method
clear_and_resize_with
(&mut self, max_index: usize, f: impl FnMut() -> V)
src/entity/secondary_map.rs:79
↓ 2 callers
Method
clobber_unit
Updates the state of an `AllocationUnit` to indicate it no longer holds a value.
src/debug_utils/checker.rs:130
↓ 2 callers
Method
clone_from
(&mut self, source: &Self)
src/entity/set.rs:40
↓ 2 callers
Method
count_ones
(self)
src/entity/small_set.rs:41
↓ 2 callers
Method
display_operand
Displays an operand, expanding value groups to their members.
src/debug_utils/display.rs:57
↓ 2 callers
Method
do_move
Performs a move operation from one allocation to another. This handles details like stack-to-stack moves and conflicts with evicted registers.
src/internal/parallel_moves.rs:440
↓ 2 callers
Method
edits
Returns the full list of edits.
src/internal/move_resolver.rs:540
↓ 2 callers
Method
edits_from
Returns the list of edits starting from the given instruction.
src/internal/move_resolver.rs:534
↓ 2 callers
Method
emit_vreg
Commits the current contents of `segments` and the current constraints to a virtual register.
src/internal/virt_regs/builder.rs:814
↓ 2 callers
Method
evict
Evicts all segments of the given virtual register from a physical register.
src/internal/reg_matrix.rs:430
↓ 2 callers
Method
evict_interfering_vregs
Evicts all the virtual registers in `interfering_vregs` from their current assignment.
src/internal/allocator/evict.rs:247
↓ 2 callers
Method
gen_def
Generates an operand which defines a value.
src/debug_utils/generic_function/arbitrary.rs:625
↓ 2 callers
Method
gen_inst
Generates a single instruction in the given block.
src/debug_utils/generic_function/arbitrary.rs:742
↓ 2 callers
Method
gen_subclass
Generates a sub-class of an existing class.
src/debug_utils/generic_reginfo/arbitrary.rs:184
↓ 2 callers
Method
gen_use
Generates an operand which uses a value.
src/debug_utils/generic_function/arbitrary.rs:519
↓ 2 callers
Method
get
(&self)
fuzz/src/lib.rs:22
↓ 2 callers
Method
group_for_reg
(&self, reg: PhysReg, group_index: usize, class: RegClass)
src/debug_utils/generic_reginfo/mod.rs:238
↓ 2 callers
Method
groups
Iterator over all virtual register groups.
src/internal/virt_regs/mod.rs:137
↓ 2 callers
Method
handle_block_live_in
Handle live-ins at the start of a block.
src/internal/move_resolver.rs:607
↓ 2 callers
Method
handle_block_live_out
Handle live-outs at the end of a block.
src/internal/move_resolver.rs:678
↓ 2 callers
Method
has_fixeddef
Indicates that the first use in this list is a `FixedDef`.
src/internal/uses.rs:376
↓ 2 callers
Method
has_livein
Indicates that the live range that contains this use list is live-in from a preceding segment at the start of the live range.
src/internal/uses.rs:359
↓ 2 callers
Method
index
(entity: T)
src/entity/set.rs:73
↓ 2 callers
Method
initial_value
Simpler version of `def_value` used for to set up the initial block entry state. This is always called on a clean state and therefore doesn't need to
src/internal/move_optimizer.rs:520
↓ 2 callers
Method
insert
(&mut self, entity: T)
src/entity/small_set.rs:123
↓ 2 callers
Method
insts
(&self)
src/function.rs:608
↓ 2 callers
Method
invalidate_operand_group_mapping
Invalidate any existing operand to group mappings for a vreg: the group they point to will no longer be valid after it is spilled. New mappings will b
src/internal/allocator/split.rs:1059
↓ 2 callers
Method
iter_mut
(&mut self)
src/entity/primary_map.rs:125
↓ 2 callers
Method
iter_mut
(&mut self)
src/entity/secondary_map.rs:118
↓ 2 callers
Method
key
(&self)
src/entity/sparse.rs:423
↓ 2 callers
Method
kind
(self)
src/allocation_unit.rs:75
↓ 2 callers
Function
load_function
(path: &Path, reginfo: &GenericRegInfo)
regalloc3-tool/src/main.rs:134
↓ 2 callers
Method
mark_spillslot
(&mut self, alloc: Allocation)
src/internal/dead_spill_elimination.rs:236
↓ 2 callers
Method
new_block
Resets the state tracker to a clean slate with no live values.
src/internal/move_optimizer.rs:454
↓ 2 callers
Method
next_present_from
(&self, from: T)
src/entity/set.rs:165
↓ 2 callers
Method
num_insts
Number of instructions covered by this live range segment.
src/internal/live_range.rs:194
↓ 2 callers
Method
num_value_groups
(&self)
src/debug_utils/generic_function/mod.rs:235
↓ 2 callers
Function
parse_constraint
(pair: Pair<'_, Rule>)
src/debug_utils/generic_function/parse.rs:307
↓ 2 callers
Function
parse_expected_entity
(pair: Pair<'_, Rule>, expected: T)
src/debug_utils/generic_function/parse.rs:61
↓ 2 callers
Function
parse_operand
( pair: Pair<'_, Rule>, groups: &mut PrimaryMap<ValueGroup, Vec<Value>>, )
src/debug_utils/generic_function/parse.rs:267
↓ 2 callers
Function
parse_reg_group_list
(pair: Pair<'_, Rule>, is_group: &mut Option<bool>)
src/debug_utils/generic_reginfo/parse.rs:88
↓ 2 callers
Method
preference_weight
Returns the preference weight associated with a virtual register. The assignment must currently be assigned.
src/internal/allocator/mod.rs:299
↓ 2 callers
Method
prepare
(&mut self, func: &impl Function, num_spill_slots: usize)
src/internal/parallel_moves.rs:577
↓ 2 callers
Method
prepare
(&mut self, reginfo: &impl RegInfo)
src/internal/allocator/order.rs:57
↓ 2 callers
Method
process_block
( &mut self, block: Block, move_resolver: &mut MoveResolver, allocations: &All
src/internal/dead_spill_elimination.rs:104
↓ 2 callers
Method
process_edit
Applies the effects of an edit on the state.
src/internal/move_optimizer.rs:572
↓ 2 callers
Method
propagate_to_succs
Propagates the current `StateTracker` state to successor blocks.
src/internal/move_optimizer.rs:237
↓ 2 callers
Method
rebuild_mapping
(&mut self)
src/entity/sparse.rs:236
↓ 2 callers
Method
reset_constraints
Resets the current constraints to their most generic form.
src/internal/virt_regs/builder.rs:444
↓ 2 callers
Method
score
Score used to select the best split proposal.
src/internal/allocator/split.rs:128
↓ 2 callers
Method
set_fixeddef
Sets the fixed-def bit to the given value.
src/internal/uses.rs:408
↓ 2 callers
Method
spill_cost
Generates a reasonable spill cost for a register class.
src/debug_utils/generic_reginfo/arbitrary.rs:96
↓ 2 callers
Method
spill_segment
Spills the given `ValueSegment` to a spill slot.
src/internal/spill_allocator.rs:122
↓ 2 callers
Method
spillslots
(&self)
src/output.rs:305
↓ 2 callers
Method
split_at_index
Splits the given use list at the given `UseIndex`. The fixed-hint flag is cleared by this operation.
src/internal/uses.rs:459
↓ 2 callers
Method
take
(&mut self)
src/entity/packed_option.rs:91
↓ 2 callers
Method
try_evict
(&mut self, vreg: V)
src/internal/allocator/evict.rs:80
↓ 2 callers
Method
unevict_all
Restore all evicted registers.
src/internal/parallel_moves.rs:203
↓ 2 callers
Method
virt_regs
Iterator over all virtual registers.
src/internal/virt_regs/mod.rs:127
↓ 1 callers
Method
add_blockparams
Adds incoming block parameters to blocks that allow them.
src/debug_utils/generic_function/arbitrary.rs:338
↓ 1 callers
Method
add_fixed_use
Records a fixed use at the given instruction. This adds an outgoing fixed register hint at all predecessor instructions. If this use is at the first
src/internal/hints.rs:122
↓ 1 callers
Method
add_move
( &mut self, source: Allocation, dest: Allocation, value: Value, func:
src/internal/parallel_moves.rs:612
↓ 1 callers
Method
add_remat
( &mut self, dest: Allocation, value: Value, func: &impl Function, reg
src/internal/parallel_moves.rs:590
↓ 1 callers
Method
add_value
Adds the given value to the set of values for an `AllocationUnit`.
src/debug_utils/checker.rs:98
← previous
next →
201–300 of 705, ranked by callers