MCPcopy Create free account

hub / github.com/Amanieu/regalloc3 / functions

Functions705 in github.com/Amanieu/regalloc3

↓ 1 callersMethodisolate_group_uses
Isolates all group uses in the given register group by splitting them off into minimal segments that only cover a single instruction (or part of one)
src/internal/allocator/split.rs:1090
↓ 1 callersMethodkind
(self)
src/function.rs:468
↓ 1 callersFunctionmake_aarch64_reginfo
(num_fixed_stack: usize)
regalloc3-tool/src/example_reginfo/aarch64.rs:5
↓ 1 callersFunctionmake_riscv_reginfo
(num_fixed_stack: usize)
regalloc3-tool/src/example_reginfo/riscv.rs:5
↓ 1 callersMethodmake_unavailable
Makes the given register unavailable for use as a scratch register. This should be called after reading from a move source which, since we are emitti
src/internal/parallel_moves.rs:195
↓ 1 callersMethodmeet
Lattice meet operation when merging initial block states from multiple predecessors. This only keeps the common subset of values between the two incom
src/debug_utils/checker.rs:66
↓ 1 callersFunctionmerge
Merges 2 sorted value segment lists into a new list.
src/internal/coalescing.rs:337
↓ 1 callersMethodmust_spill
Indicates whether the allocation order is empty and the virtual register can only be spilled to the stack.
src/internal/allocator/order.rs:160
↓ 1 callersMethodnew_parallel_move
(&mut self)
src/internal/parallel_moves.rs:583
↓ 1 callersMethodnext
(self)
src/function.rs:180
↓ 1 callersMethodnext_lower_freq
Returns the first block after `block` with a lower frequency.
src/internal/split_placement.rs:148
↓ 1 callersMethodnum_insts
(&self)
src/debug_utils/generic_function/mod.rs:150
↓ 1 callersMethodoptimize_block
This does the same processing as `process_block`, but additionally tries to optimize instructions and edits in the block.
src/internal/move_optimizer.rs:985
↓ 1 callersMethodoptimize_edit
Attempts to optimize an `Edit` by eliminating it or making it cheaper.
src/internal/move_optimizer.rs:870
↓ 1 callersMethodor_insert
(self, default: V)
src/entity/sparse.rs:384
↓ 1 callersMethodparse
Parses a textual register description into a [`GenericRegInfo`].
src/debug_utils/generic_reginfo/parse.rs:347
↓ 1 callersMethodparse
Parses a textual representation of a [`Function`] into a [`GenericFunction`]. The text format is the same as the one generated by [`DisplayFunction`]
src/debug_utils/generic_function/parse.rs:386
↓ 1 callersFunctionparse_attribute
(pair: Pair<'_, Rule>, is_pure: &mut bool)
src/debug_utils/generic_function/parse.rs:254
↓ 1 callersFunctionparse_bank_def
( pair: Pair<'_, Rule>, banks: &mut PrimaryMap<RegBank, RegBankData>, classes: &mut PrimaryMap<Reg
src/debug_utils/generic_reginfo/parse.rs:263
↓ 1 callersFunctionparse_block_label
( pair: Pair<'_, Rule>, entry_points: &mut Vec<Block>, blocks: &mut PrimaryMap<Block, BlockData>,
src/debug_utils/generic_function/parse.rs:161
↓ 1 callersFunctionparse_class_def
( pair: Pair<'_, Rule>, bank: RegBank, classes: &mut PrimaryMap<RegClass, RegClassData>, regs:
src/debug_utils/generic_reginfo/parse.rs:146
↓ 1 callersFunctionparse_instruction
( pair: Pair<'_, Rule>, blocks: &mut PrimaryMap<Block, BlockData>, insts: &mut PrimaryMap<Inst, In
src/debug_utils/generic_function/parse.rs:321
↓ 1 callersFunctionparse_opcode
( pair: Pair<'_, Rule>, data: &mut InstData, block_data: &mut BlockData, )
src/debug_utils/generic_function/parse.rs:227
↓ 1 callersFunctionparse_reg_def
(pair: Pair<'_, Rule>, regs: &mut PrimaryMap<PhysReg, PhysRegData>)
src/debug_utils/generic_reginfo/parse.rs:117
↓ 1 callersFunctionparse_reg_group_def
( pair: Pair<'_, Rule>, groups: &mut PrimaryMap<RegGroup, RegGroupData>, )
src/debug_utils/generic_reginfo/parse.rs:135
↓ 1 callersFunctionparse_value_declaration
( pair: Pair<'_, Rule>, values: &mut PrimaryMap<Value, ValueData>, groups: &mut PrimaryMap<ValueGr
src/debug_utils/generic_function/parse.rs:85
↓ 1 callersMethodprepare
Prepares several data structures that will be used by the state tracker.
src/internal/move_optimizer.rs:434
↓ 1 callersMethodprepare_forward_pass
Prepares the block entry states for forward-edge-only optimization.
src/internal/move_optimizer.rs:164
↓ 1 callersMethodpreprocess_block
Pre-processes a block by simulating the execution of all edits and instructions while updating the state accordingly. This function don't optimize th
src/internal/move_optimizer.rs:649
↓ 1 callersMethodprev_lower_freq
Returns the last block before `block` with a lower frequency.
src/internal/split_placement.rs:153
↓ 1 callersMethodprocess_edit
Returns false if the edit is dead and can be removed.
src/internal/dead_spill_elimination.rs:191
↓ 1 callersMethodprocess_inst
(&mut self, inst: Inst, allocations: &Allocations, func: &impl Function)
src/internal/dead_spill_elimination.rs:154
↓ 1 callersMethodprocess_operand
For each instruction operand, either initialize a new live range for a definition or extend an existing live range for a use. For operands that are f
src/internal/value_live_ranges.rs:494
↓ 1 callersMethodprocess_remat_segment
Special handling for segments that are rematerialized: we only need to emit destination half-moves for fixed uses and tied uses.
src/internal/move_resolver.rs:465
↓ 1 callersMethodpropagate_to_preds
Unions our live-in into predecessors' live-out and re-queues any blocks whose live-out has changed.
src/internal/dead_spill_elimination.rs:90
↓ 1 callersFunctionreginfo
Alternate between a simple register description with 2 banks that overlap, and an arbitrary register description.
fuzz/fuzz_targets/parallel_moves.rs:24
↓ 1 callersMethodreserve
(&mut self, additional: usize)
src/entity/primary_map.rs:179
↓ 1 callersMethodreserve_fixed_use
Indicates that a portion of the given register is reserved for a fixed use constraint for the given live range and the given `Value`. This portion of
src/internal/reg_matrix.rs:280
↓ 1 callersMethodreset
Resets the table to its initial state where all keys are in their own singleton equivalence class.
src/union_find.rs:35
↓ 1 callersMethodresolve
( &mut self, reginfo: &impl RegInfo, func: &impl Function, is_unit_free: impl
src/internal/parallel_moves.rs:669
↓ 1 callersMethodresolve_moves
After all half-moves have been generated, resolve half-move pairs into full moves at each instruction boundary. Because these moves logically happen
src/internal/move_resolver.rs:349
↓ 1 callersFunctionresolve_subclasses
The text format has superclasses, conver those into subclasses which are needed by `GenericRegInfo`.
src/debug_utils/generic_reginfo/parse.rs:330
↓ 1 callersMethodrestore_values
Restores the set of values held in an `AllocationUnit` that were previously saved by `save_values`.
src/debug_utils/checker.rs:142
↓ 1 callersMethodrpo_cmp
Compares the position of two blocks in the CFG reverse-postorder.
src/debug_utils/postorder.rs:84
↓ 1 callersMethodsave_values
Saves the set of values held in an `AllocationUnit` in a way that can be losslessly restored later.
src/debug_utils/checker.rs:136
↓ 1 callersMethodset_range
Records the total live range of a `ValueSet` and its required spillslot size. The move optimizer relies on the entire range being reserved instead of
src/internal/spill_allocator.rs:110
↓ 1 callersMethodsort_hints
Sorts hints so that they can be efficiently queried by `hints_for_segment`.
src/internal/hints.rs:164
↓ 1 callersMethodspill_cost
Spill cost for this use. This is calculated as the cost to be paid if the virtual register containing this use is spilled to the stack instead of all
src/internal/uses.rs:40
↓ 1 callersMethodspillslot_area_size
(&self)
src/output.rs:326
↓ 1 callersMethodspillslot_size
Generates a reasonable spillslot size for a register bank.
src/debug_utils/generic_reginfo/arbitrary.rs:101
↓ 1 callersMethodsplit_at_inst
Splits the given use list at the given instruction. All uses before the given instruction are returned in the first list, and all uses at or after th
src/internal/uses.rs:444
↓ 1 callersMethodsplit_or_spill
Splits the given virtual register into smaller pieces. Given a virtual register which cannot be allocated due to interference and which has too low o
src/internal/allocator/split.rs:918
↓ 1 callersFunctionsuperclasses
Helper function to compute superclasses for a register class.
src/debug_utils/display.rs:201
↓ 1 callersMethodtake_all_value_sets
Returns all value sets and their associated `ValueSegment`s. This gives clobbers the data, but it is only used by the virtual register builder. This
src/internal/value_live_ranges.rs:201
↓ 1 callersMethodtry_evict_for_preferred_reg
Searches for a better candidate register by potentially evicting interference.
src/internal/allocator/evict.rs:18
↓ 1 callersMethodtry_reuse_value_group
For group uses, we can only fold them into a group reuse def if we do so for *all* members of the group.
src/internal/value_live_ranges.rs:458
↓ 1 callersMethodtry_union
Merges the two sets containing the given keys, but only if the `unify` function returns true. The first argument to the `unify` function is the leade
src/union_find.rs:72
↓ 1 callersMethodundivert
Restores a diverted value to its original location after the move that would have overwritten it is processed.
src/internal/parallel_moves.rs:403
↓ 1 callersMethodunion
(&mut self, other: &Self)
src/entity/set.rs:115
↓ 1 callersMethodunits_containing_value
Returns an iterator over all `AllocationUnit`s containing the given value.
src/debug_utils/checker.rs:121
↓ 1 callersFunctionvalidate_function
Checks `func` to ensure it satisfies all of the pre-conditions required by the register allocator. As long as this validation succeeds, the register
src/debug_utils/validate_func.rs:30
↓ 1 callersMethodvalue_groups
(&self)
src/function.rs:767
↓ 1 callersMethodvalue_locations
(&self)
src/output.rs:244
↓ 1 callersMethodvalue_spillslot
Returns the spill slot that the given value will be spilled to, or `None` if the value has not been spilled.
src/internal/spill_allocator.rs:152
Methodadvance_left
( cursor: &mut Option<Self>, segment: &S, unit: RegUnit, full_results: bool,
src/internal/reg_matrix.rs:660
Methodadvance_right
( cursor: &mut Option<Self>, segment: &S, unit: RegUnit, full_results: bool,
src/internal/reg_matrix.rs:518
Methodand_modify
(mut self, f: F)
src/entity/sparse.rs:432
Methodarbitrary
(u: &mut arbitrary::Unstructured<'a>)
src/lib.rs:441
Methodarbitrary
(u: &mut Unstructured)
fuzz/src/lib.rs:44
Methodarbitrary_with_config
Constructs a randomly-generated `GenericRegInfo`. The returned `GenericRegInfo` is guaranteed to pass validation.
src/debug_utils/generic_reginfo/arbitrary.rs:57
Methodarbitrary_with_config
Constructs a randomly-generated `GenericFunction`. This function is guaranteed to pass validation with the given (valid) [`RegInfo`] implementation.
src/debug_utils/generic_function/arbitrary.rs:73
Methodas_slice
(&self, pool: &'a CompactListPool<T>)
src/entity/compact_list.rs:61
Methodassign
Assigns all segments of the given virtual register to a physical register.
src/internal/reg_matrix.rs:375
Methodbit
(index: usize)
src/entity/small_set.rs:36
Methodbitand
(self, rhs: Self)
src/entity/small_set.rs:192
Methodbitand_assign
(&mut self, rhs: Self)
src/entity/small_set.rs:238
Methodbitor
(self, rhs: Self)
src/entity/small_set.rs:208
Methodbitor_assign
(&mut self, rhs: Self)
src/entity/small_set.rs:252
Methodblock_frequency
(&self, _block: Block)
fuzz/fuzz_targets/parallel_moves.rs:284
Methodblock_immediate_dominator
(&self, _block: Block)
fuzz/fuzz_targets/parallel_moves.rs:268
Methodblock_insts
(&self, _block: Block)
fuzz/fuzz_targets/parallel_moves.rs:252
Methodblock_is_critical_edge
(&self, _block: Block)
fuzz/fuzz_targets/parallel_moves.rs:288
Methodblock_params
(&self, _block: Block)
fuzz/fuzz_targets/parallel_moves.rs:272
Methodblock_preds
(&self, _block: Block)
fuzz/fuzz_targets/parallel_moves.rs:264
Methodblock_succs
(&self, _block: Block)
fuzz/fuzz_targets/parallel_moves.rs:260
Methodcan_eliminate_dead_inst
(&self, _inst: Inst)
fuzz/fuzz_targets/parallel_moves.rs:324
Methodcan_indirectly_rematerialize
(&self, _value: Value)
fuzz/fuzz_targets/parallel_moves.rs:320
Methodcan_rematerialize
(&self, value: Value)
fuzz/fuzz_targets/parallel_moves.rs:316
Methodcapacity
(&self)
src/entity/primary_map.rs:57
Methodclear
(&mut self, func: &impl Function)
src/internal/hints.rs:83
Methodclear
(&mut self)
src/internal/reg_matrix.rs:261
Methodclear
(&mut self)
src/entity/small_set.rs:137
Methodclear
Clears the pool, forgetting about all lists that use it. This invalidates any existing entity lists that used this pool to allocate memory. The pool
src/entity/compact_list.rs:133
Methodclear
(&mut self)
src/entity/primary_map.rs:131
Methodclear_and_resize
(&mut self, max_index: usize)
src/entity/secondary_map.rs:67
Methodcompute
Computes live ranges and uses for all SSA values in the function.
src/internal/value_live_ranges.rs:211
Methodcompute
Computes the dominator tree.
src/debug_utils/dominator_tree.rs:60
Methodcontains
(&self, entity: T)
src/entity/small_set.rs:112
Methodcount
(&self)
src/entity/small_set.rs:149
Methoddecode
Decodes an entry.
src/internal/allocator/queue.rs:97
← previousnext →401–500 of 705, ranked by callers